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
[DO NOT MERGE] Attribute isBitcast to PTR_TO_INT pseudoinstruction #388
base: main
Are you sure you want to change the base?
Conversation
When I run the tests locally with In most or all of the failing tests
|
58f1599
to
4fdb83a
Compare
4fdb83a
to
d824481
Compare
Benchmark results:
|
With 'isBitcast = 1' on IR dump after register coalescer with isBitcast = 0
IR dump after register coalescer with isBitcast = 1
Fragment of debug output for
|
@sayon what is the asm we finally emit for the basic block you shown? |
Without bitcast, or with bitcast but no cross-regclass coalescing
With bitcast, bugged
|
@sayon thank you. |
Bitcast instructions are basically converted to COPY by peephole optimizer. If in a cross-class copy we keep the original register classes, then we will end up with instructions like SHR taking |
@sayon if it's easy to try, please do. |
Code Review Checklist
Purpose
Correctly attribute pointer to int pseudoinstruction as a bitcast instruction.
Ticket Number
CP-1533
Requirements
Implementation
Logic Errors and Bugs
code does not behave as intended?
that could break the code?
Error Handling and Logging
be added or removed?
written in a way that allows for easy
debugging?
Maintainability
Dependencies
Security
Performance
system performance?
performance of the code significantly?
Testing and Testability
that should be tested in addition?
Readability
smaller methods?
different function, method or variable names?
file/folder/package?
restructured to have a more intuitive control
flow?
better?
understandable?
Documentation
Best Practices
Experts' Opinion
expert or a usability expert, should look over
the code before it can be accepted?