- May 03, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 70770
-
Anton Korobeynikov authored
llvm-svn: 70764
-
Anton Korobeynikov authored
llvm-svn: 70750
-
Anton Korobeynikov authored
llvm-svn: 70749
-
Argyrios Kyrtzidis authored
-Create DebugLocs without the need to have a DwarfWriter around llvm-svn: 70682
-
- May 01, 2009
-
-
Bob Wilson authored
Changes to take advantage of this will come later. llvm-svn: 70560
-
Bill Wendling authored
llvm-svn: 70539
-
Bill Wendling authored
llvm-svn: 70537
-
Bill Wendling authored
llvm-svn: 70534
-
Bill Wendling authored
llvm-svn: 70533
-
Evan Cheng authored
llvm-svn: 70524
-
Argyrios Kyrtzidis authored
-Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable* -Remove DwarfWriter::getOrCreateSourceID -Make necessary changes for the above (fix callsites, etc.) llvm-svn: 70520
-
- Apr 30, 2009
-
-
Jakob Stoklund Olesen authored
llvm-svn: 70513
-
Evan Cheng authored
Add a smarter heuristic to determine when to coalesce a virtual register with a physical one. More specifically, it avoid tying a virtual register in the loop with a physical register defined / used outside the loop. When it determines it's not profitable, it will use the physical register as the allocation preference instead. This is *not* turned on by default. Testing indicates this is just as likely to pessimize code. The main issue seems to be allocation preference doesn't work effectively. That will change once I've taught register allocator "swapping". llvm-svn: 70503
-
Jay Foad authored
class. llvm-svn: 70488
-
Chris Lattner authored
memory operands otherwise the writebacks get lost when the inline asm doesn't otherwise have side effects. This fixes rdar://6839427, though clang really shouldn't generate these anymore. llvm-svn: 70455
-
Bill Wendling authored
which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
-
Nate Begeman authored
llvm-svn: 70425
-
- Apr 29, 2009
-
-
Jakob Stoklund Olesen authored
llvm-svn: 70408
-
Nate Begeman authored
llvm-svn: 70391
-
Evan Cheng authored
spillPhysRegAroundRegDefsUses() may have invalidated iterators stored in fixed_ IntervalPtrs. Reset them. llvm-svn: 70378
-
Nate Begeman authored
llvm-svn: 70372
-
Sanjiv Gupta authored
llvm-svn: 70366
-
Chris Lattner authored
anything larger than 64-bits, avoiding a crash. This should really be fixed to use APInts, though type legalization happens to help us out and we get good code on the attached testcase at least. This fixes rdar://6836460 llvm-svn: 70360
-
Evan Cheng authored
Determine allocation 'preference' with right register class. I haven't seen this changing codegen so no test case. llvm-svn: 70351
-
Bill Wendling authored
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
-
- Apr 28, 2009
-
-
Evan Cheng authored
llvm-svn: 70309
-
Jakob Stoklund Olesen authored
If the physical register does not belong to the virtual register's regclass, don't coalesce. The physical register could be an invalid operand for an instruction using the vreg. The regclass matching is done after determining the actual subregisters being copied. llvm-svn: 70298
-
Sanjiv Gupta authored
llvm-svn: 70297
-
Jakob Stoklund Olesen authored
Also make the method non-asserting. It will return NULL when given an invalid subreg index. The method is needed by an upcoming patch. llvm-svn: 70296
-
Evan Cheng authored
llvm-svn: 70291
-
Evan Cheng authored
llvm-svn: 70279
-
Bill Wendling authored
llvm-svn: 70275
-
Bill Wendling authored
use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... llvm-svn: 70270
-
- Apr 27, 2009
-
-
Evan Cheng authored
llvm-svn: 70245
-
Owen Anderson authored
This should have no effect on generated code, but makes the intermediate state of the coalescer more sane. llvm-svn: 70238
-
Duncan Sands authored
no-longer needed workarounds. llvm-svn: 70234
-
Nate Begeman authored
PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. llvm-svn: 70225
-
Evan Cheng authored
Fix PR4056. It's possible a physical register def is dead if its implicit use is deleted by two-address pass. llvm-svn: 70213
-
Evan Cheng authored
llvm-svn: 70212
-