aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2008-08-04 23:54:43 +0000
committerOwen Anderson <resistor@mac.com>2008-08-04 23:54:43 +0000
commitbd3ba461eb5578a81ba09ff7bd7eb271d1130196 (patch)
treef97e9269835f2a482c4f28f14e48de796079d007 /include
parentb42a6261225e5a1b9a75b9aa11732944046d7999 (diff)
downloadexternal_llvm-bd3ba461eb5578a81ba09ff7bd7eb271d1130196.tar.gz
external_llvm-bd3ba461eb5578a81ba09ff7bd7eb271d1130196.tar.bz2
external_llvm-bd3ba461eb5578a81ba09ff7bd7eb271d1130196.zip
- Fix SelectionDAG to generate correct CFGs.
- Add a basic machine-level dead block eliminator. These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54333 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/CodeGen/LiveVariables.h6
-rw-r--r--include/llvm/CodeGen/Passes.h4
-rw-r--r--include/llvm/Target/TargetOptions.h5
3 files changed, 11 insertions, 4 deletions
diff --git a/include/llvm/CodeGen/LiveVariables.h b/include/llvm/CodeGen/LiveVariables.h
index d02cfa645d..e2bed5c2ef 100644
--- a/include/llvm/CodeGen/LiveVariables.h
+++ b/include/llvm/CodeGen/LiveVariables.h
@@ -247,10 +247,8 @@ public:
assert(Removed && "Register is not defined by this instruction!");
return true;
}
-
- virtual void getAnalysisUsage(AnalysisUsage &AU) const {
- AU.setPreservesAll();
- }
+
+ void getAnalysisUsage(AnalysisUsage &AU) const;
virtual void releaseMemory() {
VirtRegInfo.clear();
diff --git a/include/llvm/CodeGen/Passes.h b/include/llvm/CodeGen/Passes.h
index dd677fa5b1..412e9e3ad8 100644
--- a/include/llvm/CodeGen/Passes.h
+++ b/include/llvm/CodeGen/Passes.h
@@ -71,6 +71,10 @@ namespace llvm {
/// register allocators.
extern const PassInfo *const TwoAddressInstructionPassID;
+ /// UnreachableMachineBlockElimination pass - This pass removes unreachable
+ /// machine basic blocks.
+ extern const PassInfo *const UnreachableMachineBlockElimID;
+
/// Creates a register allocator as the user specified on the command line.
///
FunctionPass *createRegisterAllocator();
diff --git a/include/llvm/Target/TargetOptions.h b/include/llvm/Target/TargetOptions.h
index fa739507db..6c3d88a43c 100644
--- a/include/llvm/Target/TargetOptions.h
+++ b/include/llvm/Target/TargetOptions.h
@@ -101,6 +101,11 @@ namespace llvm {
/// DisableJumpTables - This flag indicates jump tables should not be
/// generated.
extern bool DisableJumpTables;
+
+ /// DisableCorrectBranchFolding - This flag indicates whether the instruction
+ /// selector should take care to update the CFG properly when
+ /// folding branches.
+ extern bool DisableCorrectBranchFolding;
} // End llvm namespace
#endif