History log of /llvm-project/mlir/lib/Transforms/LoopInvariantCodeMotion.cpp (Results 26 – 50 of 53)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5
# 43959a25 14-Mar-2020 River Riddle <riddleriver@gmail.com>

[mlir][NFC] Move the LoopLike interface out of Transforms/ and into Interfaces/

Differential Revision: https://reviews.llvm.org/D76155


Revision tags: llvmorg-10.0.0-rc4
# 0ddba0bd 12-Mar-2020 River Riddle <riddleriver@gmail.com>

[mlir][SideEffects] Replace HasNoSideEffect with the memory effect interfaces.

HasNoSideEffect can now be implemented using the MemoryEffectInterface, removing the need to check multiple things for

[mlir][SideEffects] Replace HasNoSideEffect with the memory effect interfaces.

HasNoSideEffect can now be implemented using the MemoryEffectInterface, removing the need to check multiple things for the same information. This also removes an easy foot-gun for users as 'Operation::hasNoSideEffect' would ignore operations that dynamically, or recursively, have no side effects. This also leads to an immediate improvement in some of the existing users, such as DCE, now that they have access to more information.

Differential Revision: https://reviews.llvm.org/D76036

show more ...


# 153720a0 10-Mar-2020 River Riddle <riddleriver@gmail.com>

[mlir][NFC] Move the interfaces and traits for side effects out of IR/ to Interfaces/

Summary:
Interfaces/ is the designated directory for these types of interfaces, and also removes the need for in

[mlir][NFC] Move the interfaces and traits for side effects out of IR/ to Interfaces/

Summary:
Interfaces/ is the designated directory for these types of interfaces, and also removes the need for including them directly in IR/.

Differential Revision: https://reviews.llvm.org/D75886

show more ...


# b10c6625 09-Mar-2020 River Riddle <riddleriver@gmail.com>

[mlir][SideEffects] Replace the old SideEffects dialect interface with the newly added op interfaces/traits.

Summary:
The old interface was a temporary stopgap to allow for implementing simple LICM

[mlir][SideEffects] Replace the old SideEffects dialect interface with the newly added op interfaces/traits.

Summary:
The old interface was a temporary stopgap to allow for implementing simple LICM that took side effects of region operations into account. Now that MLIR has proper support for specifying memory effects, this interface can be deleted.

Differential Revision: https://reviews.llvm.org/D74441

show more ...


Revision tags: llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1
# 30857107 26-Jan-2020 Mehdi Amini <aminim@google.com>

Mass update the MLIR license header to mention "Part of the LLVM project"

This is an artifact from merging MLIR into LLVM, the file headers are
now aligned with the rest of the project.


Revision tags: llvmorg-11-init
# 2bdf33cc 11-Jan-2020 River Riddle <riverriddle@google.com>

[mlir] NFC: Remove Value::operator* and Value::operator-> now that Value is properly value-typed.

Summary: These were temporary methods used to simplify the transition.

Reviewed By: antiagainst

Di

[mlir] NFC: Remove Value::operator* and Value::operator-> now that Value is properly value-typed.

Summary: These were temporary methods used to simplify the transition.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D72548

show more ...


# 0f0d0ed1 24-Dec-2019 Mehdi Amini <aminim@google.com>

Import MLIR into the LLVM tree


# e62a6956 23-Dec-2019 River Riddle <riverriddle@google.com>

NFC: Replace ValuePtr with Value and remove it now that Value is value-typed.

ValuePtr was a temporary typedef during the transition to a value-typed Value.

PiperOrigin-RevId: 286945714


# 56222a06 23-Dec-2019 Mehdi Amini <aminim@google.com>

Adjust License.txt file to use the LLVM license

PiperOrigin-RevId: 286906740


# 35807bc4 23-Dec-2019 River Riddle <riverriddle@google.com>

NFC: Introduce new ValuePtr/ValueRef typedefs to simplify the transition to Value being value-typed.

This is an initial step to refactoring the representation of OpResult as proposed in: https://gro

NFC: Introduce new ValuePtr/ValueRef typedefs to simplify the transition to Value being value-typed.

This is an initial step to refactoring the representation of OpResult as proposed in: https://groups.google.com/a/tensorflow.org/g/mlir/c/XXzzKhqqF_0/m/v6bKb08WCgAJ

This change will make it much simpler to incrementally transition all of the existing code to use value-typed semantics.

PiperOrigin-RevId: 286844725

show more ...


# 4562e389 18-Dec-2019 River Riddle <riverriddle@google.com>

NFC: Remove unnecessary 'llvm::' prefix from uses of llvm symbols declared in `mlir` namespace.

Aside from being cleaner, this also makes the codebase more consistent.

PiperOrigin-RevId: 286206974


Revision tags: llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1
# b843cc5d 16-Oct-2019 Stephan Herhut <herhut@google.com>

Implement simple loop-invariant-code-motion based on dialect interfaces.

