- Aug 31, 2008
-
-
Bill Wendling authored
llvm-svn: 55577
-
Bill Wendling authored
llvm-svn: 55576
-
Bill Wendling authored
// fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) -> // (rotl x, y) // fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) -> // (rotr x, (sub 32, y)) Example: (x == 0xDEADBEEF and y == 4) (x << 4) | (x >> 28) => 0xEADBEEF0 | 0x0000000D => 0xEADBEEFD (rotl x, 4) => 0xEADBEEFD (rotr x, 28) => 0xEADBEEFD - Fix comment and code for second version. It wasn't using the rot* propertly. // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> // (rotr x, y) // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> // (rotl x, (sub 32, y)) (x << 28) | (x >> 4) => 0xD0000000 | 0x0DEADBEE => 0xDDEADBEE (rotl x, 4) => 0xEADBEEFD (rotr x, 28) => (0xEADBEEFD) llvm-svn: 55575
-
Gabor Greif authored
llvm-svn: 55574
-
- Aug 30, 2008
-
-
Gabor Greif authored
llvm-svn: 55571
-
Gordon Henriksen authored
Based on patch by Giorgos Korfiatis. llvm-svn: 55570
-
Gordon Henriksen authored
Breakage was exposed in the Ocaml bindings tests after Chris uncommented an assertion in r55084. llvm-svn: 55566
-
Gabor Greif authored
llvm-svn: 55565
-
Evan Cheng authored
Re-apply 55467 with fix. If copy is being replaced by remat'ed def, transfer the implicit defs onto the remat'ed instruction. llvm-svn: 55564
-
Evan Cheng authored
llvm-svn: 55563
-
Evan Cheng authored
For now, can't mark XOR64rr isAsCheapAsAMove. It's technically correct. But various passes cannot handle remating these. llvm-svn: 55562
-
Evan Cheng authored
Transform (x << (y&31)) -> (x << y). This takes advantage of the fact x86 shift instructions 2nd operand (shift count) is limited to 0 to 31 (or 63 in the x86-64 case). llvm-svn: 55558
-
Owen Anderson authored
Fix an issue where a use might be selected before a def, and then we didn't respect the pre-chosen vreg assignment when selecting the def. This is the naive solution to the problem: insert a copy to the pre-chosen vreg. Other solutions might be preferable, such as: 1) Passing the dest reg into FastEmit_. However, this would require the higher level code to know about reg classes, which they don't currently. 2) Selecting blocks in reverse postorder. This has some compile time cost for computing the order, and we'd need to measure its impact. llvm-svn: 55555
-
Dale Johannesen authored
llvm-svn: 55554
-
Evan Cheng authored
llvm-svn: 55553
-
Evan Cheng authored
llvm-svn: 55552
-
Evan Cheng authored
llvm-svn: 55551
-
Evan Cheng authored
llvm-svn: 55549
-
Evan Cheng authored
llvm-svn: 55548
-
- Aug 29, 2008
-
-
Dale Johannesen authored
llvm-svn: 55546
-
Owen Anderson authored
llvm-svn: 55545
-
Chris Lattner authored
llvm-svn: 55542
-
Chris Lattner authored
%4 = add ... instead of: add ... ; 4 This makes opt -print-cfg output actually usable and makes .ll files generally easier to read. This fixes PR2480 llvm-svn: 55541
-
Chris Lattner authored
nameless values, such as: %3 = add i32 4, 2 This fixes the first half of PR2480 llvm-svn: 55539
-
Evan Cheng authored
llvm-svn: 55533
-
Evan Cheng authored
llvm-svn: 55531
-
Evan Cheng authored
llvm-svn: 55530
-
Evan Cheng authored
llvm-svn: 55528
-
Evan Cheng authored
llvm-svn: 55521
-
Evan Cheng authored
llvm-svn: 55518
-
Dan Gohman authored
llvm-svn: 55512
-
Gabor Greif authored
llvm-svn: 55511
-
Chris Lattner authored
llvm-svn: 55508
-
Nicolas Geoffray authored
whose darwin code was written after the ability to dynamically register frames, we need to do special hacks to make things work. llvm-svn: 55507
-
- Aug 28, 2008
-
-
Gabor Greif authored
llvm-svn: 55504
-
Dan Gohman authored
llvm-svn: 55500
-
Mon P Wang authored
In lowering SELECT_CC, removed cases where we can't flip the true and false when the compare value has a NaN llvm-svn: 55499
-
Dan Gohman authored
its work by putting all nodes in the worklist, requiring a big dynamic allocation. Now, DAGCombiner just iterates over the AllNodes list and maintains a worklist for nodes that are newly created or need to be revisited. This allows the worklist to stay small in most cases, so it can be a SmallVector. This has the side effect of making DAGCombine not miss a folding opportunity in alloca-align-rounding.ll. llvm-svn: 55498
-
Dan Gohman authored
SelectionDAGLowering instead of being in an anonymous namespace. This fixes warnings about SelectionDAGLowering having fields using anonymous namespaces. llvm-svn: 55497
-
Dan Gohman authored
were being emitted after the first instructions of the entry block. llvm-svn: 55496
-