@@ -562,53 +562,33 @@ class OpenACC_DataEntryOp<string mnemonic, string clause, string extraDescriptio
562
562
let hasVerifier = 1;
563
563
564
564
let builders = [
565
- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::PointerLikeType>":$varPtr,
566
- "bool":$structured, "bool":$implicit,
567
- CArg<"::mlir::ValueRange", "{}">:$bounds),
568
- [{
569
- build($_builder, $_state, varPtr.getType(), varPtr,
570
- /*varType=*/::mlir::TypeAttr::get(
571
- varPtr.getType().getElementType()),
572
- /*varPtrPtr=*/{}, bounds, /*asyncOperands=*/{},
573
- /*asyncOperandsDeviceType=*/nullptr,
574
- /*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
575
- /*structured=*/$_builder.getBoolAttr(structured),
576
- /*implicit=*/$_builder.getBoolAttr(implicit), /*name=*/nullptr);
577
- }]>,
578
- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::PointerLikeType>":$varPtr,
579
- "bool":$structured, "bool":$implicit,
580
- "const ::llvm::Twine &":$name,
581
- CArg<"::mlir::ValueRange", "{}">:$bounds),
582
- [{
583
- build($_builder, $_state, varPtr.getType(), varPtr,
584
- /*varType=*/::mlir::TypeAttr::get(
585
- varPtr.getType().getElementType()),
586
- /*varPtrPtr=*/{}, bounds, /*asyncOperands=*/{},
587
- /*asyncOperandsDeviceType=*/nullptr,
588
- /*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
589
- /*structured=*/$_builder.getBoolAttr(structured),
590
- /*implicit=*/$_builder.getBoolAttr(implicit),
591
- /*name=*/$_builder.getStringAttr(name));
592
- }]>,
593
- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::MappableType>":$var,
565
+ OpBuilder<(ins "::mlir::Value":$var,
594
566
"bool":$structured, "bool":$implicit,
595
567
CArg<"::mlir::ValueRange", "{}">:$bounds),
596
568
[{
569
+ auto ptrLikeTy = ::mlir::dyn_cast<::mlir::acc::PointerLikeType>(
570
+ var.getType());
597
571
build($_builder, $_state, var.getType(), var,
598
- /*varType=*/::mlir::TypeAttr::get(var.getType()),
572
+ /*varType=*/ptrLikeTy ?
573
+ ::mlir::TypeAttr::get(ptrLikeTy.getElementType()) :
574
+ ::mlir::TypeAttr::get(var.getType()),
599
575
/*varPtrPtr=*/{}, bounds, /*asyncOperands=*/{},
600
576
/*asyncOperandsDeviceType=*/nullptr,
601
577
/*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
602
578
/*structured=*/$_builder.getBoolAttr(structured),
603
579
/*implicit=*/$_builder.getBoolAttr(implicit), /*name=*/nullptr);
604
580
}]>,
605
- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::MappableType> ":$var,
581
+ OpBuilder<(ins "::mlir::Value ":$var,
606
582
"bool":$structured, "bool":$implicit,
607
583
"const ::llvm::Twine &":$name,
608
584
CArg<"::mlir::ValueRange", "{}">:$bounds),
609
585
[{
586
+ auto ptrLikeTy = ::mlir::dyn_cast<::mlir::acc::PointerLikeType>(
587
+ var.getType());
610
588
build($_builder, $_state, var.getType(), var,
611
- /*varType=*/::mlir::TypeAttr::get(var.getType()),
589
+ /*varType=*/ptrLikeTy ?
590
+ ::mlir::TypeAttr::get(ptrLikeTy.getElementType()) :
591
+ ::mlir::TypeAttr::get(var.getType()),
612
592
/*varPtrPtr=*/{}, bounds, /*asyncOperands=*/{},
613
593
/*asyncOperandsDeviceType=*/nullptr,
614
594
/*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
@@ -942,28 +922,34 @@ class OpenACC_DataExitOpWithVarPtr<string mnemonic, string clause>
942
922
}];
943
923
944
924
let builders = [
945
- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::PointerLikeType> ":$accPtr ,
946
- "::mlir::TypedValue<::mlir::acc::PointerLikeType> ":$varPtr ,
925
+ OpBuilder<(ins "::mlir::Value ":$accVar ,
926
+ "::mlir::Value ":$var ,
947
927
"bool":$structured, "bool":$implicit,
948
928
CArg<"::mlir::ValueRange", "{}">:$bounds),
949
929
[{
950
- build($_builder, $_state, accPtr, varPtr,
951
- /*varType=*/::mlir::TypeAttr::get(
952
- varPtr.getType().getElementType()),
930
+ auto ptrLikeTy = ::mlir::dyn_cast<::mlir::acc::PointerLikeType>(
931
+ var.getType());
932
+ build($_builder, $_state, accVar, var,
933
+ /*varType=*/ptrLikeTy ?
934
+ ::mlir::TypeAttr::get(ptrLikeTy.getElementType()) :
935
+ ::mlir::TypeAttr::get(var.getType()),
953
936
bounds, /*asyncOperands=*/{}, /*asyncOperandsDeviceType=*/nullptr,
954
937
/*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
955
938
/*structured=*/$_builder.getBoolAttr(structured),
956
939
/*implicit=*/$_builder.getBoolAttr(implicit), /*name=*/nullptr);
957
940
}]>,
958
- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::PointerLikeType> ":$accPtr ,
959
- "::mlir::TypedValue<::mlir::acc::PointerLikeType> ":$varPtr ,
941
+ OpBuilder<(ins "::mlir::Value ":$accVar ,
942
+ "::mlir::Value ":$var ,
960
943
"bool":$structured, "bool":$implicit,
961
944
"const ::llvm::Twine &":$name,
962
945
CArg<"::mlir::ValueRange", "{}">:$bounds),
963
946
[{
964
- build($_builder, $_state, accPtr, varPtr,
965
- /*varType=*/::mlir::TypeAttr::get(
966
- varPtr.getType().getElementType()),
947
+ auto ptrLikeTy = ::mlir::dyn_cast<::mlir::acc::PointerLikeType>(
948
+ var.getType());
949
+ build($_builder, $_state, accVar, var,
950
+ /*varType=*/ptrLikeTy ?
951
+ ::mlir::TypeAttr::get(ptrLikeTy.getElementType()) :
952
+ ::mlir::TypeAttr::get(var.getType()),
967
953
bounds, /*asyncOperands=*/{}, /*asyncOperandsDeviceType=*/nullptr,
968
954
/*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
969
955
/*structured=*/$_builder.getBoolAttr(structured),
@@ -996,22 +982,22 @@ class OpenACC_DataExitOpNoVarPtr<string mnemonic, string clause> :
996
982
}];
997
983
998
984
let builders = [
999
- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::PointerLikeType> ":$accPtr ,
985
+ OpBuilder<(ins "::mlir::Value ":$accVar ,
1000
986
"bool":$structured, "bool":$implicit,
1001
987
CArg<"::mlir::ValueRange", "{}">:$bounds),
1002
988
[{
1003
- build($_builder, $_state, accPtr ,
989
+ build($_builder, $_state, accVar ,
1004
990
bounds, /*asyncOperands=*/{}, /*asyncOperandsDeviceType=*/nullptr,
1005
991
/*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
1006
992
/*structured=*/$_builder.getBoolAttr(structured),
1007
993
/*implicit=*/$_builder.getBoolAttr(implicit), /*name=*/nullptr);
1008
994
}]>,
1009
- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::PointerLikeType> ":$accPtr ,
995
+ OpBuilder<(ins "::mlir::Value ":$accVar ,
1010
996
"bool":$structured, "bool":$implicit,
1011
997
"const ::llvm::Twine &":$name,
1012
998
CArg<"::mlir::ValueRange", "{}">:$bounds),
1013
999
[{
1014
- build($_builder, $_state, accPtr ,
1000
+ build($_builder, $_state, accVar ,
1015
1001
bounds, /*asyncOperands=*/{}, /*asyncOperandsDeviceType=*/nullptr,
1016
1002
/*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
1017
1003
/*structured=*/$_builder.getBoolAttr(structured),
0 commit comments