@@ -981,24 +981,12 @@ Value ConvertLaunchFuncOpToGpuRuntimeCallPattern::generateParamsArray(
981
981
gpu::LaunchFuncOp launchOp, OpAdaptor adaptor, OpBuilder &builder) const {
982
982
auto loc = launchOp.getLoc ();
983
983
auto numKernelOperands = launchOp.getNumKernelOperands ();
984
- SmallVector<Value, 4 > arguments;
985
- if (kernelBarePtrCallConv) {
986
- // Hack the bare pointer value on just for the argument promotion
987
- const LLVMTypeConverter *converter = getTypeConverter ();
988
- LowerToLLVMOptions options = converter->getOptions ();
989
- LowerToLLVMOptions overrideToMatchKernelOpts = options;
990
- overrideToMatchKernelOpts.useBarePtrCallConv = true ;
991
- LLVMTypeConverter newConverter = *converter;
992
- newConverter.dangerousSetOptions (overrideToMatchKernelOpts);
993
- arguments = newConverter.promoteOperands (
994
- loc, launchOp.getOperands ().take_back (numKernelOperands),
995
- adaptor.getOperands ().take_back (numKernelOperands), builder);
996
- } else {
997
- arguments = getTypeConverter ()->promoteOperands (
998
- loc, launchOp.getOperands ().take_back (numKernelOperands),
999
- adaptor.getOperands ().take_back (numKernelOperands), builder);
1000
- }
1001
-
984
+ // Note: If `useBarePtrCallConv` is set in the type converter's options,
985
+ // the value of `kernelBarePtrCallConv` will be ignored.
986
+ SmallVector<Value, 4 > arguments = getTypeConverter ()->promoteOperands (
987
+ loc, launchOp.getOperands ().take_back (numKernelOperands),
988
+ adaptor.getOperands ().take_back (numKernelOperands), builder,
989
+ /* useBarePtrCallConv=*/ kernelBarePtrCallConv);
1002
990
auto numArguments = arguments.size ();
1003
991
SmallVector<Type, 4 > argumentTypes;
1004
992
argumentTypes.reserve (numArguments);
@@ -1112,23 +1100,11 @@ LogicalResult ConvertLaunchFuncOpToGpuRuntimeCallPattern::matchAndRewrite(
1112
1100
stream = streamCreateCallBuilder.create (loc, rewriter, {}).getResult ();
1113
1101
1114
1102
// Lower the kernel operands to match kernel parameters.
1115
- SmallVector<Value, 4 > arguments;
1116
- if (kernelBarePtrCallConv) {
1117
- // Hack the bare pointer value on just for the argument promotion
1118
- const LLVMTypeConverter *converter = getTypeConverter ();
1119
- LowerToLLVMOptions options = converter->getOptions ();
1120
- LowerToLLVMOptions overrideToMatchKernelOpts = options;
1121
- overrideToMatchKernelOpts.useBarePtrCallConv = true ;
1122
- LLVMTypeConverter newConverter = *converter;
1123
- newConverter.dangerousSetOptions (overrideToMatchKernelOpts);
1124
- arguments =
1125
- newConverter.promoteOperands (loc, launchOp.getKernelOperands (),
1126
- adaptor.getKernelOperands (), rewriter);
1127
- } else {
1128
- arguments = getTypeConverter ()->promoteOperands (
1129
- loc, launchOp.getKernelOperands (), adaptor.getKernelOperands (),
1130
- rewriter);
1131
- }
1103
+ // Note: If `useBarePtrCallConv` is set in the type converter's options,
1104
+ // the value of `kernelBarePtrCallConv` will be ignored.
1105
+ SmallVector<Value, 4 > arguments = getTypeConverter ()->promoteOperands (
1106
+ loc, launchOp.getKernelOperands (), adaptor.getKernelOperands (),
1107
+ rewriter, /* useBarePtrCallConv=*/ kernelBarePtrCallConv);
1132
1108
1133
1109
rewriter.create <gpu::LaunchFuncOp>(
1134
1110
launchOp.getLoc (), launchOp.getKernelAttr (),
0 commit comments