Generate temporary storage inside WHERE and FORALL using the temporary
stack runtime. This covers all cases outside of LHS temporary, where the
descriptor stack will have to be used.
Depends on D151247
Paths
| Differential D151251
[flang][hlfir] Generate temporary storage in Forall/Where [2/2] ClosedPublic Authored by jeanPerier on May 23 2023, 1:20 PM.
Details Summary Generate temporary storage inside WHERE and FORALL using the temporary Depends on D151247
Diff Detail
Event TimelineComment Actions
This revision is now accepted and ready to land.May 24 2023, 12:51 PM Closed by commit rGf3c3f63672a0: [flang][hlfir] Generate temporary storage in Forall/Where [2/2] (authored by jeanPerier). · Explain WhyMay 25 2023, 2:57 AM This revision was automatically updated to reflect the committed changes.
Comment Actions Thanks for the review
Revision Contents
Diff 525506 flang/include/flang/Optimizer/Builder/HLFIRTools.h
flang/include/flang/Optimizer/Builder/Runtime/TemporaryStack.h
flang/include/flang/Optimizer/Builder/TemporaryStorage.h
flang/include/flang/Optimizer/HLFIR/HLFIRDialect.h
flang/lib/Optimizer/Builder/CMakeLists.txt
flang/lib/Optimizer/Builder/Runtime/TemporaryStack.cpp
flang/lib/Optimizer/Builder/TemporaryStorage.cpp
flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIROrderedAssignments.cpp
flang/test/HLFIR/order_assignments/runtime-stack-temp.fir
|
How about testing the type you get back against valueStaticType to see if they are different? That way, conversions other than i1 -> fir.logical can be handled.