From: Evan Cheng Date: Mon, 21 May 2007 18:44:17 +0000 (+0000) Subject: BlockHasNoFallThrough() now returns true if block ends with a return instruction. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=126f17a17625876adb63f06d043fc1b1e4f0361c;p=oota-llvm.git BlockHasNoFallThrough() now returns true if block ends with a return instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37266 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Alpha/AlphaInstrInfo.cpp b/lib/Target/Alpha/AlphaInstrInfo.cpp index 2a72d180193..299a6071488 100644 --- a/lib/Target/Alpha/AlphaInstrInfo.cpp +++ b/lib/Target/Alpha/AlphaInstrInfo.cpp @@ -239,6 +239,8 @@ bool AlphaInstrInfo::BlockHasNoFallThrough(MachineBasicBlock &MBB) const { if (MBB.empty()) return false; switch (MBB.back().getOpcode()) { + case Alpha::RETDAG: // Return. + case Alpha::RETDAGp: case Alpha::BR: // Uncond branch. case Alpha::JMP: // Indirect branch. return true; diff --git a/lib/Target/PowerPC/PPCInstrInfo.cpp b/lib/Target/PowerPC/PPCInstrInfo.cpp index e861b2e9ab9..7659a570800 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.cpp +++ b/lib/Target/PowerPC/PPCInstrInfo.cpp @@ -276,6 +276,7 @@ bool PPCInstrInfo::BlockHasNoFallThrough(MachineBasicBlock &MBB) const { if (MBB.empty()) return false; switch (MBB.back().getOpcode()) { + case PPC::BLR: // Return. case PPC::B: // Uncond branch. case PPC::BCTR: // Indirect branch. return true; diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 6018337b9d9..291c3dce085 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -486,6 +486,11 @@ bool X86InstrInfo::BlockHasNoFallThrough(MachineBasicBlock &MBB) const { if (MBB.empty()) return false; switch (MBB.back().getOpcode()) { + case X86::RET: // Return. + case X86::RETI: + case X86::TAILJMPd: + case X86::TAILJMPr: + case X86::TAILJMPm: case X86::JMP: // Uncond branch. case X86::JMP32r: // Indirect branch. case X86::JMP32m: // Indirect branch through mem.