- Jul 09, 2011
-
-
Chris Lattner authored
llvm-svn: 134820
-
Chris Lattner authored
llvm-svn: 134819
-
Chris Lattner authored
llvm-svn: 134818
-
NAKAMURA Takumi authored
With Lit (not bash) in a test, multiple redirects >%t might open(%t, "w") multiple. It can be avoided if latter redirect is >>%t. It might work even if ">/dev/null" were used. llvm-svn: 134814
-
Lang Hames authored
llvm-svn: 134778
-
Jakob Stoklund Olesen authored
Try to move spills as early as possible in their basic block. This can help eliminate interferences by shortening the live range being spilled. This fixes PR10221. llvm-svn: 134776
-
Evan Cheng authored
llvm-svn: 134760
-
Evan Cheng authored
llvm-svn: 134756
-
Eli Friedman authored
Default 64-bit target features and SSE2 on when a triple specifies x86-64. Clean up all the other hacks which are now unnecessary. llvm-svn: 134753
-
- Jul 08, 2011
-
-
Jim Grosbach authored
The normal tBX instruction is predicable, so there's no reason the pseudos for using it as a return shouldn't be. Gives us some nice code-gen improvements as can be seen by the test changes. In particular, several tests now have to disable if-conversion because it works too well and defeats the test. llvm-svn: 134746
-
Julien Lerouge authored
http://llvm.org/bugs/show_bug.cgi?id=10305 llvm-svn: 134744
-
Cameron Zwarich authored
is to use this for architectures that have a native FMA instruction. llvm-svn: 134742
-
Jakob Stoklund Olesen authored
RAGreedy::tryAssign will now evict interference from the preferred register even when another register is free. To support this, add the EvictionCost struct that counts how many hints are broken by an eviction. We don't want to break one hint just to satisfy another. Rename canEvict to shouldEvict, and add the first bit of eviction policy that doesn't depend on spill weights: Always make room in the preferred register as long as the evictees can be split and aren't already assigned to their preferred register. Also make the CSR avoidance more accurate. When looking for a cheaper register it is OK to use a new volatile register. Only CSR aliases that have never been used before should be avoided. llvm-svn: 134735
-
Jim Grosbach authored
llvm-svn: 134719
-
Benjamin Kramer authored
We have to do this in DAGBuilder instead of DAGCombiner, because the exact bit is lost after building. struct foo { char x[24]; }; long bar(struct foo *a, struct foo *b) { return a-b; } is now compiled into movl 4(%esp), %eax subl 8(%esp), %eax sarl $3, %eax imull $-1431655765, %eax, %eax instead of movl 4(%esp), %eax subl 8(%esp), %eax movl $715827883, %ecx imull %ecx movl %edx, %eax shrl $31, %eax sarl $2, %edx addl %eax, %edx movl %edx, %eax llvm-svn: 134695
-
Lang Hames authored
Make GVN look through extractvalues for recognised intrinsics. GVN can then CSE ops that match values produced by the intrinsics. llvm-svn: 134677
-
Jakob Stoklund Olesen authored
llvm-svn: 134667
-
Jakob Stoklund Olesen authored
It was testing a linear scan feature: Test if linearscan is unfavoring registers for allocation to allow more reuse of reloads from stack slots. The greedy register allocator doesn't access any stack slots in this function, so the linear scan feature was not being tested. llvm-svn: 134666
-
Nick Lewycky authored
Fixes PR9602! llvm-svn: 134665
-
Eric Christopher authored
processor supports it just fine. Fixes PR9675 and rdar://9740801 llvm-svn: 134664
-
Eric Christopher authored
Fixes PR10149 and rdar://9738585 llvm-svn: 134648
-
- Jul 07, 2011
-
-
Evan Cheng authored
llvm-svn: 134641
-
Evan Cheng authored
Change some ARM subtarget features to be single bit yes/no in order to sink them down to MC layer. Also fix tests. llvm-svn: 134590
-
Lang Hames authored
llvm-svn: 134573
-
- Jul 06, 2011
-
-
Andrew Trick authored
llvm-svn: 134530
-
Tobias Grosser authored
The promotion code lost any alignment information, when hoisting loads and stores out of the loop. This lead to incorrect aligned memory accesses. We now use the largest alignment we can prove to be correct. llvm-svn: 134520
-
Jakub Staszak authored
llvm-svn: 134516
-
Kevin Enderby authored
llvm-svn: 134511
-
Kevin Enderby authored
push with a small constant produces a 2-byte push. llvm-svn: 134501
-
Dan Gohman authored
llvm-svn: 134447
-
- Jul 05, 2011
-
-
Eli Friedman authored
Add assembler/disassembler support for non-AVX pclmulqdq. While I'm here, use proper aliases for the pclmullqlqdq and friends. PR10269. llvm-svn: 134424
-
Jakob Stoklund Olesen authored
Remat during spilling triggers dead code elimination. If a phi-def becomes unused, that may also cause live ranges to split into separate connected components. This type of splitting is different from normal live range splitting. In particular, there may not be a common original interval. When the split range is its own original, make sure that the new siblings are also their own originals. The range being split cannot be used as an original since it doesn't cover the new siblings. llvm-svn: 134413
-
- Jul 04, 2011
-
-
Benjamin Kramer authored
PR10267: Don't combine an equality compare with an AND into an inequality compare when the AND has more than one use. This can pessimize code, inequalities are generally more expensive. llvm-svn: 134379
-
- Jul 03, 2011
-
-
NAKAMURA Takumi authored
llvm-svn: 134366
-
- Jul 02, 2011
-
-
Chandler Carruth authored
makes one of the tests actually mean something (as the string 'add' will always appear in the output of this file). llvm-svn: 134358
-
Chandler Carruth authored
a file descriptor. llvm-svn: 134355
-
Chandler Carruth authored
desired result based on the comments in the file. llvm-svn: 134354
-
Chandler Carruth authored
llvm-svn: 134353
-
Chandler Carruth authored
llvm-svn: 134352
-
Chandler Carruth authored
llvm-svn: 134351
-