LLVM: lib/CodeGen/MachineFunctionAnalysis.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
19
20using namespace llvm;
21
23
25 std::unique_ptr MF)
27
30 FunctionAnalysisManager::Invalidator &) {
31
33 return !PAC.preservedWhenStateless();
34}
35
38 auto &Context = F.getContext();
41 .getCachedResult(*F.getParent())
42 ->getMMI();
43 auto MF = std::make_unique(
44 F, *TM, STI, MMI.getContext(), Context.generateMachineFunctionNum(F));
45 MF->initTargetMachineFunctionInfo(STI);
46
47
48 TM->registerMachineRegisterInfoCallback(*MF);
49
50 return Result(std::move(MF));
51}
52
FunctionAnalysisManager FAM
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
Definition MachineFunctionAnalysis.cpp:53
Result(std::unique_ptr< MachineFunction > MF)
Definition MachineFunctionAnalysis.cpp:24
LLVM_ABI bool invalidate(Function &, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &)
Definition MachineFunctionAnalysis.cpp:28
This analysis create MachineFunction for given Function.
MachineFunctionAnalysis(const TargetMachine &TM)
LLVM_ABI Result run(Function &F, FunctionAnalysisManager &FAM)
Definition MachineFunctionAnalysis.cpp:37
A set of analyses that are preserved following a run of a transformation pass.
static PreservedAnalyses all()
Construct a special preserved set that preserves all passes.
PreservedAnalysisChecker getChecker() const
Build a checker for this PreservedAnalyses and the specified analysis type.
TargetSubtargetInfo - Generic base class for all target subtargets.
This is an optimization pass for GlobalISel generic memory operations.
OuterAnalysisManagerProxy< ModuleAnalysisManager, Function > ModuleAnalysisManagerFunctionProxy
Provide the ModuleAnalysisManager to Function proxy.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
Implement std::hash so that hash_code can be used in STL containers.
A special type used by analysis passes to provide an address that identifies that particular analysis...