13#ifndef MLIR_DIALECT_OPENACC_OPENACCUTILSLOOP_H_
14#define MLIR_DIALECT_OPENACC_OPENACCUTILSLOOP_H_
32 IRMapping &mapping,
ValueRange resultsToReplace);
48 Location loc, RewriterBase &rewriter);
68 RewriterBase &rewriter);
77 RewriterBase &rewriter);
83 Value step,
bool inclusiveUpperbound);
OpListType::iterator iterator
uint64_t getCollapseCount(Operation *op)
Number of original loops collapsed into op, or 1 when op carries no collapse_count attribute.
void setCollapseCountAttr(Operation *op, uint64_t count)
Record on a collapsed loop how many original loops were folded into it.
Value calculateTripCount(OpBuilder &b, Location loc, Value lb, Value ub, Value step, bool inclusiveUpperbound)
Calculate trip count for a loop: (ub - lb + step) / step.
scf::ParallelOp convertACCLoopToSCFParallel(LoopOp loopOp, RewriterBase &rewriter)
Convert acc.loop to scf.parallel.
scf::ExecuteRegionOp wrapMultiBlockRegionWithSCFExecuteRegion(Region ®ion, IRMapping &mapping, Location loc, RewriterBase &rewriter)
Wrap a multi-block region in an scf.execute_region.
scf::ExecuteRegionOp convertUnstructuredACCLoopToSCFExecuteRegion(LoopOp loopOp, RewriterBase &rewriter)
Convert an unstructured acc.loop to scf.execute_region.
std::pair< llvm::SmallVector< Value >, Block::iterator > cloneACCRegionInto(Region *src, Block *dest, Block::iterator inlinePoint, IRMapping &mapping, ValueRange resultsToReplace)
Clone an ACC region into a destination block at the given insertion point.
void normalizeIVUses(OpBuilder &b, Location loc, Value iv, Value origLB, Value origStep)
Normalize IV uses after converting to normalized loop form (lb=0, step=1).
scf::ForOp convertACCLoopToSCFFor(LoopOp loopOp, RewriterBase &rewriter, bool enableCollapse)
Convert a structured acc.loop to scf.for.
Include the generated interface declarations.