-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Fix issue with unsigned compare peep in dead code. #1673
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
Conversation
|
Hi @Penguinwizzard, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
TTYL, MSBOT; |
ac0295c to
bc43a6c
Compare
|
@dotnet-bot test Ubuntu ubuntu_linux_release_static please |
| byteCodeUsesInstr->byteCodeUpwardExposedUsed = nextinstr->byteCodeUpwardExposedUsed; | ||
| nextinstr->byteCodeUpwardExposedUsed = nullptr; | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not delete nextinstr at this point?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code in RemoveCodeAfterNoFallthroughInstr has already referenced the next instruction by the time that we do this. Doing nextinstr->Remove() causes an access violation a couple frames up the call stack if you remove the instruction here.
The unsigned compare peep optimization, after being changed to have the bytecodeuses instruction emitted after the compare instead of before it, had issues with lowering of code hidden behind a bailonnoprofile, in that it would have conflicts on lifetimes due to the loss of atomicity of the bytecodereg use and generation of the compare. This patch attempts to restore that by aggregating the bytecodeuse information for a single instruction into once place.
008acc8 to
a6b59e6
Compare
… dead code. Merge pull request #1673 from Penguinwizzard:fg_fix The unsigned compare peep optimization, after being changed to have the bytecodeuses instruction emitted after the compare instead of before it, had issues with lowering of code hidden behind a bailonnoprofile, in that it would have conflicts on lifetimes due to the loss of atomicity of the bytecodereg use and generation of the compare. This patch attempts to restore that by aggregating the bytecodeuse information for a single instruction into once place.
The unsigned compare peep optimization, after being changed to have
the bytecodeuses instruction emitted after the compare instead of before
it, had issues with lowering of code hidden behind a bailonnoprofile, in
that it would have conflicts on lifetimes due to the loss of atomicity
of the bytecodereg use and generation of the compare. This patch attempts
to restore that by aggregating the bytecodeuse information for a single
instruction into once place.