Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

start killing 16 bit codegen #16438

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

benjones
Copy link
Contributor

@benjones benjones commented May 3, 2024

16 bit code is (as far as I can tell) not possible to generate:
From backconfig.d , I didn't see any places where a pointer could be set to 2 bytes long

  if (model == 64)
  {
      util_set64(cfg.exe);
      type_init();
      cod3_set64();
  }
  else
  {
      util_set32(cfg.exe);
      type_init();
      cod3_set32();
  }

@dlang-bot
Copy link
Contributor

Thanks for your pull request and interest in making D better, @benjones! We are looking forward to reviewing it, and you should be hearing from a maintainer soon.
Please verify that your PR follows this checklist:

  • My PR is fully covered with tests (you can see the coverage diff by visiting the details link of the codecov check)
  • My PR is as minimal as possible (smaller, focused PRs are easier to review than big ones)
  • I have provided a detailed rationale explaining my changes
  • New or modified functions have Ddoc comments (with Params: and Returns:)

Please see CONTRIBUTING.md for more information.


If you have addressed all reviews or aren't sure how to proceed, don't hesitate to ping us with a simple comment.

Bugzilla references

Your PR doesn't reference any Bugzilla issue.

If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.

Testing this PR locally

If you don't have a local development environment setup, you can use Digger to test this PR:

dub run digger -- build "master + dmd#16438"

@benjones
Copy link
Contributor Author

benjones commented May 3, 2024

Build failures are related to this: https://forum.dlang.org/post/jcbcpaugvzsizwmsyffp@forum.dlang.org The old version had a goto that jumped over a labelled variable declaration but that label is no longer used here

Copy link
Contributor

@thewilsonator thewilsonator left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Mind the CI failures though. Might be easier to do a series of smaller PRs.

@benjones
Copy link
Contributor Author

benjones commented May 4, 2024

The existing code was making use of this bug (https://issues.dlang.org/show_bug.cgi?id=24534) and deleting a label that became unused revealed it. I've been looking into fixing that first, but will come back to working around it if it takes too much longer

@thewilsonator
Copy link
Contributor

thewilsonator commented May 4, 2024

It would be good to get the most of this PR working and split out what doesn't work into a separate PR. That will allow the progress that can be done to get done and it will hopefully make it more apparent what the actual use of the bug is.

Note that since DMD relies on the bug, fixing it will likely require a deprecation before an error so that we can still bootstrap properly.

@benjones
Copy link
Contributor Author

@WalterBright is there something along these lines that would be helpful for me to do? I can't imagine any of these codepaths have been run in ages

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants