- Nov 12, 2009
-
-
David Goodwin authored
llvm-svn: 87015
-
Devang Patel authored
"Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes. llvm-svn: 87014
-
Jim Grosbach authored
to directly follow the jump table. Move the layout changes to prior to any constant island handling. llvm-svn: 86999
-
Nuno Lopes authored
llvm-svn: 86987
-
Nuno Lopes authored
llvm-svn: 86986
-
Chris Lattner authored
running IPSCCP early, and we run functionattrs interlaced with the inliner, we often (particularly for small or noop functions) completely propagate all of the information about a call to its call site in IPSSCP (making a call dead) and functionattrs is smart enough to realize that the function is readonly (because it is interlaced with inliner). To improve compile time and make the inliner threshold more accurate, realize that we don't have to inline dead readonly function calls. Instead, just delete the call. This happens all the time for C++ codes, here are some counters from opt/llvm-ld counting the number of times calls were deleted vs inlined on various apps: Tramp3d opt: 5033 inline - Number of call sites deleted, not inlined 24596 inline - Number of functions inlined llvm-ld: 667 inline - Number of functions deleted because all callers found 699 inline - Number of functions inlined 483.xalancbmk opt: 8096 inline - Number of call sites deleted, not inlined 62528 inline - Number of functions inlined llvm-ld: 217 inline - Number of allocas merged together 2158 inline - Number of functions inlined 471.omnetpp: 331 inline - Number of call sites deleted, not inlined 8981 inline - Number of functions inlined llvm-ld: 171 inline - Number of functions deleted because all callers found 629 inline - Number of functions inlined Deleting a call is much faster than inlining it, and is insensitive to the size of the callee. :) llvm-svn: 86975
-
Evan Cheng authored
llvm-svn: 86972
-
Evan Cheng authored
cannot be folded into target cmp instruction. - Avoid a phase ordering issue where early cmp optimization would prevent the later count-to-zero optimization. - Add missing checks which could cause LSR to reuse stride that does not have users. - Fix a bug in count-to-zero optimization code which failed to find the pre-inc iv's phi node. - Remove, tighten, loosen some incorrect checks disable valid transformations. - Quite a bit of code clean up. llvm-svn: 86969
-
Evan Cheng authored
llvm-svn: 86965
-
Evan Cheng authored
llvm-svn: 86964
-
Chris Lattner authored
which implements GCC PR18046. This also gets us 360 more jump threads on 176.gcc. llvm-svn: 86953
-
Chris Lattner authored
llvm-svn: 86952
-
Chris Lattner authored
making the new LVI stuff smart enough to subsume some special cases in the old code. Disable them when LVI is around, the testcase still passes. llvm-svn: 86951
-
Chris Lattner authored
constant constraints. Improve the LVI lattice to include inequality constraints. llvm-svn: 86950
-
Jim Grosbach authored
MachineBasicBlock so other passes can utilize it. llvm-svn: 86947
-
Jim Grosbach authored
Revert 86857. It's causing consumer-typeset to fail, and there's a better way to do it forthcoming anyway. llvm-svn: 86945
-
Eric Christopher authored
otherwise create a stub. Add a test to make sure we don't create extraneous stubs. llvm-svn: 86941
-
Daniel Dunbar authored
llvm-svn: 86933
-
Dan Gohman authored
llvm-svn: 86928
-
Dan Gohman authored
llvm-svn: 86926
-
Chris Lattner authored
allows us to handle the test10 testcase. llvm-svn: 86924
-
Chris Lattner authored
llvm-svn: 86923
-
Chris Lattner authored
llvm-svn: 86920
-
Lang Hames authored
Fixed an iteration condition in PreAllocSplitting. This should fix some miscompilations casued by PreAllocSplitting. llvm-svn: 86919
-
Chris Lattner authored
the basic.ll testcase. llvm-svn: 86918
-
Eric Christopher authored
llvm-svn: 86917
-
Devang Patel authored
This allows StringRef to skip controversial if(str) check in constructor. Buildbots, wait for corresponding clang and llvm-gcc FE check-ins! llvm-svn: 86914
-
Dan Gohman authored
can be made to fall through into the other. llvm-svn: 86909
-
Bill Wendling authored
"nounwind" attribute. llvm-svn: 86897
-
Bruno Cardoso Lopes authored
llvm-svn: 86895
-
- Nov 11, 2009
-
-
Chris Lattner authored
strswitch. llvm-svn: 86889
-
Chris Lattner authored
uses LVI info when -enable-jump-threading-lvi is passed. llvm-svn: 86886
-
Dan Gohman authored
instead of typedefs for std::pair. This simplifies the type of SameTails, which previously was std::vector<std::pair<std::vector<std::pair<unsigned, MachineBasicBlock *> >::iterator, MachineBasicBlock::iterator> llvm-svn: 86885
-
Kenneth Uildriks authored
x86 users can now return arbitrary sized structs. Structs too large to fit in return registers will be returned through a hidden sret parameter introduced during SelectionDAG construction. llvm-svn: 86876
-
Dan Gohman authored
llvm-svn: 86875
-
Devang Patel authored
llvm-svn: 86874
-
Dan Gohman authored
llvm-svn: 86873
-
Dan Gohman authored
tail merging support to handle more cases. - Recognize several cases where tail merging is beneficial even when the tail size is smaller than the generic threshold. - Make use of MachineInstrDesc::isBarrier to help detect non-fallthrough blocks. - Check for and avoid disrupting fall-through edges in more cases. llvm-svn: 86871
-
Jakob Stoklund Olesen authored
- Edges are split before any phis are eliminated, so the code is SSA. - Create a proper IR BasicBlock for the split edges. - LiveVariables::addNewBlock now has same syntax as MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out set rather than successor live-in set. This feature still causes some miscompilations. llvm-svn: 86867
-
Evan Cheng authored
Add TargetLowering::isLegalICmpImmediate. It tells LSR what immediate can be folded into target icmp instructions. llvm-svn: 86858
-