- Dec 13, 2005
-
-
Evan Cheng authored
llvm-svn: 24687
-
Evan Cheng authored
llvm-svn: 24686
-
Evan Cheng authored
llvm-svn: 24685
-
Evan Cheng authored
llvm-svn: 24684
-
Evan Cheng authored
llvm-svn: 24683
-
Evan Cheng authored
This enables the removal of some explicit type casts. * Rename immZExt8 to i16ZExt8 as well. llvm-svn: 24682
-
Evan Cheng authored
llvm-svn: 24681
-
Evan Cheng authored
llvm-svn: 24680
-
Evan Cheng authored
if (!N.Val->hasOneUse()) { std::map<SDOperand, SDOperand>::iterator CGMI = CodeGenMap.find(N); if (CGMI != CodeGenMap.end()) return CGMI->second; } Suppose a DAG like this: X ^ ^ / \ USE1 USE2 Suppose USE1 is being selected first and during which X is selected and returned a new node. After this, USE1 is no longer an use of X. During USE2 selection, X will be selected again since it has only one use! The fix is to always query CodeGenMap. llvm-svn: 24679
-
- Dec 12, 2005
-
-
Chris Lattner authored
llvm-svn: 24678
-
Chris Lattner authored
llvm-svn: 24677
-
Chris Lattner authored
llvm-svn: 24676
-
Evan Cheng authored
llvm-svn: 24675
-
Evan Cheng authored
base or index operands being selected. llvm-svn: 24674
-
Evan Cheng authored
first before the chain. e.g. int X; int foo(int x) { x += X + 37; return x; } If chain operand is selected first, we would generate: movl X, %eax movl 4(%esp), %ecx leal 37(%ecx,%eax), %eax rather than movl $37, %eax addl 4(%esp), %eax addl X, %eax which does not require %ecx. (Due to ADD32rm not matching.) llvm-svn: 24673
-
Andrew Lenharth authored
llvm-svn: 24672
-
Chris Lattner authored
llvm-svn: 24671
-
Evan Cheng authored
llvm-svn: 24670
-
Evan Cheng authored
Bug fix: finding the correct incoming chain for pattern with nested src operand. And a minor change to make output code slightly more readible. llvm-svn: 24669
-
Andrew Lenharth authored
llvm-svn: 24668
-
Chris Lattner authored
186.crafty by about 16% (from 15.109s to 13.045s) on my system. This turns allocas with unions/casts into scalars. For example crafty has something like this: union doub { unsigned short i[4]; long long d; }; int f(long long a) { return ((union doub){.d=a}).i[1]; } Instead of generating loads and stores to an alloca, we now promote the whole thing to a scalar long value. This implements: Transforms/ScalarRepl/AggregatePromote.ll llvm-svn: 24667
-
Chris Lattner authored
the presense of pointer casts llvm-svn: 24666
-
- Dec 11, 2005
-
-
Chris Lattner authored
llvm-svn: 24665
-
Chris Lattner authored
llvm-svn: 24664
-
Chris Lattner authored
llvm-svn: 24663
-
Chris Lattner authored
llvm-svn: 24662
-
Chris Lattner authored
llvm-svn: 24661
-
Chris Lattner authored
llvm-svn: 24660
-
Chris Lattner authored
llvm-svn: 24659
-
Andrew Lenharth authored
FP select improvements (and likely breakage), oh and crazy people might want to *return* floating point values. Don't see why myself llvm-svn: 24658
-
- Dec 10, 2005
-
-
Nate Begeman authored
them in the PPC backend, to simplify some logic out of Select and SelectAddr. llvm-svn: 24657
-
Evan Cheng authored
llvm-svn: 24656
-
Evan Cheng authored
llvm-svn: 24655
-
Evan Cheng authored
* Added X86 dec patterns. llvm-svn: 24654
-
Evan Cheng authored
llvm-svn: 24653
-
Evan Cheng authored
llvm-svn: 24652
-
Nate Begeman authored
hopefully use patterns in the near future. llvm-svn: 24651
-
- Dec 09, 2005
-
-
Chris Lattner authored
must be a pointer. This removes a type check out of the code generated by tblgen for load matching. llvm-svn: 24650
-
Chris Lattner authored
the same type as the pointer type for a target. llvm-svn: 24649
-
Evan Cheng authored
llvm-svn: 24648
-