LLVM  14.0.0git
MachineModuleSlotTracker.h
Go to the documentation of this file.
1 //===-- llvm/CodeGen/MachineModuleInfo.h ------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_CODEGEN_MACHINEMODULESLOTTRACKER_H
10 #define LLVM_CODEGEN_MACHINEMODULESLOTTRACKER_H
11 
13 
14 namespace llvm {
15 
16 class AbstractSlotTrackerStorage;
17 class Function;
18 class MachineModuleInfo;
19 class MachineFunction;
20 class Module;
21 
23  const Function &TheFunction;
24  const MachineModuleInfo &TheMMI;
25  unsigned MDNStartSlot, MDNEndSlot;
26 
27  void processMachineFunctionMetadata(AbstractSlotTrackerStorage *AST,
28  const MachineFunction &MF);
29  void processMachineModule(AbstractSlotTrackerStorage *AST, const Module *M,
30  bool ShouldInitializeAllMetadata);
31  void processMachineFunction(AbstractSlotTrackerStorage *AST,
32  const Function *F,
33  bool ShouldInitializeAllMetadata);
34 
35 public:
37  bool ShouldInitializeAllMetadata = true);
39 
41 };
42 
43 } // namespace llvm
44 
45 #endif // LLVM_CODEGEN_MACHINEMODULESLOTTRACKER_H
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AllocatorList.h:23
M
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
Definition: README.txt:252
llvm::Function
Definition: Function.h:62
llvm::ModuleSlotTracker
Manage lifetime of a slot tracker for printing IR.
Definition: ModuleSlotTracker.h:44
F
#define F(x, y, z)
Definition: MD5.cpp:56
llvm::MachineModuleInfo
This class contains meta information specific to a module.
Definition: MachineModuleInfo.h:78
llvm::MachineModuleSlotTracker
Definition: MachineModuleSlotTracker.h:22
llvm::MachineModuleSlotTracker::~MachineModuleSlotTracker
~MachineModuleSlotTracker()
llvm::Module
A Module instance is used to store all the information related to an LLVM module.
Definition: Module.h:67
llvm::MachineModuleSlotTracker::MachineModuleSlotTracker
MachineModuleSlotTracker(const MachineFunction *MF, bool ShouldInitializeAllMetadata=true)
Definition: MachineModuleSlotTracker.cpp:65
llvm::MachineFunction
Definition: MachineFunction.h:234
Module
Machine Check Debug Module
Definition: MachineCheckDebugify.cpp:122
llvm::ModuleSlotTracker::MachineMDNodeListType
std::vector< std::pair< unsigned, const MDNode * > > MachineMDNodeListType
Definition: ModuleSlotTracker.h:102
llvm::AbstractSlotTrackerStorage
Abstract interface of slot tracker storage.
Definition: ModuleSlotTracker.h:26
ModuleSlotTracker.h
llvm::MachineModuleSlotTracker::collectMachineMDNodes
void collectMachineMDNodes(MachineMDNodeListType &L) const
Definition: MachineModuleSlotTracker.cpp:60
llvm::codeview::PublicSymFlags::Function
@ Function