| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 32698
|
|
|
|
| |
llvm-svn: 32366
|
|
|
|
| |
llvm-svn: 32353
|
|
|
|
| |
llvm-svn: 32321
|
|
|
|
|
|
| |
is 'unsigned'.
llvm-svn: 32279
|
|
|
|
| |
llvm-svn: 31985
|
|
|
|
| |
llvm-svn: 31364
|
|
|
|
|
|
| |
dest / src operands can be tied together.
llvm-svn: 31363
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
actually *removes* one of the operands, instead of just assigning both operands
the same register. This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.
Changing this also gets rid of a bunch of hacky code in various places.
This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.
llvm-svn: 30108
|
|
|
|
| |
llvm-svn: 29911
|
|
|
|
| |
llvm-svn: 29471
|
|
|
|
| |
llvm-svn: 29434
|
|
|
|
| |
llvm-svn: 29250
|
|
|
|
| |
llvm-svn: 29220
|
|
|
|
| |
llvm-svn: 28973
|
|
|
|
| |
llvm-svn: 28102
|
|
|
|
| |
llvm-svn: 25515
|
|
|
|
|
|
|
| |
code. PrologEpilogInserter hasn't been updated yet though, so targets cannot
use this info.
llvm-svn: 23536
|
|
|
|
| |
llvm-svn: 21439
|
|
|
|
| |
llvm-svn: 21420
|
|
|
|
| |
llvm-svn: 19793
|
|
|
|
|
|
|
|
| |
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
|
|
|
|
| |
llvm-svn: 15775
|
|
|
|
| |
llvm-svn: 15774
|
|
|
|
|
|
| |
"Support/Debug.h".
llvm-svn: 15089
|
|
|
|
|
|
| |
MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function.
llvm-svn: 14389
|
|
|
|
| |
llvm-svn: 13956
|
|
|
|
| |
llvm-svn: 12425
|
|
|
|
|
|
| |
by reference now that MachineInstr* are in an ilist
llvm-svn: 11732
|
|
|
|
| |
llvm-svn: 11619
|
|
|
|
|
|
| |
Remove one of the operands of a two operand instruction
llvm-svn: 11478
|
|
|
|
|
|
|
|
|
|
| |
MRegisterInfo::getNumRegs() instead of
MRegisterInfo::FirstVirtualRegister.
Also use MRegisterInfo::is{Physical,Virtual}Register where
appropriate.
llvm-svn: 11477
|
|
|
|
| |
llvm-svn: 11393
|
|
|
|
|
|
|
|
|
| |
ilist of MachineInstr objects. This allows constant time removal and
insertion of MachineInstr instances from anywhere in each
MachineBasicBlock. It also allows for constant time splicing of
MachineInstrs into or out of MachineBasicBlocks.
llvm-svn: 11340
|
|
|
|
| |
llvm-svn: 11283
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
b) add isUse(), isDef()
c) rename opHiBits32() to isHiBits32(),
opLoBits32() to isLoBits32(),
opHiBits64() to isHiBits64(),
opLoBits64() to isLoBits64().
This results to much more readable code, for example compare
"op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
very often in the code.
llvm-svn: 10461
|
|
|
|
| |
llvm-svn: 9903
|
|
|
|
|
|
| |
Header files will be on the way.
llvm-svn: 9298
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and TargetInstrDescriptor::ImplicitUses to always point to a null
terminated array and never be null. So there is no need to check for
pointer validity when iterating over those sets. Code that looked
like:
if (const unsigned* AS = TID.ImplicitDefs) {
for (int i = 0; AS[i]; ++i) {
// use AS[i]
}
}
was changed to:
for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) {
// use *AS
}
llvm-svn: 8960
|
|
|
|
| |
llvm-svn: 7944
|
|
|
|
| |
llvm-svn: 7823
|
|
|
|
| |
llvm-svn: 7533
|
|
|
|
| |
llvm-svn: 7497
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed spilling of %fcc[0-3] which are part of %fsr.
(2) Moved some machine-independent reg-class code to class TargetRegInfo
from SparcReg{Class,}Info.
(3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly()
and related functions and flags. Fixed several bugs where only
"isDef" was being checked, not "isDefAndUse".
llvm-svn: 6341
|
|
|
|
| |
llvm-svn: 5272
|
|
|
|
| |
llvm-svn: 5220
|
|
|
|
| |
llvm-svn: 5200
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use new FunctionFrameInfo object to manage stack slots instead of doing
it directly
* Adjust to new MRegisterInfo API
* Don't take a TM as a ctor argument
* Don't keep track of which callee saved registers are modified
* Don't emit prolog/epilog code or spill/restore code for callee saved regs
* Use new allocation_order_begin/end iterators to simplify dramatically the
logic for picking registers to allocate
* Machine PHI nodes can no longer contain constant arguments
* Use a bitvector to keep track of registers used instead of a set
* Fix problem where explicitly referenced registers would be added to
regsused set and never removed
llvm-svn: 5196
|
|
|
|
| |
llvm-svn: 5144
|
|
|
|
| |
llvm-svn: 5113
|