@@ -562,53 +562,33 @@ class OpenACC_DataEntryOp<string mnemonic, string clause, string extraDescriptio
562562 let hasVerifier = 1;
563563
564564 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,
594566 "bool":$structured, "bool":$implicit,
595567 CArg<"::mlir::ValueRange", "{}">:$bounds),
596568 [{
569+ auto ptrLikeTy = ::mlir::dyn_cast<::mlir::acc::PointerLikeType>(
570+ var.getType());
597571 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()),
599575 /*varPtrPtr=*/{}, bounds, /*asyncOperands=*/{},
600576 /*asyncOperandsDeviceType=*/nullptr,
601577 /*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
602578 /*structured=*/$_builder.getBoolAttr(structured),
603579 /*implicit=*/$_builder.getBoolAttr(implicit), /*name=*/nullptr);
604580 }]>,
605- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::MappableType> ":$var,
581+ OpBuilder<(ins "::mlir::Value ":$var,
606582 "bool":$structured, "bool":$implicit,
607583 "const ::llvm::Twine &":$name,
608584 CArg<"::mlir::ValueRange", "{}">:$bounds),
609585 [{
586+ auto ptrLikeTy = ::mlir::dyn_cast<::mlir::acc::PointerLikeType>(
587+ var.getType());
610588 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()),
612592 /*varPtrPtr=*/{}, bounds, /*asyncOperands=*/{},
613593 /*asyncOperandsDeviceType=*/nullptr,
614594 /*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
@@ -942,28 +922,34 @@ class OpenACC_DataExitOpWithVarPtr<string mnemonic, string clause>
942922 }];
943923
944924 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 ,
947927 "bool":$structured, "bool":$implicit,
948928 CArg<"::mlir::ValueRange", "{}">:$bounds),
949929 [{
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()),
953936 bounds, /*asyncOperands=*/{}, /*asyncOperandsDeviceType=*/nullptr,
954937 /*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
955938 /*structured=*/$_builder.getBoolAttr(structured),
956939 /*implicit=*/$_builder.getBoolAttr(implicit), /*name=*/nullptr);
957940 }]>,
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 ,
960943 "bool":$structured, "bool":$implicit,
961944 "const ::llvm::Twine &":$name,
962945 CArg<"::mlir::ValueRange", "{}">:$bounds),
963946 [{
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()),
967953 bounds, /*asyncOperands=*/{}, /*asyncOperandsDeviceType=*/nullptr,
968954 /*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
969955 /*structured=*/$_builder.getBoolAttr(structured),
@@ -996,22 +982,22 @@ class OpenACC_DataExitOpNoVarPtr<string mnemonic, string clause> :
996982 }];
997983
998984 let builders = [
999- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::PointerLikeType> ":$accPtr ,
985+ OpBuilder<(ins "::mlir::Value ":$accVar ,
1000986 "bool":$structured, "bool":$implicit,
1001987 CArg<"::mlir::ValueRange", "{}">:$bounds),
1002988 [{
1003- build($_builder, $_state, accPtr ,
989+ build($_builder, $_state, accVar ,
1004990 bounds, /*asyncOperands=*/{}, /*asyncOperandsDeviceType=*/nullptr,
1005991 /*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
1006992 /*structured=*/$_builder.getBoolAttr(structured),
1007993 /*implicit=*/$_builder.getBoolAttr(implicit), /*name=*/nullptr);
1008994 }]>,
1009- OpBuilder<(ins "::mlir::TypedValue<::mlir::acc::PointerLikeType> ":$accPtr ,
995+ OpBuilder<(ins "::mlir::Value ":$accVar ,
1010996 "bool":$structured, "bool":$implicit,
1011997 "const ::llvm::Twine &":$name,
1012998 CArg<"::mlir::ValueRange", "{}">:$bounds),
1013999 [{
1014- build($_builder, $_state, accPtr ,
1000+ build($_builder, $_state, accVar ,
10151001 bounds, /*asyncOperands=*/{}, /*asyncOperandsDeviceType=*/nullptr,
10161002 /*asyncOnly=*/nullptr, /*dataClause=*/nullptr,
10171003 /*structured=*/$_builder.getBoolAttr(structured),
0 commit comments