[clang] [HLSL] Implement HLSL Flat casting (excluding splat cases) (PR #118842)
Sarah Spall via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 4 07:36:46 PST 2025
================
@@ -6358,3 +6359,81 @@ RValue CodeGenFunction::EmitPseudoObjectRValue(const PseudoObjectExpr *E,
LValue CodeGenFunction::EmitPseudoObjectLValue(const PseudoObjectExpr *E) {
return emitPseudoObjectExpr(*this, E, true, AggValueSlot::ignored()).LV;
}
+
+void CodeGenFunction::FlattenAccessAndType(
+ Address Addr, QualType AddrType,
+ SmallVectorImpl<std::pair<Address, llvm::Value *>> &AccessList,
+ SmallVectorImpl<QualType> &FlatTypes) {
+ // WorkList is list of type we are processing + the Index List to access
+ // the field of that type in Addr for use in a GEP
+ llvm::SmallVector<std::pair<QualType, llvm::SmallVector<llvm::Value *, 4>>,
+ 16>
----------------
spall wrote:
I took the 16 from a different function which was similar. I think the idea was the largest flat type would be 16 in size. I would have to remind myself of the argument for that.
https://github.com/llvm/llvm-project/pull/118842
More information about the cfe-commits
mailing list