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...