- Jan 10, 2011
-
-
Chris Lattner authored
back to life. llvm-svn: 123146
-
Chris Lattner authored
llvm-svn: 123145
-
Chris Lattner authored
llvm-svn: 123144
-
Chris Lattner authored
llvm-svn: 123142
-
Chris Lattner authored
llvm-svn: 123141
-
Chris Lattner authored
llvm-svn: 123139
-
- Jan 09, 2011
-
-
Chris Lattner authored
NUW AddRec's much more aggressively. We now get a trip count for @test2 in nsw.ll llvm-svn: 123138
-
Chris Lattner authored
llvm-svn: 123136
-
Chandler Carruth authored
perform rounding other than truncation in the IR. Common C code for this turns into really an LLVM intrinsic call that blocks a lot of further optimizations. llvm-svn: 123135
-
Chris Lattner authored
a + {b,+,stride} into {a+b,+,stride} (because a is LIV), then the resultant AddRec is NUW/NSW if the client says it is. llvm-svn: 123133
-
Chris Lattner authored
void f(int* begin, int* end) { std::fill(begin, end, 0); } which turns into a != exit expression where one pointer is strided and (thanks to step #1) known to not overflow, and the other is loop invariant. The observation here is that, though the IV is strided by 4 in this case, that the IV *has* to become equal to the end value. It cannot "miss" the end value by stepping over it, because if it did, the strided IV expression would eventually wrap around. Handle this by turning A != B into "A-B != 0" where the A-B part is known to be NUW. llvm-svn: 123131
-
Jakob Stoklund Olesen authored
when no virtual registers have been allocated. It was only used to resize IndexedMaps, so provide an IndexedMap::resize() method such that Map.grow(MRI.getLastVirtReg()); can be replaced with the simpler Map.resize(MRI.getNumVirtRegs()); This works correctly when no virtuals are allocated, and it bypasses the to/from index conversions. llvm-svn: 123130
-
Chris Lattner authored
llvm-svn: 123129
-
Jakob Stoklund Olesen authored
physical register numbers. This makes the hack used in LiveInterval official, and lets LiveInterval be oblivious of stack slots. The isPhysicalRegister() and isVirtualRegister() predicates don't know about this, so when a variable may contain a stack slot, isStackSlot() should always be tested first. llvm-svn: 123128
-
Chandler Carruth authored
llvm-svn: 123126
-
Chris Lattner authored
without informing memdep. This could cause nondeterminstic weirdness based on where instructions happen to get allocated, and will hopefully breath some life into some broken testers. llvm-svn: 123124
-
Jakob Stoklund Olesen authored
llvm-svn: 123123
-
Tobias Grosser authored
llvm-svn: 123121
-
Cameron Zwarich authored
llvm-svn: 123117
-
Chandler Carruth authored
llvm-svn: 123116
-
Cameron Zwarich authored
llvm-svn: 123115
-
Cameron Zwarich authored
llvm-svn: 123114
-
Chandler Carruth authored
Also, switch to a more clear 'sink' function with its declaration to avoid any confusion about 'g'. Thanks for the suggestion Frits. llvm-svn: 123113
-
Chandler Carruth authored
llvm-svn: 123112
-
Chandler Carruth authored
llvm-svn: 123111
-
Jakob Stoklund Olesen authored
of using a Location class with the same information. When making a copy of a MachineOperand that was already stored in a MachineInstr, it is necessary to clear the parent pointer on the copy. Otherwise the register use-def lists become inconsistent. Add MachineOperand::clearParent() to do that. An alternative would be a custom MachineOperand copy constructor that cleared ParentMI. I didn't want to do that because of the performance impact. llvm-svn: 123109
-
Jakob Stoklund Olesen authored
llvm-svn: 123108
-
Jakob Stoklund Olesen authored
Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first virtual register is printed as %vreg0. TRI::NoRegister is printed as %noreg. llvm-svn: 123107
-
Jakob Stoklund Olesen authored
llvm-svn: 123106
-
Chris Lattner authored
with GEP instructions are always NUW, because PHIs cannot wrap the end of the address space. llvm-svn: 123105
-
Chris Lattner authored
that have the bit set. llvm-svn: 123104
-
Chandler Carruth authored
llvm-svn: 123103
-
Jakob Stoklund Olesen authored
llvm-svn: 123102
-
Jakob Stoklund Olesen authored
depending on TRI::FirstVirtualRegister. Also use TRI::printReg instead of printing virtual registers directly. llvm-svn: 123101
-
Jakob Stoklund Olesen authored
virtual registers. llvm-svn: 123100
-
Jakob Stoklund Olesen authored
Provide MRI::getNumVirtRegs() and TRI::index2VirtReg() functions to allow iteration over virtual registers without depending on the representation of virtual register numbers. llvm-svn: 123098
-
Jakob Stoklund Olesen authored
Use an IndexedMap for LiveOutRegInfo to hide its dependence on TargetRegisterInfo::FirstVirtualRegister. llvm-svn: 123096
-
- Jan 08, 2011
-
-
Cameron Zwarich authored
llvm-svn: 123093
-
Chris Lattner authored
updating memdep when fusing stores together. This fixes the crash optimizing the bullet benchmark. llvm-svn: 123091
-
Chris Lattner authored
llvm-svn: 123090
-