diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-05-21 18:44:17 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-05-21 18:44:17 +0000 |
commit | 126f17a17625876adb63f06d043fc1b1e4f0361c (patch) | |
tree | 964cd7516b79ac674519b306e34b4cee0cb182ae /lib/Target | |
parent | eaeeb6fbda5a1c34b0c71251d2a5bf7b4d0da538 (diff) | |
download | external_llvm-126f17a17625876adb63f06d043fc1b1e4f0361c.zip external_llvm-126f17a17625876adb63f06d043fc1b1e4f0361c.tar.gz external_llvm-126f17a17625876adb63f06d043fc1b1e4f0361c.tar.bz2 |
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
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/Alpha/AlphaInstrInfo.cpp | 2 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCInstrInfo.cpp | 1 | ||||
-rw-r--r-- | lib/Target/X86/X86InstrInfo.cpp | 5 |
3 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/Alpha/AlphaInstrInfo.cpp b/lib/Target/Alpha/AlphaInstrInfo.cpp index 2a72d18..299a607 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 e861b2e..7659a57 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 6018337..291c3dc 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. |