- Mar 05, 2010
-
-
Evan Cheng authored
Safely turn memset_chk etc. to non-chk variant if the known object size is >= memset / memcpy / memmove size. llvm-svn: 97828
-
Evan Cheng authored
llvm-svn: 97827
-
Chris Lattner authored
from different addr spaces. llvm-svn: 97813
-
Chris Lattner authored
parts of the cmp|cmp and cmp&cmp folding logic wasn't prepared for vectors (unrelated to the bug but noticed while in the code) and the code was *definitely* not safe to use by the (cast icmp)|(cast icmp) handling logic that I added in r95855. Fix all this up by changing the various routines to more consistently use IRBuilder and not pass in the I which had the wrong type. llvm-svn: 97801
-
Chris Lattner authored
compares, noticed by inspection. llvm-svn: 97795
-
Chris Lattner authored
in a very specific use pattern embodied in the carefully reduced testcase. llvm-svn: 97794
-
Eric Christopher authored
No functionality change. llvm-svn: 97793
-
Evan Cheng authored
Add missing break for Intrinsic::objectsize case. It was falling through to the following Intrinsic::bswap code. I have no idea why it wasn't breaking stuff. llvm-svn: 97774
-
- Mar 03, 2010
-
-
Dan Gohman authored
of loops. llvm-svn: 97642
-
Bill Wendling authored
long test(long x) { return (x & 123124) | 3; } Currently compiles to: _test: orl $3, %edi movq %rdi, %rax andq $123127, %rax ret This is because instruction and DAG combiners canonicalize (or (and x, C), D) -> (and (or, D), (C | D)) However, this is only profitable if (C & D) != 0. It gets in the way of the 3-addressification because the input bits are known to be zero. llvm-svn: 97616
-
- Mar 02, 2010
-
-
Dan Gohman authored
emitted after the increment. Make sure the insert position reflects this. This fixes PR6453. llvm-svn: 97537
-
Dan Gohman authored
respectively. llvm-svn: 97531
-
Bob Wilson authored
a loop and is itself the only dependency). llvm-svn: 97526
-
Bob Wilson authored
predecessors before returning. Otherwise, if multiple predecessor edges need splitting, we only get one of them per iteration. This makes a small but measurable compile time improvement with -enable-full-load-pre. llvm-svn: 97521
-
- Mar 01, 2010
-
-
Evan Cheng authored
llvm-svn: 97512
-
Dan Gohman authored
llvm-svn: 97458
-
Dan Gohman authored
llvm-svn: 97453
-
Dan Gohman authored
llvm-svn: 97448
-
- Feb 28, 2010
-
-
Bob Wilson authored
llvm-svn: 97366
-
- Feb 27, 2010
-
-
Chris Lattner authored
llvm-svn: 97313
-
Chris Lattner authored
of a subtle interation in a loop operating in densemap order. llvm-svn: 97288
-
rdar://7694996Chris Lattner authored
confusing the old MAT variable with the new GlobalType one. This caused us to promote the @disp global pointer into: @disp.body = internal global double*** undef instead of: @disp.body = internal global [3 x double**] undef llvm-svn: 97285
-
Chris Lattner authored
llvm-svn: 97283
-
- Feb 26, 2010
-
-
Bob Wilson authored
argument of createGVNPass and set it automatically for -O3. llvm-svn: 97245
-
Bob Wilson authored
llvm-svn: 97235
-
Chris Lattner authored
llvm-svn: 97231
-
- Feb 25, 2010
-
-
Chris Lattner authored
introduced when mallocinst was eliminated. llvm-svn: 97178
-
Dan Gohman authored
which branch on undef to branch on a boolean constant for the edge exiting the loop. This helps ScalarEvolution compute trip counts for loops. Teach ScalarEvolution to recognize single-value PHIs, when safe, and ForgetSymbolicName to forget such single-value PHI nodes as apprpriate in ForgetSymbolicName. llvm-svn: 97126
-
Nick Lewycky authored
llvm-svn: 97121
-
Nick Lewycky authored
llvm-svn: 97120
-
- Feb 24, 2010
-
-
Daniel Dunbar authored
llvm-svn: 97036
-
Daniel Dunbar authored
the DominatorTree. ...", in hopes of restoring poor old PPC bootstrap. llvm-svn: 97027
-
Dan Gohman authored
llvm-svn: 97024
-
Bob Wilson authored
argument is non-null, pass it along to PHITranslateSubExpr so that it can prefer using existing values that dominate the PredBB, instead of just blindly picking the first equivalent value that it finds on a uselist. Also when the DominatorTree is specified, have PHITranslateValue filter out any result that does not dominate the PredBB. This is basically just refactoring the check that used to be in GetAvailablePHITranslatedSubExpr and also in GVN. Despite my initial expectations, this change does not affect the results of GVN for any testcases that I could find, but it should help compile time. Before this change, if PHITranslateSubExpr picked a value that does not dominate, PHITranslateWithInsertion would then insert a new value, which GVN would later determine to be redundant and would replace. By picking a good value to begin with, we save GVN the extra work of inserting and then replacing a new value. llvm-svn: 97010
-
- Feb 23, 2010
-
-
Dan Gohman authored
handle NaN properly. Do (X une Y) ? X : Y -> X if one of X and Y is not zero. llvm-svn: 96955
-
Bob Wilson authored
I don't have a small testcase for this. llvm-svn: 96890
-
Evan Cheng authored
Instcombine constant folding can normalize gep with negative index to index with large offset. When instcombine objsize checking transformation sees these geps where the offset seemingly point out of bound, it should just return "i don't know" rather than asserting. llvm-svn: 96825
-
- Feb 22, 2010
-
-
Bob Wilson authored
failures from ValueTable::verifyRemoved() when using -debug. llvm-svn: 96805
-
Dan Gohman authored
llvm-svn: 96780
-
Dan Gohman authored
induction variable value and a loop-variant value, don't force the insert position to be at the post-increment position, because it may not be dominated by the loop-variant value. This fixes a use-before-def problem noticed on PPC. llvm-svn: 96774
-