13 #ifndef LLVM_CODEGEN_GLOBALISEL_CSEINFO_H 14 #define LLVM_CODEGEN_GLOBALISEL_CSEINFO_H 48 virtual bool shouldCSEOpc(
unsigned Opc);
56 virtual bool shouldCSEOpc(
unsigned Opc)
override;
77 std::unique_ptr<CSEConfig> CSEOpt;
134 void handleRecordedInsts();
140 void releaseMemory();
142 void setCSEConfig(std::unique_ptr<CSEConfig> Opt) { CSEOpt = std::move(Opt); }
144 bool shouldCSE(
unsigned Opc)
const;
148 void countOpcodeHit(
unsigned Opc);
169 : ID(ID), MRI(MRI) {}
199 bool AlreadyComputed =
false;
206 GISelCSEInfo &
get(std::unique_ptr<CSEConfig> CSEOpt,
bool ReCompute =
false);
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
void setComputed(bool Computed)
This class represents lattice values for constants.
void initializeGISelCSEAnalysisWrapperPassPass(PassRegistry &)
The actual analysis pass wrapper.
This file defines the MallocAllocator and BumpPtrAllocator interfaces.
amdgpu aa AMDGPU Address space based Alias Analysis Wrapper
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
void Profile(FoldingSetNodeID &ID)
-----— UniqueMachineInstr ----------—//
void setMF(MachineFunction &MFunc)
const GISelCSEAnalysisWrapper & getCSEWrapper() const
friend class GISelCSEInfo
Analysis containing CSE Info
Flag
These should be considered private to the implementation of the MCInstrDesc class.
FoldingSetNodeID - This class is used to gather all the unique data bits of a node.
Abstract class that contains various methods for clients to notify about changes. ...
unsigned const MachineRegisterInfo * MRI
Allocate memory in an ever growing pool, as if by bump-pointer.
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
Represent the analysis usage information of a pass.
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
Simple wrapper that does the following.
FoldingSet - This template class is used to instantiate a specialized implementation of the folding s...
MachineOperand class - Representation of each machine instruction operand.
void setCSEConfig(std::unique_ptr< CSEConfig > Opt)
This class implements the register bank concept.
MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc.
Representation of each machine instruction.
Defines a builder that does CSE of MachineInstructions using GISelCSEInfo.
Node - This class is used to maintain the singly linked bucket list in a folding set.
GISelCSEAnalysisWrapper & getCSEWrapper()
A class that wraps MachineInstrs and derives from FoldingSetNode in order to be uniqued in a CSEMap...
GISelCSEAnalysisWrapperPass()
This header defines various interfaces for pass management in LLVM.
GISelInstProfileBuilder(FoldingSetNodeID &ID, const MachineRegisterInfo &MRI)