- Nov 27, 2009
-
-
Chris Lattner authored
where it is not available. It's unclear how to get this inserted computation into GVN's scalar availability sets, Owen, help? :) llvm-svn: 89997
-
Chris Lattner authored
translation done by memdep, and reenable gep translation again. llvm-svn: 89992
-
Chris Lattner authored
SimplifyGEPInst method in InstructionSimplify.h. No functionality change. llvm-svn: 89980
-
- Nov 26, 2009
-
-
Chris Lattner authored
llvm-svn: 89972
-
Chris Lattner authored
generates store to undef and some generates store to null as the idiom for undefined behavior. Since simplifycfg zaps both, don't remove the undefined behavior in instcombine. llvm-svn: 89971
-
Chris Lattner authored
by Alastair Lynn. llvm-svn: 89970
-
- Nov 25, 2009
-
-
Edward O'Callaghan authored
llvm-svn: 89844
-
- Nov 24, 2009
-
-
Edward O'Callaghan authored
llvm-svn: 89758
-
- Nov 23, 2009
-
-
Dan Gohman authored
ConstantExpr, not just the top-level operator. This allows it to fold many more constants. Also, make GlobalOpt call ConstantFoldConstantExpression on GlobalVariable initializers. llvm-svn: 89659
-
Dan Gohman authored
adjacent uses of a dead basic block from the same user. This fixes PR5596. llvm-svn: 89658
-
Nick Lewycky authored
llvm-svn: 89645
-
Nick Lewycky authored
llvm-svn: 89644
-
Nick Lewycky authored
llvm-svn: 89642
-
Nick Lewycky authored
fixes part of PR5438. llvm-svn: 89639
-
- Nov 21, 2009
-
-
Eric Christopher authored
object size intrinsic and verify return type is correct. Collect various code in one place. llvm-svn: 89523
-
- Nov 20, 2009
-
-
Dan Gohman authored
it may be used in contexts where preheader insertion may have failed due to an indirectbr. Make LoopSimplify's LoopSimplify::SeparateNestedLoop properly fail in the case that it would require splitting an indirectbr edge. These fix PR5502. llvm-svn: 89484
-
Dan Gohman authored
blockaddress users. This fixes PR5569. llvm-svn: 89483
-
Daniel Dunbar authored
llvm-svn: 89482
-
Eric Christopher authored
llvm-svn: 89479
-
Duncan Sands authored
tests/Transforms/InstCombine/shufflemask-undef.ll. If anyone cares, the use of 2*e here (and the equivalent all over the place in instcombine) seems wrong, though harmless: it should really be twice the length of the input vector. I think shufflevector used to require that the mask have the same length as the input, but I don't think that's true any more. I don't care enough about vectors to do anything about this... llvm-svn: 89456
-
- Nov 19, 2009
-
-
Dan Gohman authored
if it is not ultimately captured. Teach BasicAliasAnalysis that a local object address which does not escape and is never stored does not alias with a value resulting from a load. llvm-svn: 89398
-
Dan Gohman authored
they are lowered to instruction sequences more complex than a simple load, such that CodeGen cannot rematerialize them, a reload from a spill slot is likely to be cheaper than the complex sequence. llvm-svn: 89374
-
Jim Grosbach authored
Eliminate duplicate phi nodes in loops. Loop rotation, for example, can introduce these, and it's beneficial to later passes to clean them up. llvm-svn: 89298
-
Jim Grosbach authored
llvm-svn: 89297
-
- Nov 17, 2009
-
-
Jim Grosbach authored
llvm-svn: 89145
-
Jim Grosbach authored
llvm-svn: 89123
-
Evan Cheng authored
llvm-svn: 89116
-
Jim Grosbach authored
llvm-svn: 89110
-
Devang Patel authored
llvm-svn: 89016
-
- Nov 16, 2009
-
-
David Greene authored
Fix an expensive-checks error. The Mask and LHSMask may not be of the same size, so don't do the transformation if they're different. llvm-svn: 88972
-
Duncan Sands authored
a name. llvm-svn: 88908
-
- Nov 15, 2009
-
-
Chris Lattner authored
llvm-svn: 88865
-
Chris Lattner authored
llvm-svn: 88864
-
Nick Lewycky authored
grief. I suspect this patch merely exposed a bug else. llvm-svn: 88841
-
Nick Lewycky authored
zext(icmp). It may be able to optimize that away. This fixes one of the cases in PR5438. llvm-svn: 88830
-
- Nov 14, 2009
-
-
Nick Lewycky authored
ultimately never used. llvm-svn: 88763
-
Dan Gohman authored
llvm-svn: 88742
-
- Nov 13, 2009
-
-
Owen Anderson authored
llvm-svn: 87042
-
- Nov 12, 2009
-
-
Chris Lattner authored
llvm-svn: 87035
-
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
-