31                                        Header->getParent(), Exit);
 
   33                                         Header->getParent(), Exit);
 
   39      PHINode::Create(I32Ty, 2, Name + 
".iv", Header->getTerminator()->getIterator());
 
   40  IV->addIncoming(ConstantInt::get(I32Ty, 0), Preheader);
 
   42  B.SetInsertPoint(Latch);
 
   43  Value *Inc = 
B.CreateAdd(
IV, Step, Name + 
".step");
 
   44  Value *
Cond = 
B.CreateICmpNE(Inc, Bound, Name + 
".cond");
 
   46  IV->addIncoming(Inc, Latch);
 
   60  L->addBasicBlockToLoop(Header, LI);
 
   61  L->addBasicBlockToLoop(Body, LI);
 
   62  L->addBasicBlockToLoop(Latch, LI);
 
   79    ParentL->addChildLoop(ColumnLoopInfo);
 
   85                 "cols", 
B, DTU, ColumnLoopInfo, LI);
 
   89                 B.getInt64(
TileSize), 
"rows", 
B, DTU, RowLoopInfo, LI);
 
   94                 B.getInt64(
TileSize), 
"inner", 
B, DTU, KLoopInfo, LI);
 
 
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
const SmallVectorImpl< MachineOperand > & Cond
static const uint32_t IV[8]
LLVM Basic Block Representation.
const Function * getParent() const
Return the enclosing method, or null if none.
static BasicBlock * Create(LLVMContext &Context, const Twine &Name="", Function *Parent=nullptr, BasicBlock *InsertBefore=nullptr)
Creates a new BasicBlock.
LLVM_ABI const BasicBlock * getSinglePredecessor() const
Return the predecessor of this block if it has a single predecessor block.
LLVM_ABI const BasicBlock * getSingleSuccessor() const
Return the successor of this block if it has a single successor.
LLVM_ABI LLVMContext & getContext() const
Get the context in which this basic block lives.
const Instruction * getTerminator() const LLVM_READONLY
Returns the terminator instruction if the block is well formed or null if the block is not well forme...
static BranchInst * Create(BasicBlock *IfTrue, InsertPosition InsertBefore=nullptr)
BasicBlock * getSuccessor(unsigned i) const
void setSuccessor(unsigned idx, BasicBlock *NewSucc)
static constexpr UpdateKind Delete
static constexpr UpdateKind Insert
void applyUpdatesPermissive(ArrayRef< UpdateT > Updates)
Submit updates to all available trees.
Common base class shared among various IRBuilders.
void addChildLoop(LoopT *NewChild)
Add the specified loop to be a child of this loop.
void addTopLevelLoop(LoopT *New)
This adds the specified loop to the collection of top-level loops.
LoopT * AllocateLoop(ArgsTy &&...Args)
LoopT * getLoopFor(const BlockT *BB) const
Return the inner most loop that BB lives in.
Represents a single loop in the control flow graph.
static PHINode * Create(Type *Ty, unsigned NumReservedValues, const Twine &NameStr="", InsertPosition InsertBefore=nullptr)
Constructors - NumReservedValues is a hint for the number of incoming edges that this phi node will h...
StringRef - Represent a constant reference to a string, i.e.
static LLVM_ABI IntegerType * getInt64Ty(LLVMContext &C)
LLVM Value Representation.
@ BasicBlock
Various leaf nodes.
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr Value
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.
unsigned NumInner
Number of columns of the first matrix of a multiply / number of rows of the second matrix of a multip...
MatrixLoop ColumnLoop
The loop iterating on the columns.
MatrixLoop RowLoop
The loop iterating on the rows.
unsigned NumRows
Number of rows of the matrix.
BasicBlock * CreateTiledLoops(BasicBlock *Start, BasicBlock *End, IRBuilderBase &B, DomTreeUpdater &DTU, LoopInfo &LI)
Creates an IR loop nests for tiling of the form below.
unsigned NumColumns
Number of columns of the matrix.
unsigned TileSize
Number of rows/columns in a tile.
MatrixLoop KLoop
The loop iterating on k (inner dimension).