summaryrefslogtreecommitdiffstats
path: root/source/slang/emit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/emit.cpp')
-rw-r--r--source/slang/emit.cpp24
1 files changed, 10 insertions, 14 deletions
diff --git a/source/slang/emit.cpp b/source/slang/emit.cpp
index f17b13762..5a2a93a53 100644
--- a/source/slang/emit.cpp
+++ b/source/slang/emit.cpp
@@ -6758,25 +6758,19 @@ StructTypeLayout* getScopeStructLayout(
ScopeLayout* scopeLayout)
{
auto scopeTypeLayout = scopeLayout->parametersLayout->typeLayout;
- if( auto structTypeLayout = as<StructTypeLayout>(scopeTypeLayout) )
+
+ if( auto constantBufferTypeLayout = as<ParameterGroupTypeLayout>(scopeTypeLayout) )
{
- return structTypeLayout;
+ scopeTypeLayout = constantBufferTypeLayout->offsetElementTypeLayout;
}
- else if( auto constantBufferTypeLayout = as<ParameterGroupTypeLayout>(scopeTypeLayout) )
- {
- auto elementTypeLayout = constantBufferTypeLayout->offsetElementTypeLayout;
- auto elementTypeStructLayout = as<StructTypeLayout>(elementTypeLayout);
- // We expect all constant buffers to contain `struct` types for now
- SLANG_RELEASE_ASSERT(elementTypeStructLayout);
-
- return elementTypeStructLayout;
- }
- else
+ if( auto structTypeLayout = as<StructTypeLayout>(scopeTypeLayout) )
{
- SLANG_UNEXPECTED("uhandled global-scope binding layout");
- return nullptr;
+ return structTypeLayout;
}
+
+ SLANG_UNEXPECTED("uhandled global-scope binding layout");
+ return nullptr;
}
/// Given a layout computed for a program, get the layout to use when lookup up variables.
@@ -7005,6 +6999,7 @@ String emitEntryPoint(
legalizeExistentialTypeLayout(
irModule,
sink);
+ eliminateDeadCode(compileRequest, irModule);
#if 0
dumpIRIfEnabled(compileRequest, irModule, "EXISTENTIALS LEGALIZED");
@@ -7025,6 +7020,7 @@ String emitEntryPoint(
legalizeResourceTypes(
irModule,
sink);
+ eliminateDeadCode(compileRequest, irModule);
// Debugging output of legalization
#if 0