Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Conversation

@AndyAyersMS
Copy link
Member

Low-tech approach to moving return blocks out of loops. PR'ing this just so I can run perf via CI and see if it causes any correctness ripples. No merge.

Doesn't move the returns far enough sometimes, and leaves back to back branches in places, but layout in the various collection Find methods looks reasonable.

Low-tech approach to #9692. Finds forward branches to returns
and moves the return block later in the method.

Gives better layout in simple cases of search loops that return
when they find a result. Won't handle cases where there are multiple
non-loop blocks in a loop reachable from just one loop block, or
cases where there are non-loop blocks but not returns, say from
a `break` or similar construct.
@AndyAyersMS AndyAyersMS added * NO MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) area-CodeGen optimization labels Apr 25, 2017
@AndyAyersMS AndyAyersMS added this to the 2.1.0 milestone Apr 25, 2017
@AndyAyersMS
Copy link
Member Author

@dotnet-bot test windows_nt x64 perf

@AndyAyersMS
Copy link
Member Author

Perf results from above show some promise; left notes over in #9692.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen * NO MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) optimization

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants