mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
ad2afc2a42
shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77691 91177308-0d34-0410-b5e6-96231b3b80d8
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
//===-- MachineFunctionAnalysis.cpp ---------------------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains the definitions of the MachineFunctionAnalysis members.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/CodeGen/MachineFunctionAnalysis.h"
|
|
#include "llvm/CodeGen/MachineFunction.h"
|
|
using namespace llvm;
|
|
|
|
// Register this pass with PassInfo directly to avoid having to define
|
|
// a default constructor.
|
|
static PassInfo
|
|
X("Machine Function Analysis", "machine-function-analysis",
|
|
intptr_t(&MachineFunctionAnalysis::ID), 0,
|
|
/*CFGOnly=*/false, /*is_analysis=*/true);
|
|
|
|
char MachineFunctionAnalysis::ID = 0;
|
|
|
|
MachineFunctionAnalysis::MachineFunctionAnalysis(TargetMachine &tm,
|
|
CodeGenOpt::Level OL) :
|
|
FunctionPass(&ID), TM(tm), OptLevel(OL), MF(0) {
|
|
}
|
|
|
|
bool MachineFunctionAnalysis::runOnFunction(Function &F) {
|
|
assert(!MF && "MachineFunctionAnalysis already initialized!");
|
|
MF = new MachineFunction(&F, TM);
|
|
return false;
|
|
}
|
|
|
|
void MachineFunctionAnalysis::releaseMemory() {
|
|
delete MF;
|
|
MF = 0;
|
|
}
|
|
|
|
void MachineFunctionAnalysis::getAnalysisUsage(AnalysisUsage &AU) const {
|
|
AU.setPreservesAll();
|
|
}
|