diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2010-06-22 01:18:16 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2010-06-22 01:18:16 +0000 |
| commit | 8bed85099fd6ea5f408e5dbaa7c1e60dade7e159 (patch) | |
| tree | 8ffb7495b6a7d723ec73603ac30feef7874e54a0 /lib/Target/ARM/Thumb2InstrInfo.h | |
| parent | 84c7566688cfbcb75436e5277b699988e949b255 (diff) | |
| download | external_llvm-8bed85099fd6ea5f408e5dbaa7c1e60dade7e159.zip external_llvm-8bed85099fd6ea5f408e5dbaa7c1e60dade7e159.tar.gz external_llvm-8bed85099fd6ea5f408e5dbaa7c1e60dade7e159.tar.bz2 | |
Tail merging pass shall not break up IT blocks. rdar://8115404
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106517 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Thumb2InstrInfo.h')
| -rw-r--r-- | lib/Target/ARM/Thumb2InstrInfo.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/ARM/Thumb2InstrInfo.h b/lib/Target/ARM/Thumb2InstrInfo.h index d5fc359..8b01bcb 100644 --- a/lib/Target/ARM/Thumb2InstrInfo.h +++ b/lib/Target/ARM/Thumb2InstrInfo.h @@ -35,6 +35,9 @@ public: void ReplaceTailWithBranchTo(MachineBasicBlock::iterator Tail, MachineBasicBlock *NewDest) const; + bool isLegalToSplitMBBAt(MachineBasicBlock &MBB, + MachineBasicBlock::iterator MBBI) const; + bool copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, unsigned DestReg, unsigned SrcReg, @@ -68,6 +71,13 @@ public: ScheduleHazardRecognizer * CreateTargetPostRAHazardRecognizer(const InstrItineraryData &II) const; }; + +/// getITInstrPredicate - Valid only in Thumb2 mode. This function is identical +/// to llvm::getInstrPredicate except it returns AL for conditional branch +/// instructions which are "predicated", but are not in IT blocks. +ARMCC::CondCodes getITInstrPredicate(const MachineInstr *MI, unsigned &PredReg); + + } #endif // THUMB2INSTRUCTIONINFO_H |
