[clang] [HLSL] get inout/out ABI for array parameters working (PR #111047)
Chris B via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 3 13:49:34 PST 2024
================
@@ -5322,6 +5324,11 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,
IRCallArgs[FirstIRArg] = Val;
break;
}
+ } else if (I->getType()->isArrayParameterType()) {
+ // use the tmp created by the HLSLOutArgExpr
+ // instead of creating a new one below and copying the tmp into it.
----------------
llvm-beanz wrote:
```suggestion
// Don't produce a temporary for ArrayParameterType arguments.
// ArrayParameterType arguments are only created from
// HLSL_ArrayRValue casts and HLSLOutArgExpr expressions, both
// of which create temporaries already. This allows us to just use the
// scalar for the decayed array pointer as the argument directly.
```
https://github.com/llvm/llvm-project/pull/111047
More information about the cfe-commits
mailing list