- User Since
- Aug 26 2015, 2:20 PM (95 w, 4 d)
Wed, Jun 21
Tue, Jun 20
https://reviews.llvm.org/D34017 prevents recursive inline from happening. But even with recursive inlining, it should not trigger compiler error. I think this patch is still needed to fix the underlying issue?
Wed, Jun 14
update tests. PTAL. Thanks!
Tue, Jun 13
As discussed in llvm-dev:
Thu, Jun 8
Wed, Jun 7
Fri, Jun 2
Thu, Jun 1
Wed, May 31
Tue, May 30
May 19 2017
Updated the implementation and tests:
May 18 2017
The patch was reverted because it breaks tests at runtime.
May 17 2017
Could you send me an IR file or snippet that could trigger this performance issue? I can include it in the patch as unittest.
patch to move the pass to x86 is proposed: https://reviews.llvm.org/D33294
Sorry about the regression. As Quentin pointed out, moving instructions close to phi should not be a problem as the algorithm checks the moved instruction uses >1 single-use defs. Looking at the example of the regression case, the transformation looks reasonable if we only consider shrinking live-ranges. Could you provide an IR that I can try reproduce the issue and see why register allocation is worse?
May 12 2017
I'll submit the patch now to allow rest of today to catch potential buildbot breakage. Thanks again for all the reviews.
May 11 2017
Thanks all for the reviews. Any other comments/concerns? If not, I'll commit the patch tomorrow.
Thanks for the reviews!
May 10 2017
May 9 2017
Thanks for the review.
oops, sent to the wrong patch review...
Thanks for the review.
May 8 2017
rebase and update
May 5 2017
May 4 2017
I've updated the patch to implement this in Machine Level. The down side is that it needs to update a lot of unittests especially those autogenerated llc tests.
change to do live range shrinking at machine level.
May 3 2017
May 2 2017
May 1 2017
Yes, adding -pre-RA-sched=list-ilp can produce the expected result without this patch for my testcase. I'm not familiar with -pre-RA-sched, any quick insight why this option is not on by default?
Apr 28 2017
move the pass till the end of the optimizations.
Update the patch to have a separate pass to handle live range shrinking within BB.
Apr 27 2017
Apr 26 2017
Apr 20 2017
set initial value for local variables.
Apr 19 2017
updated in NFC commit r300753.
Will have separate patch to address other concerns.
Updated the logic and remove the assertion. Add a unittest to cover the symbolization of the padding zone.
Reverted as this breaks buildbot: http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/3369
Apr 18 2017
Now the assertion is enabled to ensure the behavior does not change. PTAL. Thanks!
update the code to ignore 0-sized ranges.
hold on... the assertion actually triggers... looking into why...
remove unintended change...