diff options
Diffstat (limited to 'flang/lib/Lower/Bridge.cpp')
-rw-r--r-- | flang/lib/Lower/Bridge.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/flang/lib/Lower/Bridge.cpp b/flang/lib/Lower/Bridge.cpp index 6b7efe6..d16488d 100644 --- a/flang/lib/Lower/Bridge.cpp +++ b/flang/lib/Lower/Bridge.cpp @@ -13,6 +13,7 @@ #include "flang/Lower/Bridge.h" #include "flang/Lower/Allocatable.h" +#include "flang/Lower/CUDA.h" #include "flang/Lower/CallInterface.h" #include "flang/Lower/Coarray.h" #include "flang/Lower/ConvertCall.h" @@ -20,7 +21,6 @@ #include "flang/Lower/ConvertExprToHLFIR.h" #include "flang/Lower/ConvertType.h" #include "flang/Lower/ConvertVariable.h" -#include "flang/Lower/Cuda.h" #include "flang/Lower/DirectivesCommon.h" #include "flang/Lower/HostAssociations.h" #include "flang/Lower/IO.h" @@ -2122,6 +2122,9 @@ private: } } + if (!doConcurrentLoopOp) + return; + llvm::SmallVector<bool> reduceVarByRef; llvm::SmallVector<mlir::Attribute> reductionDeclSymbols; llvm::SmallVector<mlir::Attribute> nestReduceAttrs; @@ -4898,7 +4901,6 @@ private: // device = device if (lhsIsDevice && rhsIsDevice) { - assert(rhs.isVariable() && "CUDA Fortran assignment rhs is not legal"); auto transferKindAttr = cuf::DataTransferKindAttr::get( builder.getContext(), cuf::DataTransferKind::DeviceDevice); cuf::DataTransferOp::create(builder, loc, rhsVal, lhsVal, shape, |