[PATCH] D30350: [LSR] Add a cap for reassociation of AllFixupsOutsideLoop type LSRUse to protect compile time

Wei Mi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 4 14:08:43 PDT 2017


wmi updated this revision to Diff 94115.
wmi added a comment.

I extended the test and now it took more than one hour on my sandybridge machine when built with clang in release mode. 
I added early returns in getZeroExtendExpr/getSignExtendExpr for SCEVAddRecExpr with NW flag. Like the test shows, the compile explosion can only happen when the step of SCEVAddRecExpr is negative and NW flag can be marked. With the change, the test now takes less than one second.

Sanjoy, could you take a look?


Repository:
  rL LLVM

https://reviews.llvm.org/D30350

Files:
  lib/Analysis/ScalarEvolution.cpp
  unittests/Analysis/ScalarEvolutionTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30350.94115.patch
Type: text/x-patch
Size: 11026 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170404/df7c0aa5/attachment.bin>


More information about the llvm-commits mailing list