[clang] [Clang][HLSL] Start emitting structured GEP instruction (PR #177332)
Eli Friedman via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 29 09:45:20 PST 2026
Nathan =?utf-8?q?Gauër?= <brioche at google.com>,
Nathan =?utf-8?q?Gauër?= <brioche at google.com>,
Nathan =?utf-8?q?Gauër?= <brioche at google.com>,
Nathan =?utf-8?q?Gauër?= <brioche at google.com>,
Nathan =?utf-8?q?Gauër?= <brioche at google.com>,
Nathan =?utf-8?q?Gauër?= <brioche at google.com>,
Nathan =?utf-8?q?Gauër?= <brioche at google.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/177332 at github.com>
================
@@ -4498,6 +4498,9 @@ Address CodeGenFunction::EmitArrayToPointerDecay(const Expr *E,
if (!E->getType()->isVariableArrayType()) {
assert(isa<llvm::ArrayType>(Addr.getElementType()) &&
"Expected pointer to array");
+
+ if (getLangOpts().HLSL && getLangOpts().EmitStructuredGEP)
+ return Addr;
----------------
efriedma-quic wrote:
If you want to match the AST, you can have two SGEPs: "p2 = gep p, 0, 0", then "result = gep p2, i".
If that doesn't work for some reason, you probably want some dedicated codepath that actually avoids the decay. Changing EmitArrayToPointerDecay so it doesn't actually decay is really confusing.
https://github.com/llvm/llvm-project/pull/177332
More information about the cfe-commits
mailing list