PiperOrigin-RevId: 275004258


Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6
# f1b100c7 13-Sep-2019 River Riddle <riverriddle@google.com>

NFC: Finish replacing FunctionPassBase/ModulePassBase with OpPassBase.

These directives were temporary during the generalization of FunctionPass/ModulePass to OpPass.

PiperOrigin-RevId: 268970259


Revision tags: llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4
# 9c8a8a7d 30-Aug-2019 River Riddle <riverriddle@google.com>

Add a canonicalization to erase empty AffineForOps.

AffineForOp themselves are pure and can be removed if there are no internal operations.

PiperOrigin-RevId: 266481293


Revision tags: llvmorg-9.0.0-rc3
# 4bfae66d 29-Aug-2019 River Riddle <riverriddle@google.com>

Refactor the 'walk' methods for operations.

This change refactors and cleans up the implementation of the operation walk methods. After this refactoring is that the explicit template parameter for t

Refactor the 'walk' methods for operations.

This change refactors and cleans up the implementation of the operation walk methods. After this refactoring is that the explicit template parameter for the operation type is no longer needed for the explicit op walks. For example:

op->walk<AffineForOp>([](AffineForOp op) { ... });

is now accomplished via:

op->walk([](AffineForOp op) { ... });

PiperOrigin-RevId: 266209552

show more ...


# ffde975e 20-Aug-2019 River Riddle <riverriddle@google.com>

NFC: Move AffineOps dialect to the Dialect sub-directory.
PiperOrigin-RevId: 264482571


# ba0fa925 19-Aug-2019 River Riddle <riverriddle@google.com>

NFC: Move LLVMIR, SDBM, and StandardOps to the Dialect/ directory.
PiperOrigin-RevId: 264193915


# 79f53b0c 17-Aug-2019 Jacques Pienaar <jpienaar@google.com>

Change from llvm::make_unique to std::make_unique

Switch to C++14 standard method as llvm::make_unique has been removed (
https://reviews.llvm.org/D66259). Also mark some targets as c++14 to ease ne

Change from llvm::make_unique to std::make_unique

Switch to C++14 standard method as llvm::make_unique has been removed (
https://reviews.llvm.org/D66259). Also mark some targets as c++14 to ease next
integrates.

PiperOrigin-RevId: 263953918

show more ...


Revision tags: llvmorg-9.0.0-rc2
# 926fb685 13-Aug-2019 Mehdi Amini <aminim@google.com>

Express ownership transfer in PassManager API through std::unique_ptr (NFC)

Since raw pointers are always passed around for IR construct without
implying any ownership transfer, it can be error pron

Express ownership transfer in PassManager API through std::unique_ptr (NFC)

Since raw pointers are always passed around for IR construct without
implying any ownership transfer, it can be error prone to have implicit
ownership transferred the same way.
For example this code can seem harmless:

Pass *pass = ....
pm.addPass(pass);
pm.addPass(pass);
pm.run(module);

PiperOrigin-RevId: 263053082

show more ...


Revision tags: llvmorg-9.0.0-rc1, llvmorg-10-init
# 0002e296 16-Jul-2019 Nicolas Vasilache <ntv@google.com>

Move affine.for and affine.if to ODS

As the move to ODS is made, body and region names across affine and loop dialects are uniformized.

PiperOrigin-RevId: 258416590


Revision tags: llvmorg-8.0.1, llvmorg-8.0.1-rc4
# 2e1187dd 03-Jul-2019 Andy Davis <andydavis@google.com>

Globally change load/store/dma_start/dma_wait operations over to affine.load/store/dma_start/dma_wait.
In most places, this is just a name change (with the exception of affine.dma_start swapping the

Globally change load/store/dma_start/dma_wait operations over to affine.load/store/dma_start/dma_wait.
In most places, this is just a name change (with the exception of affine.dma_start swapping the operand positions of its tag memref and num_elements operands).
Significant code changes occur here:
*) Vectorization: LoopAnalysis.cpp, Vectorize.cpp
*) Affine Transforms: Transforms/Utils/Utils.cpp

PiperOrigin-RevId: 256395088

show more ...


Revision tags: llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2
# f1b848e4 05-Jun-2019 River Riddle <riverriddle@google.com>

NFC: Rename FuncBuilder to OpBuilder and refactor to take a top level region instead of a function.

PiperOrigin-RevId: 251563898


# 7a43da60 31-May-2019 Amit Sabne <asabne@google.com>

Loop invariant code motion - remove reliance on getForwardSlice. Add more tests.

--

PiperOrigin-RevId: 250950703


Revision tags: llvmorg-8.0.1-rc1
# d5b60ee8 12-May-2019 River Riddle <riverriddle@google.com>

Replace Operation::isa with llvm::isa.

--

PiperOrigin-RevId: 247789235


# 0134b5df 11-May-2019 Chris Lattner <clattner@google.com>

Cleanups and simplifications to code, noticed by inspection. NFC.

--

PiperOrigin-RevId: 247758075


123