aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/MachineJumpTableInfo.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineJumpTableInfo.h b/include/llvm/CodeGen/MachineJumpTableInfo.h
index c0f4af34c2..7f6c965d7c 100644
--- a/include/llvm/CodeGen/MachineJumpTableInfo.h
+++ b/include/llvm/CodeGen/MachineJumpTableInfo.h
@@ -26,6 +26,7 @@
namespace llvm {
class MachineBasicBlock;
+class TargetData;
/// MachineJumpTableEntry - One jump table in the jump table info.
///
@@ -54,6 +55,17 @@ public:
return JumpTables;
}
+ /// ReplaceMBBInJumpTables - If Old is the target of any jump tables, update
+ /// the jump tables to branch to New instead.
+ void ReplaceMBBInJumpTables(MachineBasicBlock *Old, MachineBasicBlock *New) {
+ for (unsigned i = 0, e = JumpTables.size(); i != e; ++i) {
+ MachineJumpTableEntry &JTE = JumpTables[i];
+ for (unsigned j = 0, e = JTE.MBBs.size(); j != e; ++j)
+ if (JTE.MBBs[j] == Old)
+ JTE.MBBs[j] = New;
+ }
+ }
+
/// getEntrySize - returns the size of an individual field in a jump table
unsigned getEntrySize() const;