30 if (
instr.isTerminator())
40 if (
instr.isTerminator())
60 if (
const auto *instruction = dyn_cast<Instruction>(
value))
67 if (
auto *Phi = dyn_cast<PHINode>(&Instr))
68 return Phi->hasConstantOrUndefValue();
73 if (
auto *CB = dyn_cast<CallBase>(&
I))
74 return CB->getIntrinsicID();
83 return print(cast<Value>(Inst));
94 MST.incorporateFunction(*BB->
getParent());
95 Out << MST.getLocalSlot(BB);
static const Function * getParent(const Value *V)
Given that RA is a live value
This file declares a specialization of the GenericSSAContext<X> class template for LLVM IR.
unify loop Fixup each natural loop to have a single exit block
LLVM Basic Block Representation.
const Function * getParent() const
Return the enclosing method, or null if none.
static void appendBlockDefs(SmallVectorImpl< ValueRefT > &defs, BlockT &block)
static bool isConstantOrUndefValuePhi(const InstructionT &Instr)
static void appendBlockTerms(SmallVectorImpl< InstructionT * > &terms, BlockT &block)
static Intrinsic::ID getIntrinsicID(const InstructionT &I)
Printable print(const BlockT *block) const
const BlockT * getDefBlock(ConstValueRefT value) const
Printable printAsOperand(const BlockT *BB) const
Manage lifetime of a slot tracker for printing IR.
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...
void push_back(const T &Elt)
LLVM Value Representation.
void printAsOperand(raw_ostream &O, bool PrintType=true, const Module *M=nullptr) const
Print the name of this Value out to the specified raw_ostream.
StringRef getName() const
Return a constant reference to the value's name.
This class implements an extremely fast bulk output stream that can only output to a stream.
MCInst const & instruction(MCInst const &MCB, size_t Index)
NodeAddr< PhiNode * > Phi
This is an optimization pass for GlobalISel generic memory operations.