-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
scalarrepl decimates giant struct #1818
Comments
assigned to @lattner |
Ohh, it doesn't cycle: $ ./opt -scalarrepl bugpoint-reduced-simplified.bc -time-passes -disable-output ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- |
Scalarrepl ends with tons of GEPs and stores, turning 1K bytecode to 3M monster. |
Geeze, why so sad about 2500 seconds? :) I'll take a look, thx |
Fixed. Patch here: Testcase here: Transforms/ScalarRepl/2007-05-24-LargeAggregate.ll Thanks! -Chris |
Cheater! |
It looks like the fix only works on OSX (PPC), as on Linux X86 the frontend is now stuck inside the for- #4 0x08764f72 in (anonymous namespace)::PromoteMem2Reg::run (this=0xbff9bfa0) Steps to reproduce (new attached file): llvm-gcc -emit-llvm -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes -pipe -DUSE_OPENAL=1 |
False alarm. Had only recompiled LLVM, not the frontend. |
Extended Description
Consider reduced .ll file. It seems, that scalarrepl is cycles.
Steps to reproduce:
./opt -scalarrepl
PS: This is reducion from ioquake3, reported by Bram Adams
(http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-May/009165.html)
The text was updated successfully, but these errors were encountered: