25 std::unique_ptr<MachineFunction> MF)
30 FunctionAnalysisManager::Invalidator &) {
33 return !PAC.preservedWhenStateless();
38 auto &Context =
F.getContext();
41 .getCachedResult<MachineModuleAnalysis>(*
F.getParent())
43 auto MF = std::make_unique<MachineFunction>(
44 F, *TM, STI, MMI.getContext(), Context.generateMachineFunctionNum(
F));
45 MF->initTargetMachineFunctionInfo(STI);
48 TM->registerMachineRegisterInfoCallback(*MF);
50 return Result(std::move(MF));
FunctionAnalysisManager FAM
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
Result(std::unique_ptr< MachineFunction > MF)
LLVM_ABI bool invalidate(Function &, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &)
This analysis create MachineFunction for given Function.
LLVM_ABI Result run(Function &F, FunctionAnalysisManager &FAM)
MachineFunctionAnalysis(const TargetMachine *TM)
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...