MachineFunctionAnalysis.cpp revision f5e16139f28d650536024280a16dcf73513baf46
1//===-- MachineFunctionAnalysis.cpp ---------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file contains the definitions of the MachineFunctionAnalysis members. 11// 12//===----------------------------------------------------------------------===// 13 14#include "llvm/CodeGen/MachineFunctionAnalysis.h" 15#include "llvm/CodeGen/MachineFunction.h" 16using namespace llvm; 17 18// Register this pass with PassInfo directly to avoid having to define 19// a default constructor. 20static PassInfo 21X("Machine Function Analysis", "machine-function-analysis", 22 intptr_t(&MachineFunctionAnalysis::ID), 0, 23 /*CFGOnly=*/false, /*is_analysis=*/true); 24 25char MachineFunctionAnalysis::ID = 0; 26 27MachineFunctionAnalysis::MachineFunctionAnalysis(TargetMachine &tm, 28 CodeGenOpt::Level OL) : 29 FunctionPass(&ID), TM(tm), OptLevel(OL), MF(0) { 30} 31 32MachineFunctionAnalysis::~MachineFunctionAnalysis() { 33 releaseMemory(); 34 assert(!MF && "MachineFunctionAnalysis left initialized!"); 35} 36 37bool MachineFunctionAnalysis::runOnFunction(Function &F) { 38 assert(!MF && "MachineFunctionAnalysis already initialized!"); 39 MF = new MachineFunction(&F, TM); 40 return false; 41} 42 43void MachineFunctionAnalysis::releaseMemory() { 44 delete MF; 45 MF = 0; 46} 47 48void MachineFunctionAnalysis::getAnalysisUsage(AnalysisUsage &AU) const { 49 AU.setPreservesAll(); 50} 51