- Jul 11, 2011
-
-
Jay Foad authored
llvm-svn: 134888
-
Jay Foad authored
llvm-svn: 134887
-
Evan Cheng authored
and MCSubtargetInfo. - Added methods to update subtarget features (used when targets automatically detect subtarget features or switch modes). - Teach X86Subtarget to update MCSubtargetInfo features bits since the MCSubtargetInfo layer can be shared with other modules. - These fixes .code 16 / .code 32 support since mode switch is updated in MCSubtargetInfo so MC code emitter can do the right thing. llvm-svn: 134884
-
Rafael Espindola authored
more than one use. Fixes PR10322. llvm-svn: 134883
-
-
- Jul 10, 2011
-
-
Chandler Carruth authored
llvm-svn: 134868
-
Jakub Staszak authored
llvm-svn: 134858
-
Jakub Staszak authored
llvm-svn: 134856
-
- Jul 09, 2011
-
-
Chris Lattner authored
type refinement. Zap them now that type refinement is toast. llvm-svn: 134837
-
Chris Lattner authored
llvm-svn: 134836
-
Chris Lattner authored
their names, we don't need a module around to print them. llvm-svn: 134835
-
Chris Lattner authored
llvm-svn: 134833
-
Chris Lattner authored
llvm-svn: 134832
-
Chris Lattner authored
patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. llvm-svn: 134829
-
NAKAMURA Takumi authored
llvm-svn: 134812
-
Evan Cheng authored
llvm-svn: 134800
-
Evan Cheng authored
CPU, and feature string. Parsing some asm directives can change subtarget state (e.g. .code 16) and it must be reflected in other modules (e.g. MCCodeEmitter). That is, the MCSubtargetInfo instance must be shared. llvm-svn: 134795
-
Jakob Stoklund Olesen authored
Spills should be hoisted out of loops, but we don't want to hoist them to dominating blocks at the same loop depth. That could cause the spills to be executed more often. llvm-svn: 134782
-
Lang Hames authored
Added recognition for signed add/sub/mul with overflow intrinsics to GVN as per Chris and Frits suggestion. llvm-svn: 134777
-
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
-
Eli Friedman authored
Really force on 64bit for 64-bit targets. Should fix remaining failures on unknown x86/non-x86 targets. llvm-svn: 134773
-
Eli Friedman authored
Revert earlier unnecessary hack. Make sure we correctly force on 64bit and cmov for 64-bit targets. llvm-svn: 134768
-
Evan Cheng authored
llvm-svn: 134764
-
Evan Cheng authored
llvm-svn: 134763
-
Evan Cheng authored
llvm-svn: 134760
-
Bob Wilson authored
llvm-svn: 134759
-
Jim Grosbach authored
llvm-svn: 134758
-
Evan Cheng authored
llvm-svn: 134757
-
Jim Grosbach authored
llvm-svn: 134755
-
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
-
Bob Wilson authored
According to Intel Application Note 485, this value is used for "Intel Core i7 and Intel Xeon processor". Just include it with the other "corei7-avx" entries. llvm-svn: 134750
-
Bob Wilson authored
This tightens up checking for overflow in alloca sizes, based on feedback from Duncan and John about the change in r132926. llvm-svn: 134749
-
- 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
-
Evan Cheng authored
llvm-svn: 134741
-
Jim Grosbach authored
llvm-svn: 134739
-
Benjamin Kramer authored
Found by valgrind. llvm-svn: 134738
-
Jim Grosbach authored
No functional change. llvm-svn: 134737
-
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
-