| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
parts, and add target-independent code to add/preserve
MachineMemOperands.
llvm-svn: 60488
|
|
|
|
| |
llvm-svn: 59542
|
|
|
|
| |
llvm-svn: 57622
|
|
|
|
|
|
| |
isReg, etc., from isRegister, etc.
llvm-svn: 57006
|
|
|
|
|
|
|
|
|
| |
isImmediate(), isRegister(), and friends, to avoid confusion
about having two different names with the same meaning. I'm
not attached to the longer names, and would be ok with
changing to the shorter names if others prefer it.
llvm-svn: 56189
|
|
|
|
|
|
|
|
|
| |
requested
was inserted or not. This allows bitcast in fast isel to properly handle the case
where an appropriate reg-to-reg copy is not available.
llvm-svn: 55375
|
|
|
|
|
|
| |
had to be propoagated down into all the targets and up into all clients of this API.
llvm-svn: 54802
|
|
|
|
|
|
|
|
|
|
|
| |
MachineMemOperands. The pools are owned by MachineFunctions.
This drastically reduces the number of calls to malloc/free made
during the "Emit" phase of scheduling, as well as later phases
in CodeGen. Combined with other changes, this speeds up the
"instruction selection" phase of CodeGen by 10% in some cases.
llvm-svn: 53212
|
|
|
|
|
|
|
|
| |
propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
- Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.
llvm-svn: 53097
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.
Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.
This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.
llvm-svn: 52943
|
|
|
|
|
|
| |
(commuted) instruction.
llvm-svn: 52308
|
|
|
|
|
|
| |
instruction. X86, PowerPC and ARM are implemented
llvm-svn: 49809
|
|
|
|
| |
llvm-svn: 48577
|
|
|
|
|
|
| |
scavenging for 32-bit and 64-bit separately.
llvm-svn: 48186
|
|
|
|
| |
llvm-svn: 48166
|
|
|
|
| |
llvm-svn: 48158
|
|
|
|
| |
llvm-svn: 48143
|
|
|
|
| |
llvm-svn: 47915
|
|
|
|
|
|
|
|
|
| |
PPC-64 doesn't work.) This also lowers the spilling of the CR registers so that
it uses a register other than the default R0 register (the scavenger scrounges
for one). A significant part of this patch fixes how kill information is
handled.
llvm-svn: 47863
|
|
|
|
| |
llvm-svn: 47043
|
|
|
|
|
|
| |
the load address first to make sure it's 16 byte aligned.
llvm-svn: 46893
|
|
|
|
| |
llvm-svn: 45679
|
|
|
|
|
|
| |
Some day I'll get it all moved over...
llvm-svn: 45672
|
|
|
|
| |
llvm-svn: 45484
|
|
|
|
|
|
| |
version. It's unclear why gcc would ever compile this...
llvm-svn: 45476
|
|
|
|
|
|
|
|
|
|
| |
a header file from libcodegen. This violates a layering order: codegen
depends on target, not the other way around. The fix to this is to
split TII into two classes, TII and TargetInstrInfoImpl, which defines
stuff that depends on libcodegen. It is defined in libcodegen, where
the base is not.
llvm-svn: 45475
|
|
|
|
|
|
| |
Machine-level API cleanup instigated by Chris.
llvm-svn: 45470
|
|
|
|
|
|
|
|
|
|
|
|
| |
e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on
switching everything over, so new clients should just start using the
shorter names.
Remove old long accessors, switching everything over to use the short
accessor: getMachineBasicBlock() -> getMBB(),
getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
llvm-svn: 45464
|
|
|
|
|
|
|
|
|
|
| |
- Eliminate the static "print" method for operands, moving it
into MachineOperand::print.
- Change various set* methods for register flags to take a bool
for the value to set it to. Remove unset* methods.
- Group methods more logically by operand flavor in MachineOperand.h
llvm-svn: 45461
|
|
|
|
|
|
| |
Likewise setImmedValue -> setImm
llvm-svn: 45453
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
| |
Patch by Sterling Stein!
llvm-svn: 41758
|
|
|
|
| |
llvm-svn: 37571
|
|
|
|
| |
llvm-svn: 37528
|
|
|
|
|
|
| |
instruction.
llvm-svn: 37266
|
|
|
|
|
|
| |
/ inserted.
llvm-svn: 37192
|
|
|
|
| |
llvm-svn: 36430
|
|
|
|
| |
llvm-svn: 32333
|
|
|
|
|
|
| |
of opcode and number of operands.
llvm-svn: 31947
|
|
|
|
|
|
|
|
| |
value and CR reg #. This requires swapping the order of these everywhere
that touches BCC and requires us to write custom matching logic for
PPCcondbranch :(
llvm-svn: 31835
|
|
|
|
| |
llvm-svn: 31834
|
|
|
|
| |
llvm-svn: 31833
|
|
|
|
| |
llvm-svn: 31765
|
|
|
|
| |
llvm-svn: 31712
|
|
|
|
| |
llvm-svn: 31264
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides stuff like:
cmpw cr0, r15, r29
mr r14, r15
- bge cr0, LBB3_111 ;bb656
- b LBB3_90 ;bb501
+ blt cr0, LBB3_90 ;bb501
LBB3_111: ;bb656
lwz r18, 68(r1)
which is particularly good for dispatch group formation.
llvm-svn: 31101
|
|
|
|
| |
llvm-svn: 31097
|
|
|
|
| |
llvm-svn: 31096
|
|
|
|
| |
llvm-svn: 31003
|
|
|
|
| |
llvm-svn: 30946
|