- Feb 27, 2008
-
-
Bill Wendling authored
llvm-svn: 47663
-
Chris Lattner authored
llvm-svn: 47662
-
Chris Lattner authored
stack slot and store if the SINT_TO_FP is actually legal. This allows us to compile: double a(double b) {return (unsigned)b;} to: _a: cvttsd2siq %xmm0, %rax movl %eax, %eax cvtsi2sdq %rax, %xmm0 ret instead of: _a: subq $8, %rsp cvttsd2siq %xmm0, %rax movl %eax, %eax cvtsi2sdq %rax, %xmm0 addq $8, %rsp ret crazy. llvm-svn: 47660
-
Chris Lattner authored
llvm-svn: 47659
-
Chris Lattner authored
_test: movl %edi, %eax ret instead of: _test: movl $4294967295, %ecx movq %rdi, %rax andq %rcx, %rax ret It would be great to write this as a Pat pattern that used subregs instead of a 'pseudo' instruction, but I don't know how to do that in td files. llvm-svn: 47658
-
Evan Cheng authored
llvm-svn: 47657
-
Dan Gohman authored
llvm-svn: 47656
-
Dan Gohman authored
ComputeMaskedBits to use the APInt form, and remove the non-APInt form. llvm-svn: 47654
-
Devang Patel authored
llvm-svn: 47653
-
Chris Lattner authored
llvm-svn: 47652
-
Dan Gohman authored
Change several cases in SimplifyDemandedMask that don't ever do any simplifying to reuse the logic in ComputeMaskedBits instead of duplicating it. llvm-svn: 47648
-
Devang Patel authored
llvm-svn: 47642
-
Devang Patel authored
llvm-svn: 47641
-
Owen Anderson authored
in an invalid transformation. llvm-svn: 47639
-
- Feb 26, 2008
-
-
Devang Patel authored
llvm-svn: 47637
-
Arnold Schwaighofer authored
llvm-svn: 47635
-
Devang Patel authored
llvm-svn: 47634
-
Devang Patel authored
llvm-svn: 47633
-
Chris Lattner authored
instead of init'ing it maximally to zeros on entry. getFreePhysReg is pretty hot and only a few elements are typically used. This speeds up linscan by 5% on 176.gcc. llvm-svn: 47631
-
Bill Wendling authored
llvm-svn: 47629
-
Bill Wendling authored
would have been a Godsend here! llvm-svn: 47625
-
Evan Cheng authored
llvm-svn: 47623
-
Devang Patel authored
llvm-svn: 47619
-
Devang Patel authored
llvm-svn: 47616
-
-
Devang Patel authored
Remove unnecessary getOperand/setOperand overriders. Simplify getReturnValue() llvm-svn: 47614
-
Dan Gohman authored
llvm-svn: 47612
-
Devang Patel authored
Unify to ReturnInst::init() member functions. llvm-svn: 47611
-
Eli Friedman authored
try to simplify them. llvm-svn: 47610
-
Devang Patel authored
llvm-svn: 47607
-
Arnold Schwaighofer authored
llvm-svn: 47606
-
Chris Lattner authored
also fixes cfrac, flops, and 175.vpr llvm-svn: 47605
-
Duncan Sands authored
CodeGen/PowerPC/illegal-element-type.ll): suppose a node X is processed, and processing maps it to a node Y. Then X continues to exist in the DAG, but with no users. While processing some other node, a new node may be created that happens to be equal to X, and thus X will be reused rather than a truly new node. This can cause X to "magically reappear", and since it is in the Processed state in will not be reprocessed, so at the end of type legalization the illegal node X can still be present. The solution is to replace X with Y whenever X gets resurrected like this. llvm-svn: 47601
-
Bill Wendling authored
llvm-svn: 47600
-
Bill Wendling authored
llvm-svn: 47599
-
Bill Wendling authored
llvm-svn: 47598
-
Arnold Schwaighofer authored
GOT-style position independent code. Before only tail calls to protected/hidden functions within the same module were optimized. Now all function calls are tail call optimized. llvm-svn: 47594
-
Arnold Schwaighofer authored
calls. Before arguments that could overwrite each other were explicitly lowered to a stack slot, not giving the register allocator a chance to optimize. Now a sequence of copyto/copyfrom virtual registers ensures that arguments are loaded in (virtual) registers before they are lowered to the stack slot (and might overwrite each other). Also parameter stack slots are marked mutable for (potentially) tail calling functions. llvm-svn: 47593
-
Evan Cheng authored
vr1 = extract_subreg vr2, 3 ... vr3 = extract_subreg vr1, 2 The end result is vr3 is equal to vr2 with subidx 2. llvm-svn: 47592
-
Chris Lattner authored
after legalize. Just because a constant is legal (e.g. 0.0 in SSE) doesn't mean that its negated value is legal (-0.0). We could make this stronger by checking to see if the negated constant is actually legal post negation, but it doesn't seem like a big deal. llvm-svn: 47591
-