diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-08-17 14:51:09 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-08-17 14:51:09 -0700 |
| commit | ec8175c1f0afe3f7758f70da240aba03a791c3a9 (patch) | |
| tree | 53a6a509f3bba87d964ba3a5007b538db1d83a4e /source/slang/lower-to-ir.cpp | |
| parent | 95348fdb623509eb22c04d4c7c19af8228c5a533 (diff) | |
[ir] Add support for "decorations" on instructions
The terminology here is similar to SPIR-V. For right now the only decoration exposed is a fairly brute-force one that just points back to a high-level declaration so that we can look up info on it that might affect how we print output.
Diffstat (limited to 'source/slang/lower-to-ir.cpp')
| -rw-r--r-- | source/slang/lower-to-ir.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/slang/lower-to-ir.cpp b/source/slang/lower-to-ir.cpp index 5d0a40072..781209dce 100644 --- a/source/slang/lower-to-ir.cpp +++ b/source/slang/lower-to-ir.cpp @@ -562,6 +562,8 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo> auto irField = builder->createStructField(getSimpleType(fieldType)); builder->addInst(irStruct, irField); + builder->addHighLevelDeclDecoration(irField, fieldDecl); + context->shared->declValues.Add( DeclRef<StructField>(fieldDecl, nullptr), LoweredValInfo::simple(irField)); @@ -573,6 +575,7 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo> } } + builder->addHighLevelDeclDecoration(irStruct, decl); builder->addInst(irStruct); @@ -624,6 +627,8 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo> lowerStmt(subContext, decl->Body); + getBuilder()->addHighLevelDeclDecoration(irFunc, decl); + getBuilder()->addInst(irFunc); return LoweredValInfo::simple(irFunc); |
