30    ConstInst->
insertBefore(*InsertPt->getParent(), InsertPt);
 
 
   54                                           bool RemoveDeadConstants,
 
   60           "should not be expanding trivial constant users");
 
   66      for (
User *U : 
C->users())
 
   74  while (!Stack.empty()) {
 
   79    for (
auto *Nested : 
C->users())
 
   87    for (
User *U : 
C->users())
 
   89        if (!RestrictToFunc || 
I->getFunction() == RestrictToFunc)
 
   97    for (
Use &U : 
I->operands()) {
 
  102        assert(BI != BB->
end() && 
"Unexpected empty basic block");
 
  109          for (
auto *NI : NewInsts)
 
  110            NI->setDebugLoc(
Loc);
 
  112          U.set(NewInsts.back());
 
  118  if (RemoveDeadConstants)
 
  120      C->removeDeadConstantUsers();
 
 
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
 
This file contains the declarations for the subclasses of Constant, which represent the different fla...
 
This file implements a set that has insertion order iteration characteristics.
 
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
 
LLVM Basic Block Representation.
 
LLVM_ABI const_iterator getFirstInsertionPt() const
Returns an iterator to the first instruction in this block that is suitable for inserting a non-PHI i...
 
InstListType::iterator iterator
Instruction iterators...
 
This is an important base class in LLVM.
 
static InsertElementInst * Create(Value *Vec, Value *NewElt, Value *Idx, const Twine &NameStr="", InsertPosition InsertBefore=nullptr)
 
static InsertValueInst * Create(Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const Twine &NameStr="", InsertPosition InsertBefore=nullptr)
 
InstructionWorklist - This is the worklist management logic for InstCombine and other simplification ...
 
LLVM_ABI void insertBefore(InstListType::iterator InsertPos)
Insert an unlinked instruction into a basic block immediately before the specified position.
 
static LLVM_ABI PoisonValue * get(Type *T)
Static factory methods - Return an 'poison' object of the specified type.
 
A vector that has set insertion semantics.
 
bool insert(const value_type &X)
Insert a new element into the SetVector.
 
bool contains(const key_type &key) const
Check if the SetVector contains the given key.
 
void push_back(const T &Elt)
 
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
 
The instances of the Type class are immutable: once they are created, they are never changed.
 
static LLVM_ABI IntegerType * getInt32Ty(LLVMContext &C)
 
A Use represents the edge between a Value definition and its users.
 
LLVM Value Representation.
 
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
 
@ C
The default llvm calling convention, compatible with C.
 
This is an optimization pass for GlobalISel generic memory operations.
 
static SmallVector< Instruction *, 4 > expandUser(BasicBlock::iterator InsertPt, Constant *C)
 
auto enumerate(FirstRange &&First, RestRanges &&...Rest)
Given two or more input ranges, returns a new range whose values are tuples (A, B,...
 
decltype(auto) dyn_cast(const From &Val)
dyn_cast<X> - Return the argument parameter cast to the specified type.
 
static bool isExpandableUser(User *U)
 
LLVM_ABI bool convertUsersOfConstantsToInstructions(ArrayRef< Constant * > Consts, Function *RestrictToFunc=nullptr, bool RemoveDeadConstants=true, bool IncludeSelf=false)
Replace constant expressions users of the given constants with instructions.
 
bool isa(const From &Val)
isa<X> - Return true if the parameter to the template is an instance of one of the template type argu...
 
DWARFExpression::Operation Op
 
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.