-
Notifications
You must be signed in to change notification settings - Fork 14.6k
[CodeExtractor] Refactor extractCodeRegion, fix alloca emission. #114419
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
Merged
Meinersbur
merged 222 commits into
main
from
users/meinersbur/irbuilder-extract-refactor
Nov 12, 2024
Merged
Changes from 216 commits
Commits
Show all changes
222 commits
Select commit
Hold shift + click to select a range
9cf9ee7
extractor WIP
Meinersbur 5efb70c
WIP
Meinersbur bc9e2c8
WIP
Meinersbur 6dbe2b6
WIP
Meinersbur 032d0fc
WIP
Meinersbur 58d4d8a
Merge branch 'irbuilder-extract' into HEAD
Meinersbur e61d218
WIP
Meinersbur 595dc0b
WIP
Meinersbur 391ccdd
WIP
Meinersbur bfcb05f
WIP
Meinersbur 25162d3
WIP
Meinersbur 8aa6061
WIP
Meinersbur 68f6c4b
WIP
Meinersbur 47c8395
WIP
Meinersbur 1e8b833
WIP
Meinersbur c0200bd
WIP
Meinersbur 30dbbf0
WIP
Meinersbur a4a59d7
WIP
Meinersbur c2f7fb9
WIP
Meinersbur 1cb62c4
WIP
Meinersbur 2eb5feb
WIP
Meinersbur 46b8d94
WIP
Meinersbur ef5ecda
WIP
Meinersbur 5e351a6
cleanup unused
Meinersbur f5869da
Working on BFI
Meinersbur f4a1043
Working on BFI
Meinersbur c121f72
Working on BFI
Meinersbur 4b29ca0
severSplitPHINodesOfExits
Meinersbur 2d7ffba
OldTargets
Meinersbur c730d39
Trying to inline extractCodeRegionByCopy
Meinersbur b72ec47
Inlined extractCodeRegionByCopy
Meinersbur e9c6c69
WIP
Meinersbur b6b95a6
WIP
Meinersbur a13a7e9
WIP
Meinersbur b9bf259
Moving arguments
Meinersbur 2c8d360
Moving struct arguments
Meinersbur 2c2c233
Moving more arguments
Meinersbur bd187ae
Refactor call parameter codegen
Meinersbur 02adf99
Remove unnecessary entry block
Meinersbur e94ad8f
Remove dead code
Meinersbur 29c5769
WIP
Meinersbur 6b0860c
Lifetime markers
Meinersbur 7c5d021
fix sinking; TODO: lifetime markers
Meinersbur 82d5905
simpler sinking test case
Meinersbur 084a66e
Refactor swift args
Meinersbur 09abd45
weights
Meinersbur 1e1e248
move code before inserting replacement
Meinersbur 6bfcd3e
copy code move
Meinersbur 740d3f2
exit block code split
Meinersbur 657923d
WIP
Meinersbur 6c34205
WIP
Meinersbur 1f9c10b
WIP
Meinersbur 3d6f543
Copy using common switch gen
Meinersbur 895d538
WIP
Meinersbur e90022c
Common Reloads
Meinersbur a0dbb9a
Reloads update
Meinersbur fa5ab1f
Update inputs belongs to create extracted function
Meinersbur c7f9480
switch
Meinersbur e244716
WIP
Meinersbur 96f681c
reload eariler
Meinersbur 2091667
check old function
Meinersbur dbacfa1
switch update
Meinersbur 365ce3c
WIP
Meinersbur 5c86c35
SSA
Meinersbur 20b7150
outputs stores
Meinersbur a375438
connect to NewHeader
Meinersbur 52d07c0
WIP
Meinersbur fea2bcb
lifetime markers for copy
Meinersbur 4f0cce8
connect PHIs
Meinersbur 8b0d1e0
WIP
Meinersbur fc6a7fd
clang-format
Meinersbur 3531ac5
eligability check
Meinersbur 471cccd
WIP
Meinersbur dec8cf8
comment
Meinersbur 93483b4
Merge branch 'irbuilder-extract' into HEAD
Meinersbur db9c1e8
preparing for refactor extract function
Meinersbur 7c15b69
WIP
Meinersbur 5c45602
WIP
Meinersbur 6ad705f
WIP
Meinersbur 3e2c327
moved exit block SuccNum
Meinersbur d1de567
Orlder
Meinersbur 694143c
Prepare for refactoring FuncImpl
Meinersbur 214fd18
extracted FuncImpl
Meinersbur b6dc69b
extracted emitReplacerCall
Meinersbur e381872
extracted insertReplacer
Meinersbur 2c71618
clang-format
Meinersbur 9092507
WIP
Meinersbur 8e80131
cleaning up
Meinersbur f723df5
fixing PHIs
Meinersbur 6b59af7
cleaning up
Meinersbur 6aa65a3
cleaning up
Meinersbur bd3a288
cleaning up
Meinersbur 827cf17
clang-format
Meinersbur c8d067f
Keep only SwitchCases
Meinersbur 35dd894
Undo unnecessary change
Meinersbur d394e0e
cundo changes/format
Meinersbur 0dfd685
clang-format
Meinersbur 80a0c15
Merge branch 'main' into irbuilder-extract-refactor
Meinersbur 2702100
[CodeRefactor] rebase
Meinersbur 974072d
some simplification/comments
Meinersbur 573017f
Merge branch 'main' into irbuilder-extract-refactor
Meinersbur 09c8983
Merge branch 'main' into irbuilder-extract-refactor
Meinersbur f280bdb
Merge branch 'irbuilder-extract-refactor' into HEAD
Meinersbur 7d5bbda
Avoid deprecation warnings
Meinersbur d1dc14f
Use range-for
Meinersbur cb8dae6
Merge branch 'main' into HEAD
Meinersbur e2d1e21
NumExitBlocks -> SwitchCases.size()
Meinersbur 179252f
clang-format
Meinersbur f1ef796
Add alloca block test
Meinersbur a80f7a6
clang-format
Meinersbur 853d6db
rename to recomputeSwitchCases
Meinersbur 3996391
refactor getSwitchType
Meinersbur b878fe0
clang-format
Meinersbur 7fa2a83
erge commit '343de6856e16b58bcbd16d479fc633f54e22fadc^' into users/me…
Meinersbur ac29f5e
Merge commit '343de6856e16b58bcbd16d479fc633f54e22fadc' into users/me…
Meinersbur bd5589d
Merge commit '62b27f893ecceade799df80b343d00851db250ba^' into users/m…
Meinersbur 5c8a548
Merge commit '62b27f893ecceade799df80b343d00851db250ba' into users/me…
Meinersbur 44889ac
Merge commit '934942c0331a078acc9350dc3ba7790a0e2698a8^' into users/m…
Meinersbur 092e165
Merge commit '934942c0331a078acc9350dc3ba7790a0e2698a8' into users/me…
Meinersbur 74f8fa4
Merge commit '60f406c4db5ba1ed6d66567ddaef4b86386496e1^' into users/m…
Meinersbur 306c458
Merge commit '60f406c4db5ba1ed6d66567ddaef4b86386496e1' into users/me…
Meinersbur e548fff
Merge commit 'd23b7f5f9f4adf1f12c268771055ba1c8ce6e01b^' into users/m…
Meinersbur a743b60
Merge commit 'd23b7f5f9f4adf1f12c268771055ba1c8ce6e01b' into users/me…
Meinersbur c779b65
Merge commit '79d59c3f3e8abb66a758793bfd9acd8ea6b3d92b^' into users/m…
Meinersbur 58195d3
Merge commit '79d59c3f3e8abb66a758793bfd9acd8ea6b3d92b' into users/me…
Meinersbur 9565b27
Merge commit 'b432dd2d4b75847cc51bd3d4b41f4d71ca9bf0bd' into users/me…
Meinersbur 0e549c0
Merge commit 'cde2cc9a8f46acfa1f92b127de28748943dc2de8' into users/me…
Meinersbur 1762c29
Merge commit '06911ba6ea1e552d3bcaed2728c92a9aa6cbf4d2^' into users/m…
Meinersbur 5eaf8a2
Merge commit '06911ba6ea1e552d3bcaed2728c92a9aa6cbf4d2' into users/me…
Meinersbur d79fe0e
Backport applied merge
Meinersbur 419fe95
Merge commit 'a19ae77d2a9016428fee7cd5af03fd20ad6d4464^' into users/m…
Meinersbur faf3ec6
Merge commit 'a19ae77d2a9016428fee7cd5af03fd20ad6d4464' into users/me…
Meinersbur 4a1be01
Merge commit '80f2f1eabc491cde39d543e4ebda93e2d2974d1f^' into users/m…
Meinersbur 9d8e570
Merge commit '80f2f1eabc491cde39d543e4ebda93e2d2974d1f' into users/me…
Meinersbur e60abd8
Merge commit '32b38d248fd3c75abc5c86ab6677b6cb08a703cc^' into users/m…
Meinersbur 66282ed
Merge commit '32b38d248fd3c75abc5c86ab6677b6cb08a703cc' into users/me…
Meinersbur 67acce7
apply insertAt->insertInto
Meinersbur d1d4132
Merge commit 'fb8eb84e5fd0b3219bd89522cceee3a8e128a85f^' into users/m…
Meinersbur 36ce773
Merge commit 'fb8eb84e5fd0b3219bd89522cceee3a8e128a85f' into users/me…
Meinersbur 22fa0b3
Re-apply last merge changes
Meinersbur e1acf65
Merge commit 'f9599bbc7a3f831e1793a549d8a7a19265f3e504^' into users/m…
Meinersbur 8777a07
Merge commit 'f9599bbc7a3f831e1793a549d8a7a19265f3e504' into users/me…
Meinersbur 72bd2da
Merge commit '0cbb8ec030e23c0e13331b5d54155def8c901b36^' into users/m…
Meinersbur de44f8c
Merge commit '0cbb8ec030e23c0e13331b5d54155def8c901b36' into users/me…
Meinersbur 4add729
Merge commit '5da674492a5acf8e08a58f611e39ff4cd6a16dfe^' into users/m…
Meinersbur 1d5937b
erge commit '5da674492a5acf8e08a58f611e39ff4cd6a16dfe' into users/mei…
Meinersbur dd699c1
Merge commit '6942c64e8128e4ccd891b813d0240f574f80f59e^' into users/m…
Meinersbur ee48944
Merge commit '6942c64e8128e4ccd891b813d0240f574f80f59e' into users/me…
Meinersbur 4fced02
Merge commit '5064ca8b591315b628120f67de0411f8e20f2e8f^' into users/m…
Meinersbur 3e9219c
Merge commit '5064ca8b591315b628120f67de0411f8e20f2e8f' into users/me…
Meinersbur e086736
Merge commit '5181156b3743df29dc840e15990d9202b3501f60^' into users/m…
Meinersbur 2060d9a
Re-apply merge
Meinersbur 8be7ac4
Merge commit 'df3478e480b3b2e9fe125697b7931dc48b09e450^' into users/m…
Meinersbur 2f5752b
Merge commit 'df3478e480b3b2e9fe125697b7931dc48b09e450' into users/me…
Meinersbur 64c7171
Merge commit 'eee8dd90887cbf86fa0fea1ff770377a87af0257^' into users/m…
Meinersbur 376df21
Merge commit 'eee8dd90887cbf86fa0fea1ff770377a87af0257' into users/me…
Meinersbur 34cdd8c
merge fix
Meinersbur 66465ed
Merge commit '6b8ed78719d0ae8eff55b937a976602f3a748697^' into users/m…
Meinersbur f628802
Merge commit '6b8ed78719d0ae8eff55b937a976602f3a748697' into users/me…
Meinersbur 0c6b352
Merge commit '7b9d73c2f90c0ed8497339a16fc39785349d9610^' into users/m…
Meinersbur 63c0c1a
Merge commit '7b9d73c2f90c0ed8497339a16fc39785349d9610' into users/me…
Meinersbur b697d9a
Merge commit 'b7b5907b56e98719b1dba8364ebcfb264fc09bfe^' into users/m…
Meinersbur c9e3520
Merge commit 'b7b5907b56e98719b1dba8364ebcfb264fc09bfe' into users/me…
Meinersbur a90631d
Merge commit '3bf72bf427f15521111df4e35c868005ceb0013b^' into users/m…
Meinersbur bf3db9b
Merge commit '3bf72bf427f15521111df4e35c868005ceb0013b' into users/me…
Meinersbur 6979662
Merge commit 'bf5d96c96c40e485327e8ddf4fb8f0ddae859e6f^' into users/m…
Meinersbur 16912a9
Merge commit 'bf5d96c96c40e485327e8ddf4fb8f0ddae859e6f' into users/me…
Meinersbur 4619a32
Merge commit 'd041af3019984f505530bac3acb94ca2f13f33cd^' into users/m…
Meinersbur ea7f998
Merge commit 'd041af3019984f505530bac3acb94ca2f13f33cd' into users/me…
Meinersbur 5e1ffdd
Merge commit '632f44e5edee6395ef26953d41a0e681a121aad3^' into users/m…
Meinersbur 7f3d338
Merge commit '632f44e5edee6395ef26953d41a0e681a121aad3' into users/me…
Meinersbur 7629cef
Merge commit '1833de3ee364a996d03bb23b19fe472e3e2ddf3b^' into users/m…
Meinersbur 6b77154
Merge commit '1833de3ee364a996d03bb23b19fe472e3e2ddf3b' into users/me…
Meinersbur e0f9f26
Merge commit 'ababa964752d5bfa6eb608c97f19d4e68df1d243^' into users/m…
Meinersbur 2af4152
Merge commit '6b62a9135a28bd001263e5a9db08d4cff1123126' into users/me…
Meinersbur fc5ea7e
Insert instructions using iterators
Meinersbur 1bb4d26
Merge commit 'e0d49066c1acfa4ae0f0e8ea49b0f0b6bb3f1a25^' into users/m…
Meinersbur c286985
Merge commit 'e0d49066c1acfa4ae0f0e8ea49b0f0b6bb3f1a25' into users/me…
Meinersbur 6635f3e
Merge commit '0861755e597e671424ee369f36dff5591b7178ee^' into users/m…
Meinersbur 25ee1b8
Merge commit '0861755e597e671424ee369f36dff5591b7178ee' into users/me…
Meinersbur 13e85f8
Merge commit '40282674e9808baeb9b88afdd3cbd7da46825544^' into users/m…
Meinersbur fd26f43
Merge commit '40282674e9808baeb9b88afdd3cbd7da46825544' into users/me…
Meinersbur 0ff97dc
Merge commit '15f3f446c504d1bb85282fb3bd98db6eab69829d^' into users/m…
Meinersbur 5b2556a
Merge commit '15f3f446c504d1bb85282fb3bd98db6eab69829d' into users/me…
Meinersbur fcbebc0
Merge commit 'ff63d628c46459437df21e09f70993685eba4bc3^' into users/m…
Meinersbur f825999
Merge commit 'ff63d628c46459437df21e09f70993685eba4bc3' into users/me…
Meinersbur b1b4fc1
Re-apply
Meinersbur 3ed964e
Merge commit 'ffd08c7759000f55332f1657a1fab64a7adc03fd' into users/me…
Meinersbur 801ea1b
Merge commit 'bdc77d1ecc9219dfc641aaaa4fb088233e9a32d1' into users/me…
Meinersbur f9f1665
Merge commit 'ce73b1672a6053d5974dc2342881aac02efe2dbb^' into users/m…
Meinersbur 8f1538f
Merge commit 'ce73b1672a6053d5974dc2342881aac02efe2dbb' into users/me…
Meinersbur 827626e
Merge commit '91d7ca904c601d181c431bffbf2773165de2fabd' into users/me…
Meinersbur d6ac280
Merge commit 'c4f8ae6f32dadf9383c94ed13152d91f68631255' into users/me…
Meinersbur e8857fd
Merge commit '5ece35df8586d0cb8c104a9f44eaae771de025f5' into users/me…
Meinersbur 206f353
Merge commit '6cc8774228a4162ebadfa636086a171f82e51a8c' into users/me…
Meinersbur 6988226
Merge commit 'b143b2483fc5d7e73763ff9292dec6479552de9e' into users/me…
Meinersbur d0475d9
Merge commit 'fa658ac7913408d5ec248193d531ba63f6fbe73d' into users/me…
Meinersbur ad78fbf
Merge commit 'a195e2d461dde7c73c6dd24da097affb1a7b6f78' into users/me…
Meinersbur 983427b
Merge commit '178fc4779ece31392a2cd01472b0279e50b3a199' into users/me…
Meinersbur 99540f8
Merge commit 'fef3426ad3d8d5bf01941438467df318d00c6279' into users/me…
Meinersbur 31ad714
erge commit 'e17a39bc314f97231e440c9e68d9f46a9c07af6d' into users/mei…
Meinersbur 03a9841
Merge commit '14120227a34365e829d05c1413033d235d7d272c' into users/me…
Meinersbur d62cdf9
Merge commit 'e03f427196ec67a8a5cfbdd658f9eabe9bce83ce' into users/me…
Meinersbur 59ef5e5
Merge commit '0f488a0b7d3da3c736e9242e5dd110ba0322e45a' into users/me…
Meinersbur a534511
Merge commit 'fa789dffb1e12c2aece0187aeacc48dfb1768340' into users/me…
Meinersbur b067189
Merge commit '76007138f4ffd4e0f510d12b5e8cad529c21f24d' into users/me…
Meinersbur f345536
Merge commit '4102625380823e58d7b13f01b5bd979a29bce19e' into users/me…
Meinersbur cd3c857
Remove unused varaible
Meinersbur 5139231
Merge branch 'main' into users/meinersbur/irbuilder-extract-refactor
Meinersbur 035c7ea
Merge commit '4aaa92578686176243a294eeb2ca5697a99edcaa^' into users/m…
Meinersbur d5cb3a9
Merge commit '4aaa92578686176243a294eeb2ca5697a99edcaa' into users/me…
Meinersbur 3947031
post-merge fix
Meinersbur 3cffa34
Merge branch 'main' into users/meinersbur/irbuilder-extract-refactor
Meinersbur bbf7cb6
typo
Meinersbur 277fe43
Re-insert what's lost after merge
Meinersbur 9010e93
Expand doxygen on SwitchCases
Meinersbur 6c7f3b4
Extract-out applyFirstDebugLoc
Meinersbur 4ca6906
Merge branch 'users/meinersbur/irbuilder-extract-applyFirstDebugLoc' …
Meinersbur 71e373c
Merge commit '644a9a4327af4fb4f7b09832cafe3c82843231b5^' into users/m…
Meinersbur db3c7f9
Merge commit '644a9a4327af4fb4f7b09832cafe3c82843231b5' into users/me…
Meinersbur e8db4a5
Merge branch 'main' into users/meinersbur/irbuilder-extract-refactor
Meinersbur b707c7e
SwitchCases -> ExtractedFuncRetVals
Meinersbur File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
nit: I think this should be "ExitBlocks"
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.
I intentionally named it
SwitchCases
to indicate that it is not just an unordered list of exist blocks, but the order is used to determine the extracted function's return values and the replacement switch statement. I am not married to the name (could also beExtractedFunctionReturnValues
), but I honestly think thatExitBlocks
would be a misleading name.Despite this, do you still prefer
ExitBlocks
?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.
Just any name that doesn't imply it's only used by a switch instruction.