llvm/flang/test/Fir
Jean Perier 3ed899cc74 [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
2022-03-17 10:56:20 +01:00
..
Todo [mlir] Move the Builtin FuncOp to the Func dialect 2022-03-16 17:07:03 -07:00
abstract-results.fir
affine-demotion.fir
affine-promotion.fir
alloc.fir [flang] Upstream fix to allocmem codegen to deal with missing dimensions 2022-02-11 11:12:49 -08:00
annotate-constant.fir Write a pass to annotate constant operands on FIR ops. This works 2022-03-14 11:14:44 -07:00
array-value-copy-3.fir [flang] handle allocatable components when creating array temps 2022-03-17 10:56:20 +01:00
array-value-copy.fir [flang] Update ArrayValueCopy to support array_amend and array_access 2022-03-09 19:33:24 +01:00
basic-program.fir [flang] Add Win32 to the list of supported triples 2022-02-16 21:43:13 +00:00
cg-ops.fir
char-conversion.fir
convert-fold.fir
convert-to-llvm-invalid.fir [flang][codegen] Add a conversion for fir.coordinate_of - part 2 2021-12-17 10:34:57 +00:00
convert-to-llvm-target.fir [flang][CodeGen] Transform fir.boxchar_len to a sequence of LLVM MLIR 2021-11-16 13:49:23 +00:00
convert-to-llvm.fir [flang] Use unix logical representation for fir.logical 2022-03-09 09:42:07 +01:00
external-mangling-emboxproc.fir
external-mangling.fir
fir-ops.fir [flang] Relax fir.rebox verifier with characters 2022-03-16 16:08:52 +01:00
fir-types.fir
ignore-missing-type-descriptor.fir [flang] Support PDT type descriptors in codegen 2022-03-03 10:08:18 +01:00
inline.fir [flang] Add FIRInlinerInterface 2022-02-10 11:38:34 +01:00
invalid-types.fir
invalid.fir [flang] Relax fir.rebox verifier with characters 2022-03-16 16:08:52 +01:00
loop01.fir
loop02.fir [mlir] Move SelectOp from Standard to Arithmetic 2022-02-02 14:45:12 -08:00
memory-allocation-opt.fir Add a new memory allocation rewrite pass. 2021-12-15 15:45:08 -08:00
memref-data-flow.fir [mlir] Split out a new ControlFlow dialect from Standard 2022-02-06 14:51:16 -08:00
rebox-susbtring.fir [flang] Relax fir.rebox verifier with characters 2022-03-16 16:08:52 +01:00
rebox.fir [flang] Relax fir.rebox verifier with characters 2022-03-16 16:08:52 +01:00
recursive-type.fir [Flang] Enable support for conversion of recursive record types 2022-01-04 13:53:58 +00:00
target-rewrite-boxchar.fir [fir] TargetRewrite: Rewrite fir.address_of(func) 2021-12-03 10:56:24 +00:00
target-rewrite-char-proc.fir [flang] split character procedure arguments in target-rewrite pass 2022-01-27 16:29:37 +01:00
target-rewrite-complex.fir [flang][codegen] Keep primitive type for extractvalue and insertvalue 2022-02-08 21:26:38 +01:00
target-rewrite-triple.fir [flang][driver] Add support for -S and implement -c/-emit-obj 2022-03-09 15:48:09 +00:00
types-to-llvm.fir [flang] Add type conversion for !fir.box<none> 2022-02-09 15:13:47 +01:00