forked from OSchip/llvm-project
![]() As per issue #1196, the loop induction variable, which is an argument in the omp.wsloop operation, does not have a memory location, so when passed to a function or subroutine, the reference to the value is not a memory location, but the value of the induction variable. The callee function/subroutine is then trying to dereference memory at address 1 or some other "not a good memory location". This is fixed by creating a temporary memory location and storing the value of the induction variable in that. Test fixes as a consequence of the changed code generated. Add checking for some of the omp-unstructured.f90 to check for alloca, store and load operations, to ensure the correct flow. Add a test for CYCLE inside a omp-do loop. Also convert to use -emit-fir in the omp-unstructrued, and make the symbol matching consistent in the omp-wsloop-variable test. Reviewed By: peixin Differential Revision: https://reviews.llvm.org/D126711 |
||
---|---|---|
.. | ||
.clang-format | ||
.clang-tidy | ||
Allocatable.cpp | ||
Bridge.cpp | ||
CMakeLists.txt | ||
CallInterface.cpp | ||
Coarray.cpp | ||
ComponentPath.cpp | ||
ConvertExpr.cpp | ||
ConvertType.cpp | ||
ConvertVariable.cpp | ||
CustomIntrinsicCall.cpp | ||
DumpEvaluateExpr.cpp | ||
HostAssociations.cpp | ||
IO.cpp | ||
IntrinsicCall.cpp | ||
IterationSpace.cpp | ||
Mangler.cpp | ||
OpenACC.cpp | ||
OpenMP.cpp | ||
PFTBuilder.cpp | ||
Runtime.cpp | ||
SymbolMap.cpp | ||
VectorSubscripts.cpp |