17#ifndef LLVM_ADT_GENERICSSACONTEXT_H
18#define LLVM_ADT_GENERICSSACONTEXT_H
43 const typename SSATraits::FunctionT *F;
64 using UseT =
typename SSATraits::UseT;
70 using BlockT =
typename SSATraits::BlockT;
unify loop Fixup each natural loop to have a single exit block
Core dominator tree base class.
typename SSATraits::InstructionT InstructionT
static void appendBlockTerms(SmallVectorImpl< const InstructionT * > &terms, const BlockT &block)
static void appendBlockDefs(SmallVectorImpl< ValueRefT > &defs, BlockT &block)
typename SSATraits::FunctionT FunctionT
const FunctionT * getFunction() const
static bool isConstantOrUndefValuePhi(const InstructionT &Instr)
static void appendBlockTerms(SmallVectorImpl< InstructionT * > &terms, BlockT &block)
static constexpr ValueRefT * ValueRefNull
GenericSSAContext()=default
static Intrinsic::ID getIntrinsicID(const InstructionT &I)
Printable print(const BlockT *block) const
typename SSATraits::ConstValueRefT ConstValueRefT
static void appendBlockDefs(SmallVectorImpl< ConstValueRefT > &defs, const BlockT &block)
Printable print(ConstValueRefT value) const
typename SSATraits::BlockT BlockT
const BlockT * getDefBlock(ConstValueRefT value) const
typename SSATraits::UseT UseT
DominatorTreeBase< BlockT, false > DominatorTreeT
Printable print(const InstructionT *inst) const
typename SSATraits::ValueRefT ValueRefT
Printable printAsOperand(const BlockT *BB) const
GenericSSAContext(const FunctionT *F)
Simple wrapper around std::function<void(raw_ostream&)>.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This namespace contains an enum with a value for every intrinsic/builtin function known by LLVM.
This is an optimization pass for GlobalISel generic memory operations.