From 09984279fd1f962e8f81a1b6e714962e1e9e224b Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 8 Oct 2009 17:00:02 +0000 Subject: Add a form of addPreserved which takes a string argument, to allow passes to declare that they preserve other passes without needing to pull in additional header file or library dependencies. Convert MachineFunctionPass and CodeGenLICM to make use of this. llvm-svn: 83555 --- llvm/lib/CodeGen/MachineFunctionPass.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'llvm/lib/CodeGen/MachineFunctionPass.cpp') diff --git a/llvm/lib/CodeGen/MachineFunctionPass.cpp b/llvm/lib/CodeGen/MachineFunctionPass.cpp index fd8a210c4f9..2f8d4c9e7aa 100644 --- a/llvm/lib/CodeGen/MachineFunctionPass.cpp +++ b/llvm/lib/CodeGen/MachineFunctionPass.cpp @@ -11,11 +11,8 @@ // //===----------------------------------------------------------------------===// +#include "llvm/Function.h" #include "llvm/Analysis/AliasAnalysis.h" -#include "llvm/Analysis/ScalarEvolution.h" -#include "llvm/Analysis/IVUsers.h" -#include "llvm/Analysis/LiveValues.h" -#include "llvm/Analysis/MemoryDependenceAnalysis.h" #include "llvm/CodeGen/MachineFunctionAnalysis.h" #include "llvm/CodeGen/MachineFunctionPass.h" using namespace llvm; @@ -36,15 +33,18 @@ void MachineFunctionPass::getAnalysisUsage(AnalysisUsage &AU) const { // MachineFunctionPass preserves all LLVM IR passes, but there's no // high-level way to express this. Instead, just list a bunch of - // passes explicitly. + // passes explicitly. This does not include setPreservesCFG, + // because CodeGen overloads that to mean preserving the MachineBasicBlock + // CFG in addition to the LLVM IR CFG. AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); + AU.addPreserved("scalar-evolution"); + AU.addPreserved("iv-users"); + AU.addPreserved("memdep"); + AU.addPreserved("live-values"); + AU.addPreserved("domtree"); + AU.addPreserved("domfrontier"); + AU.addPreserved("loops"); + AU.addPreserved("lda"); FunctionPass::getAnalysisUsage(AU); } -- cgit v1.2.3