- 58aa383 Support fusing producer loop nests which write to a memref which is live out, provided that the write region of the consumer loop nest to the same memref is a super set of the producer's write region. by MLIR Team · 6 years ago
- 8f5f2c7 LoopFusion: perform a series of loop interchanges to increase the loop depth at which slices of producer loop nests can be fused into constumer loop nests. by MLIR Team · 6 years ago
- 4ba8c91 Automated rollback of changelist 232717775. by Uday Bondhugula · 6 years ago
- 90d10b4 NFC: Rename the 'for' operation in the AffineOps dialect to 'affine.for'. The is the second step to adding a namespace to the AffineOps dialect. by River Riddle · 6 years ago
- b9dde91 Adds the ability to compute the MemRefRegion of a sliced loop nest. Utilizes this feature during loop fusion cost computation, to compute what the write region of a fusion candidate loop nest slice would be (without having to materialize the slice or change the IR). by MLIR Team · 6 years ago
- 10237de Refactor the affine analysis by moving some functionality to IR and some to AffineOps. This is important for allowing the affine dialect to define canonicalizations directly on the operations instead of relying on transformation passes, e.g. ComposeAffineMaps. A summary of the refactoring: by River Riddle · 6 years ago
- a78edcd Loop fusion improvements: by MLIR Team · 6 years ago
- bf9c381 Remove InstWalker and move all instruction walking to the api facilities on Function/Block/Instruction. by River Riddle · 6 years ago
- 0f50414 Refactor common code getting memref access in getMemRefRegion - NFC by Uday Bondhugula · 6 years ago
- b499277 Remove remaining usages of OperationInst in lib/Transforms. by River Riddle · 6 years ago
- a3d9ccae Replace the walkOps/visitOperationInst variants from the InstWalkers with the Instruction variants. by River Riddle · 6 years ago
- b26900d Update dma-generate pass to (1) work on blocks of instructions (instead of just by Uday Bondhugula · 6 years ago
- 8be2627 Promote local buffers created post fusion to higher memory space by Uday Bondhugula · 6 years ago
- 5052bd8 Define the AffineForOp and replace ForInst with it. This patch is largely mechanical, i.e. changing usages of ForInst to OpPointer<AffineForOp>. An important difference is that upon construction an AffineForOp no longer automatically creates the body and induction variable. To generate the body/iv, 'createBody' can be called on an AffineForOp with no body. by River Riddle · 6 years ago
- 1e85191 Fix ASAN issue: snapshot edge list before loop which can modify this list. by MLIR Team · 6 years ago
- d7c8244 LoopFusion: insert the source loop nest slice at a depth in the destination loop nest which preserves dependences (above any loop carried or other dependences). This is accomplished by updating the maximum destination loop depth based on dependence checks between source loop nest loads and stores which access the memref on which the source loop nest has a store op. In addition, prevent fusing in source loop nests which write to memrefs which escape or are live out. by MLIR Team · 6 years ago
- a0f3db40 Support fusing loop nests which require insertion into a new instruction Block position while preserving dependences, opening up additional fusion opportunities. by MLIR Team · 6 years ago
- 7555383 Recommit: Define a AffineOps dialect as well as an AffineIfOp operation. Replace all instances of IfInst with AffineIfOp and delete IfInst. by River Riddle · 6 years ago
- ae772b7 Automated rollback of changelist 231318632. by Nicolas Vasilache · 6 years ago
- 5ecef2b Define a AffineOps dialect as well as an AffineIfOp operation. Replace all instances of IfInst with AffineIfOp and delete IfInst. by River Riddle · 6 years ago
- 0e7a8a9 Drop AffineMap::Null and IntegerSet::Null by Nicolas Vasilache · 6 years ago
- 75c21e1 Wrap cl::opt flags within passes in a category with the pass name. This improves the help output of tools like mlir-opt. by River Riddle · 6 years ago
- b4a1443 Update replaceAllMemRefUsesWith to generate single result affine_apply's for by Uday Bondhugula · 6 years ago
- 5c5739d Change the dependence check in the loop fusion pass to use the MLIR instruction list ordering (instead of the dependence graph node id ordering). This breaks the overloading of dependence graph node ids as both edge endpoints and instruction list position. by MLIR Team · 6 years ago
- 06d21d9 loop-fusion: debug info cleanup by Uday Bondhugula · 6 years ago
- 6859f33 Migrate VectorOrTensorType/MemRefType shape api to use int64_t instead of int. by River Riddle · 6 years ago
- b28009b Fix single producer check in loop fusion pass. by MLIR Team · 6 years ago
- 864d9e0 Update fusion cost model + some additional infrastructure and debug information for -loop-fusion by Uday Bondhugula · 6 years ago
- 94a03f8 Allocate private/local buffers for slices accurately during fusion by Uday Bondhugula · 6 years ago
- 71495d5 Handle escaping memrefs in loop fusion pass: by MLIR Team · 6 years ago
- 1e484b5 Mark (void)indexRemap to please compiler for unused variable check by Lei Zhang · 6 years ago
- c4237ae LoopFusion: Creates private MemRefs which are used only by operations in the fused loop. by MLIR Team · 6 years ago
- c1ca23e Some loop fusion code cleanup/simplification post cl/229575126 by Uday Bondhugula · 6 years ago
- 27d067e LoopFusion improvements: by MLIR Team · 6 years ago
- f99a44a Address documentation/readability related comments from cl/227252907 on memref by Uday Bondhugula · 6 years ago
- 03e15e1 Minor code cleanup - NFC. by Uday Bondhugula · 6 years ago
- 38c2fe3 LoopFusion: automate selection of source loop nest slice depth and destination loop nest insertion depth based on a simple cost model (cost model can be extended/replaced at a later time). by MLIR Team · 6 years ago
- 21baf86 Extend loop-fusion's slicing utility + other fixes / updates by Uday Bondhugula · 6 years ago
- 56b3640 Misc readability and doc / code comment related improvements - NFC by Uday Bondhugula · 6 years ago
- 7974889 Update and generalize various passes to work on both CFG and ML functions, by Chris Lattner · 6 years ago
- b9fe6be Introduce memref store to load forwarding - a simple memref dataflow analysis by Uday Bondhugula · 6 years ago
- dffc589 Extend InstVisitor and Walker to handle arbitrary CFG functions, expand the by Chris Lattner · 6 years ago
- 456ad6a Standardize naming of statements -> instructions, revisting the code base to be by Chris Lattner · 6 years ago
- 315a466 Rename BasicBlock and StmtBlock to Block, and make a pass cleaning it up. I did not make an effort to rename all of the 'bb' names in the codebase, since they are still correct and any specific missed once can be fixed up on demand. by Chris Lattner · 6 years ago
- 69d9e99 Eliminate the using decls for MLFunction and CFGFunction standardizing on by Chris Lattner · 6 years ago
- 5187cfc Merge Operation into OperationInst and standardize nomenclature around by Chris Lattner · 6 years ago
- 3f19031 Merge SSAValue, CFGValue, and MLValue together into a single Value class, which by Chris Lattner · 6 years ago
- d613f5a Refactor MLFunction to contain a StmtBlock for its body instead of inheriting by Chris Lattner · 6 years ago
- 4eef795 Computation slice update: adds parameters to insertBackwardComputationSlice which specify the source loop nest depth at which to perform iteration space slicing, and the destination loop nest depth at which to insert the compution slice. by MLIR Team · 6 years ago
- 6892ffb Improve loop fusion algorithm by using a memref dependence graph. by MLIR Team · 6 years ago
- 3b69230 Loop Fusion pass update: introduce utilities to perform generalized loop fusion based on slicing; encompasses standard loop fusion. by MLIR Team · 6 years ago
- b5424dd Adds support for returning the direction of the dependence between memref accesses (distance/direction vectors). by MLIR Team · 6 years ago
- cc9a6ed Initialize Pass with PassID. by Jacques Pienaar · 6 years ago
- 6f0fb22 Add static pass registration by Jacques Pienaar · 6 years ago
- f28e4df Adds a dependence check to test whether two accesses to the same memref access the same element. by MLIR Team · 6 years ago