-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
proof of concept #90058
proof of concept #90058
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsFYI @EgorBo @jakobbotsch This gets the Not sure this is the best approach, but it does some interesting things. It leverage the local threading so hopefully isn't' too costly.
|
To handle these cases we need to do something before or during local morph, otherwise we will still end up with address exposure. |
This is like an anti-head-merge... if we were to take this along with head merge we'd need to figure out how not to undo what we just did. |
|
||
bool Compiler::fgTailDuplicateBlock(BasicBlock* const block) | ||
{ | ||
// We only consider blocks with muliple preds without |
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.
// We only consider blocks with muliple preds without | |
// We only consider blocks with multiple preds without |
Isn't this more like an anti-tail-merge? It duplicates the same statement at the end of multiple predecessors, so those statements are candidates for tail merging. |
Yes, you're right. Actually an anti-head-merge (head duplication? I guess) might be interesting to consider, if we think the successor blocks have more interesting context than the current block. |
Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it. |
FYI @EgorBo @jakobbotsch
This gets the
?:
case Egor was discussing and maybe the local address one Jakob was looking at.Not sure this is the best approach, but it does some interesting things. It leverage the local threading so hopefully isn't' too costly.