diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-07-08 23:23:12 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-07-08 23:23:12 +0000 |
commit | 76ee6f70eadb3904c010cc3133119c7c463fa143 (patch) | |
tree | 0b044ff5819fcb276d9918e0ee20439cf62c5eaf /getsomesrcs.sh | |
parent | f5af636dbeb516e2d929e026d997841ffb431948 (diff) | |
download | external_llvm-76ee6f70eadb3904c010cc3133119c7c463fa143.zip external_llvm-76ee6f70eadb3904c010cc3133119c7c463fa143.tar.gz external_llvm-76ee6f70eadb3904c010cc3133119c7c463fa143.tar.bz2 |
Significant changes to correctly spill CC registers and to correctly
handle conditional move instructions:
-- cpMem<->Reg functions now support CC registers (int and FP) correctly.
Also, cpMem<->Reg functions now return a vector of machine instructions.
-- Scratch registers must be explicitly provided to cpMem<->Reg when
needed, since CC regs need one to be copied to/from memory.
-- CC regs are saved to a scratch register instead of stack.
-- All regs used by a instruction are now recorded in MachineInstr::regsUsed,
since regs used to save values *across* an instruction are not obvious
either from the operands or from the LiveVar sets.
-- An (explicit or implicit) operand may now be both a def and a use.
This is needed for conditional move operations.
So an operand may need spill code both before and after the instruction.
Other changes:
-- Added several get{Class,Type} functions.
-- Added unified-to-local register number conversion.
-- class MachineCodeForBasicBlock is now an annotation on BasicBlock.
-- Suggest/Color methods may modify the MachineInstr (and always did),
so don't make that argument const!
-- Caller-saving code doesn't need its special purpose code for
handling CC registers since cpMem<->Reg handle those correctly now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2834 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'getsomesrcs.sh')
0 files changed, 0 insertions, 0 deletions