- Jul 15, 2010
-
-
Dan Gohman authored
llvm-svn: 108453
-
Owen Anderson authored
llvm-svn: 108436
-
Owen Anderson authored
the corresponding or-icmp-and pattern. This has the added benefit of doing the matching earlier, and thus being less susceptible to being confused by earlier transforms. llvm-svn: 108429
-
Owen Anderson authored
llvm-svn: 108427
-
Dan Gohman authored
a zero. This situation arrises in Fortran code with induction variables that start at 1 instead of 0. This fixes PR7651. llvm-svn: 108424
-
Owen Anderson authored
This now passes LIT, nighty test, and llvm-gcc bootstrap on my machine. llvm-svn: 108422
-
Nick Lewycky authored
llvm-svn: 108418
-
Nick Lewycky authored
llvm-svn: 108417
-
Chris Lattner authored
it *changing* the things it replaces, not just causing them to drop to null. There is no functionality change yet, but this is required for a subsequent patch. llvm-svn: 108414
-
Eli Friedman authored
llvm-svn: 108389
-
Owen Anderson authored
Add instcombine transforms to optimize tests of multiple bits of the same value into a single larger comparison. llvm-svn: 108378
-
- Jul 14, 2010
-
-
Owen Anderson authored
"bonus" instruction to be speculatively executed. Add a heuristic to ensure we're not tripping up out-of-order execution by checking that this bonus instruction only uses values that were already guaranteed to be available. This allows us to eliminate the short circuit in (x&1)&&(x&2). llvm-svn: 108351
-
Chris Lattner authored
llvm-svn: 108322
-
Chris Lattner authored
reapply benjamin's instcombine patch, I don't see anything wrong with it and can't repro any problems with a manual self-host. llvm-svn: 108320
-
- Jul 13, 2010
-
-
Eric Christopher authored
llvm-svn: 108252
-
Duncan Sands authored
by a return that returns a constant, while elsewhere in the function another return instruction returns a different constant. This is a special case of accumulator recursion, so just generalize the existing logic a bit. llvm-svn: 108241
-
- Jul 12, 2010
-
-
Benjamin Kramer authored
llvm-svn: 108153
-
Benjamin Kramer authored
llvm-svn: 108152
-
Gabor Greif authored
llvm-svn: 108150
-
Benjamin Kramer authored
llvm-svn: 108148
-
Gabor Greif authored
llvm-svn: 108147
-
Gabor Greif authored
llvm-svn: 108146
-
Gabor Greif authored
llvm-svn: 108145
-
Gabor Greif authored
llvm-svn: 108144
-
Gabor Greif authored
llvm-svn: 108143
-
Gabor Greif authored
llvm-svn: 108142
-
Benjamin Kramer authored
llvm-svn: 108141
-
Benjamin Kramer authored
llvm-svn: 108140
-
Benjamin Kramer authored
llvm-svn: 108139
-
Gabor Greif authored
llvm-svn: 108138
-
Gabor Greif authored
llvm-svn: 108137
-
Benjamin Kramer authored
instcombine: fold (x & y) | (~x & z) and (x & y) ^ (~x & z) into ((y ^ z) & x) ^ z which is one instruction shorter. (PR6773) before: %and = and i32 %y, %x %neg = xor i32 %x, -1 %and4 = and i32 %z, %neg %xor = xor i32 %and4, %and after: %xor1 = xor i32 %z, %y %and2 = and i32 %xor1, %x %xor = xor i32 %and2, %z llvm-svn: 108136
-
Gabor Greif authored
llvm-svn: 108135
-
Gabor Greif authored
llvm-svn: 108134
-
Gabor Greif authored
llvm-svn: 108133
-
Gabor Greif authored
llvm-svn: 108132
-
Gabor Greif authored
llvm-svn: 108131
-
Duncan Sands authored
llvm-svn: 108130
-
Chris Lattner authored
by Hans Vandierendonck from PR7605 llvm-svn: 108116
-
Chris Lattner authored
the LHS and RHS of an and/or instruction, don't multiply add known predecessor values. This fixes the crash on testcase from PR7498 llvm-svn: 108114
-