20 #define DEBUG_TYPE "funclet-layout" 41 "Contiguously Lay Out Funclets",
false,
false)
49 if (FuncletMembership.
empty())
53 auto FuncletX = FuncletMembership.
find(&X);
54 auto FuncletY = FuncletMembership.
find(&Y);
55 assert(FuncletX != FuncletMembership.
end());
56 assert(FuncletY != FuncletMembership.
end());
57 return FuncletX->second < FuncletY->second;
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang", "erlang-compatible garbage collector")
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
This class represents lattice values for constants.
char & FuncletLayoutID
This pass lays out funclets contiguously.
INITIALIZE_PASS(FuncletLayout, DEBUG_TYPE, "Contiguously Lay Out Funclets", false, false) bool FuncletLayout
static GCMetadataPrinterRegistry::Add< OcamlGCMetadataPrinter > Y("ocaml", "ocaml 3.10-compatible collector")
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
void initializeFuncletLayoutPass(PassRegistry &)
iterator find(const_arg_type_t< KeyT > Val)
DenseMap< const MachineBasicBlock *, int > getEHScopeMembership(const MachineFunction &MF)
MachineFunctionProperties & set(Property P)
LLVM_NODISCARD bool empty() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Properties which a MachineFunction may have at a given point in time.