#
3ed899cc |
| 17-Mar-2022 |
Jean Perier <jperier@nvidia.com> |
[flang] handle allocatable components when creating array temps
When creating an array temporary in the array copy pass, care must be taken with allocatable components. The element components needs
[flang] handle allocatable components when creating array temps
When creating an array temporary in the array copy pass, care must be taken with allocatable components. The element components needs to be given a clean unallocated status before being used in the assignments. This is because assignment of allocatable components makes deep copy, and may cause deallocation of the previous value if it was allocated. Hence the previous allocation status cannot be let undefined.
On top of that, when cleaning-up the temp, all allocatable components that may have been allocated must be deallocated.
This patch implements this by centralizing the code making and cleaning array temps in ArrayValueCopy.cpp, and by calling Initialize and Destroy runtime entry points when they are allocatable components.
Differential Revision: https://reviews.llvm.org/D121892
show more ...
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
#
beeb86bd |
| 09-Mar-2022 |
Valentin Clement <clementval@gmail.com> |
[flang] Update ArrayValueCopy to support array_amend and array_access
This patch update the array value copy pass to support fir-array_amend and fir.array_access.
This patch is part of the upstream
[flang] Update ArrayValueCopy to support array_amend and array_access
This patch update the array value copy pass to support fir-array_amend and fir.array_access.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: PeteSteinfeld, schweitz
Differential Revision: https://reviews.llvm.org/D121300
Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
show more ...
|
#
092601d4 |
| 03-Mar-2022 |
Andrzej Warzynski <andrzej.warzynski@arm.com> |
[flang] Remove 'using namespace mlir;` from header files
Currently, CGOps.h and FIROps.h contain `using namespace mlir;`. Every file that includes one of these header files (directly and transitivel
[flang] Remove 'using namespace mlir;` from header files
Currently, CGOps.h and FIROps.h contain `using namespace mlir;`. Every file that includes one of these header files (directly and transitively) will have the MLIR namespace enabled. With name-clashes within sub-projects (LLVM and MLIR, MLIR and Flang), this is not desired. Also, it is not possible to "un-use" a namespace once it is "used". Instead, we should try to limit `using namespace` to implementation files (i.e. *.cpp).
This patch removes `using namespace mlir;` from header files and adjusts other files accordingly. In header and TableGen files, extra namespace qualifier is added when referring to symbols defined in MLIR. Similar approach is adopted in source files that didn't require many changes. In files that would require a lot of changes, `using namespace mlir;` is added instead.
Differential Revision: https://reviews.llvm.org/D120897
show more ...
|
Revision tags: llvmorg-14.0.0-rc2 |
|
#
23aa5a74 |
| 26-Feb-2022 |
River Riddle <riddleriver@gmail.com> |
[mlir] Rename the Standard dialect to the Func dialect
The last remaining operations in the standard dialect all revolve around FuncOp/function related constructs. This patch simply handles the init
[mlir] Rename the Standard dialect to the Func dialect
The last remaining operations in the standard dialect all revolve around FuncOp/function related constructs. This patch simply handles the initial renaming (which by itself is already huge), but there are a large number of cleanups unlocked/necessary afterwards:
* Removing a bunch of unnecessary dependencies on Func * Cleaning up the From/ToStandard conversion passes * Preparing for the move of FuncOp to the Func dialect
See the discussion at https://discourse.llvm.org/t/standard-dialect-the-final-chapter/6061
Differential Revision: https://reviews.llvm.org/D120624
show more ...
|
#
149ad3d5 |
| 15-Feb-2022 |
Shraiysh Vaishay <Shraiysh.Vaishay@amd.com> |
[flang][mlir][NFC] Replace uses of raw accessors with prefixed accessors
`kEmitAccessorPrefix_Raw ` is being removed, and so updating the accessors to `kEmitAccessorPrefix_Prefixed`.
Reviewed By: c
[flang][mlir][NFC] Replace uses of raw accessors with prefixed accessors
`kEmitAccessorPrefix_Raw ` is being removed, and so updating the accessors to `kEmitAccessorPrefix_Prefixed`.
Reviewed By: clementval
Differential Revision: https://reviews.llvm.org/D119812
show more ...
|
Revision tags: llvmorg-14.0.0-rc1 |
|
#
ace01605 |
| 04-Feb-2022 |
River Riddle <riddleriver@gmail.com> |
[mlir] Split out a new ControlFlow dialect from Standard
This dialect is intended to model lower level/branch based control-flow constructs. The initial set of operations are: AssertOp, BranchOp, Co
[mlir] Split out a new ControlFlow dialect from Standard
This dialect is intended to model lower level/branch based control-flow constructs. The initial set of operations are: AssertOp, BranchOp, CondBranchOp, SwitchOp; all split out from the current standard dialect.
See https://discourse.llvm.org/t/standard-dialect-the-final-chapter/6061
Differential Revision: https://reviews.llvm.org/D118966
show more ...
|
Revision tags: llvmorg-15-init |
|
#
9f85c198 |
| 26-Jan-2022 |
River Riddle <riddleriver@gmail.com> |
[mlir] Finish replacing OwningRewritePatternList with RewritePatternSet
OwningRewritePatternList has been deprecated for ~10 months now, we can remove the leftover using directives at this point.
D
[mlir] Finish replacing OwningRewritePatternList with RewritePatternSet
OwningRewritePatternList has been deprecated for ~10 months now, we can remove the leftover using directives at this point.
Differential Revision: https://reviews.llvm.org/D118287
show more ...
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
#
196c4279 |
| 19-Jan-2022 |
River Riddle <riddleriver@gmail.com> |
[flang] Convert uses of FunctionPass to OperationPass<FuncOp>
FunctionPass has been deprecated and is in the process of being removed.
|
Revision tags: llvmorg-13.0.1-rc2 |
|
#
3ab67c3d |
| 16-Dec-2021 |
Valentin Clement <clementval@gmail.com> |
[fir] Move Factory.h to flang/Optimizer/Builder
Move the Factory.h header file to flang/Optimizer/Builder.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: kiranchand
[fir] Move Factory.h to flang/Optimizer/Builder
Move the Factory.h header file to flang/Optimizer/Builder.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D115801
show more ...
|
#
3012f35f |
| 09-Dec-2021 |
Jacques Pienaar <jpienaar@google.com> |
[flang] Updated FIR dialect to _Both
Change dialect (and remove now redundant accessors) to generate both form of accessors of being generated. Tried to keep this change reasonably minimal (this als
[flang] Updated FIR dialect to _Both
Change dialect (and remove now redundant accessors) to generate both form of accessors of being generated. Tried to keep this change reasonably minimal (this also includes keeping note about not generating getType accessor to avoid shadowing).
Differential Revision: https://reviews.llvm.org/D115420
show more ...
|
#
47f75930 |
| 30-Nov-2021 |
Valentin Clement <clementval@gmail.com> |
[fir] Add array value copy pass
This patch upstream the array value copy pass.
Transform the set of array value primitives to a memory-based array representation.
The Ops `array_load`, `array_stor
[fir] Add array value copy pass
This patch upstream the array value copy pass.
Transform the set of array value primitives to a memory-based array representation.
The Ops `array_load`, `array_store`, `array_fetch`, and `array_update` are used to manage abstract aggregate array values. A simple analysis is done to determine if there are potential dependences between these operations. If not, these array operations can be lowered to work directly on the memory representation. If there is a potential conflict, a temporary is created along with appropriate copy-in/copy-out operations. Here, a more refined analysis might be deployed, such as using the affine framework.
This pass is required before code gen to the LLVM IR dialect.
This patch is part of the upstreaming effort from fir-dev branch. The pass is bringing quite a lot of file with it.
Reviewed By: kiranchandramohan, schweitz
Differential Revision: https://reviews.llvm.org/D111337
Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
show more ...
|