From: Chris Lattner Date: Tue, 24 Oct 2006 16:44:55 +0000 (+0000) Subject: implement uncond branch insertion for the branch folding pass X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=11533e2236b9d03bcccdc1d46f8648de4521dadb;p=oota-llvm.git implement uncond branch insertion for the branch folding pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31159 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/IA64/IA64InstrInfo.cpp b/lib/Target/IA64/IA64InstrInfo.cpp index 81b3277ed61..a4cdbce6bf1 100644 --- a/lib/Target/IA64/IA64InstrInfo.cpp +++ b/lib/Target/IA64/IA64InstrInfo.cpp @@ -46,3 +46,10 @@ bool IA64InstrInfo::isMoveInstr(const MachineInstr& MI, // move instruction } +void IA64InstrInfo::InsertBranch(MachineBasicBlock &MBB,MachineBasicBlock *TBB, + MachineBasicBlock *FBB, + const std::vector &Cond)const { + // Can only insert uncond branches so far. + assert(Cond.empty() && !FBB && TBB && "Can only handle uncond branches!"); + BuildMI(&MBB, IA64::BRL_NOTCALL, 1).addMBB(TBB); +} \ No newline at end of file diff --git a/lib/Target/IA64/IA64InstrInfo.h b/lib/Target/IA64/IA64InstrInfo.h index 2e52a9683f9..ceb5c297377 100644 --- a/lib/Target/IA64/IA64InstrInfo.h +++ b/lib/Target/IA64/IA64InstrInfo.h @@ -19,11 +19,7 @@ namespace llvm { -/// IA64II - This namespace holds all of the target specific flags that -/// instruction info tracks. -/// FIXME: now gone! - - class IA64InstrInfo : public TargetInstrInfo { +class IA64InstrInfo : public TargetInstrInfo { const IA64RegisterInfo RI; public: IA64InstrInfo(); @@ -41,6 +37,9 @@ public: virtual bool isMoveInstr(const MachineInstr& MI, unsigned& sourceReg, unsigned& destReg) const; + virtual void InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, + MachineBasicBlock *FBB, + const std::vector &Cond) const; };