- Jul 16, 2010
-
-
Owen Anderson authored
llvm-svn: 108530
-
Gabor Greif authored
llvm-svn: 108522
-
Nick Lewycky authored
llvm-svn: 108517
-
Eric Christopher authored
Working on testcases for Owen. llvm-svn: 108494
-
- Jul 15, 2010
-
-
Dan Gohman authored
different widths. In a use with a narrower fixup, formulae may be wider than the fixup, in which case the high bits aren't necessarily meaningful, so it isn't safe to reuse them for uses with wider fixups. This fixes PR7618, though the testcase is too large for a reasonable regression test, since it heavily dependes on hitting LSR's heuristics in a certain way. llvm-svn: 108455
-
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
-