================
@@ -1917,9 +2020,53 @@ CGHLSLRuntime::emitResourceMemberExpr(CodeGenFunction
&CGF,
return LV;
}
-bool CGHLSLRuntime::emitBufferCopy(CodeGenFunction &CGF, Address DstPtr,
- Address SrcPtr, QualType CType) {
- return HLSLBufferCopyEmitter(CGF, DstPtr, SrcPtr).emitCopy(CType);
+bool CGHLSLRuntime::emitBufferCopy(CodeGenFunction &CGF, const Expr *E,
+ const LValue &SrcLV,
+ AggValueSlot &DestSlot) {
+ assert(E->getType().getAddressSpace() == LangAS::hlsl_constant &&
+ "expected expression in HLSL constant address space");
+ assert(!E->getType()->isHLSLResourceRecord() &&
+ !E->getType()->isHLSLResourceRecordArray() &&
+ "direct accesses to resource types should be handled separately");
+
+ if (DestSlot.isIgnored())
----------------
hekota wrote:
I think this is set by Clang codegen when the slot is not being used, and
therefore the cogegen for its value can be skipped.
https://github.com/llvm/llvm-project/pull/204232
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits