Open Quuxplusone opened 7 years ago
Bugzilla Link | PR33730 |
Status | NEW |
Importance | P normal |
Reported by | Robert Lougher (rob.lougher@gmail.com) |
Reported on | 2017-07-10 10:42:27 -0700 |
Last modified on | 2017-07-13 23:42:09 -0700 |
Version | trunk |
Hardware | All All |
CC | aprantl@apple.com, dblaikie@gmail.com, ditaliano@apple.com, greg.bedwell@sony.com, llvm-bugs@lists.llvm.org, paul_robinson@playstation.sony.com, quentin.colombet@gmail.com, warren_ristow@playstation.sony.com |
Fixed by commit(s) | |
Attachments | |
Blocks | |
Blocked by | |
See also |
Although the test case in comment 1 is rather contrived, this issue was seen in "real world" code, where many almost identical constructors were inlined into the global init.
And Quentin, for the register allocation bits. This seems to be a very nasty regression.
(In reply to Davide Italiano from comment #3)
> And Quentin, for the register allocation bits. This seems to be a very nasty
> regression.
As far as I can tell, the register allocator does what it had been asked to and
in particular, this does not sound like a regression. It sounds to me that the
expensive part is the update of the live-ranges in Live Debug Variable.
Attaching (and thus updating) 1500 variables to one vreg sounds like a recipe
for trouble, but I am out of my domain of expertise here.
I have a patch using LexicalScopes that looks promising. Hopefully put up a review in a day or two.