This patch upstreams initial work to support the lowering of pointer assignments in a FORALL construct.
Also includes some other bug fixes that are related and need upstreaming as well.
Paths
| Differential D125140
[flang] Upstream code to lower pointer assignment in FORALL constructs ClosedPublic Authored by schweitz on May 6 2022, 3:51 PM.
Details Summary This patch upstreams initial work to support the lowering of pointer assignments in a FORALL construct. Also includes some other bug fixes that are related and need upstreaming as well.
Diff Detail
Event TimelineThis revision is now accepted and ready to land.May 6 2022, 4:00 PM Closed by commit rG1bffc75383a2: Upstream support for POINTER assignment in FORALL. (authored by schweitz). · Explain WhyMay 6 2022, 7:53 PM This revision was automatically updated to reflect the committed changes. Comment Actions This broke the msvs buildbot caused by the removal of the __SIZEOF_INT128__ conditional compilation: https://lab.llvm.org/buildbot/#/builders/172/builds/12046 peixin added inline comments.
Revision Contents
Diff 427778 flang/include/flang/Lower/AbstractConverter.h
flang/include/flang/Lower/Allocatable.h
flang/include/flang/Lower/ComponentPath.h
flang/include/flang/Lower/ConvertExpr.h
flang/include/flang/Lower/Support/Utils.h
flang/include/flang/Optimizer/Builder/BoxValue.h
flang/include/flang/Optimizer/Builder/FIRBuilder.h
flang/include/flang/Optimizer/Builder/Factory.h
flang/include/flang/Optimizer/Dialect/FIRType.h
flang/include/flang/Runtime/io-api.h
flang/lib/Lower/Allocatable.cpp
flang/lib/Lower/Bridge.cpp
flang/lib/Lower/ComponentPath.cpp
flang/lib/Lower/ConvertExpr.cpp
flang/lib/Lower/IO.cpp
flang/lib/Optimizer/Builder/BoxValue.cpp
flang/lib/Optimizer/Builder/FIRBuilder.cpp
flang/lib/Optimizer/Builder/MutableBox.cpp
flang/lib/Optimizer/Dialect/FIRType.cpp
flang/test/Lower/forall/array-pointer.f90
flang/test/Lower/forall/forall-2.f90
flang/unittests/Optimizer/Builder/FIRBuilderTest.cpp
|
This seems to be failed on X86.
https://buildkite.com/llvm-project/premerge-checks/builds/91903#b24dc0c7-8505-49f2-a757-ab5a0576c2f0
[3999/4207] Building CXX object tools\flang\lib\Lower\CMakeFiles\obj.FortranLower.dir\IO.cpp.obj
FAILED: tools/flang/lib/Lower/CMakeFiles/obj.FortranLower.dir/IO.cpp.obj
sccache C:\BuildTools\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe /nologo /TP -DBUILD_EXAMPLES -DFLANG_LITTLE_ENDIAN=1 -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -DSTDC_CONSTANT_MACROS -DSTDC_FORMAT_MACROS -DSTDC_LIMIT_MACROS -Itools\flang\lib\Lower -IC:\ws\w5\llvm-project\premerge-checks\flang\lib\Lower -IC:\ws\w5\llvm-project\premerge-checks\flang\include -Itools\flang\include -Iinclude -IC:\ws\w5\llvm-project\premerge-checks\llvm\include -IC:\ws\w5\llvm-project\premerge-checks\llvm\..\mlir\include -Itools\mlir\include -Itools\clang\include -IC:\ws\w5\llvm-project\premerge-checks\llvm\..\clang\include /DWIN32 /D_WINDOWS /Zc:inline /Zc:cplusplus /Zc:strictStrings /Oi /Zc:rvalueCast /bigobj /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd4324 -w14062 -we4238 /Gw /MD /O2 /Ob2 /EHs-c- /GR- -UNDEBUG -std:c++17 /showIncludes /Fotools\flang\lib\Lower\CMakeFiles\obj.FortranLower.dir\IO.cpp.obj /Fdtools\flang\lib\Lower\CMakeFiles\obj.FortranLower.dir\ /FS -c C:\ws\w5\llvm-project\premerge-checks\flang\lib\Lower\IO.cpp
C:\ws\w5\llvm-project\premerge-checks\flang\lib\Lower\IO.cpp(84): error C2065: '_FortranAioCheckUnitNumberInRange128': undeclared identifier
C:\ws\w5\llvm-project\premerge-checks\flang\lib\Lower\IO.cpp(84): error C3203: 'RuntimeTableKey': unspecialized class template can't be used as a template argument for template parameter '<unnamed-symbol>', expected a real type
C:\BuildTools\VC\Tools\MSVC\14.29.30133\include\tuple(189): error C2079: 'std::_Tuple_val<_This>::_Val' uses undefined struct 'fir::runtime::RuntimeTableEntry<int,std::integer_sequence<T,95,70,111,114,116,114,97,110,65,105,111,67,104,101,99,107,85,110,105,116,78,117,109,98,101,114,73,110,82,97,110,103,101,49,50,56>>'
C:\BuildTools\VC\Tools\MSVC\14.29.30133\include\tuple(730): note: see reference to class template instantiation 'std::_Tuple_val<_This>' being compiled