From 3c505c22673701339d35eb2151f01c16eb3c78c3 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Fri, 14 Sep 2018 14:16:28 -0400 Subject: Improvements around IR representation and memory usage (#635) * * Remove dispose from IRInst * Use MemoryArena instead of MemoryPool * Make all IRInst not require Dtor - by having ref counted array store ptrs that need freeing * Increase block size - typically compilation is 2Mb of IR space(!) * Fix issues around StringRepresentation::equal because null has special meaning. * Don't bother to construct as String to compare StringRepresentation, just used UnownedStringSlice. * Added fromLiteral support to UnownedStringSlice and use instead of strlen version. * Use more conventional way to test StringRepresentation against a String. * Fix gcc/clang template problem with cast. --- source/slang/ir-legalize-types.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/slang/ir-legalize-types.cpp') diff --git a/source/slang/ir-legalize-types.cpp b/source/slang/ir-legalize-types.cpp index 9136ad671..931ceb85a 100644 --- a/source/slang/ir-legalize-types.cpp +++ b/source/slang/ir-legalize-types.cpp @@ -844,7 +844,7 @@ static LegalVal legalizeInst( RefPtr findVarLayout(IRInst* value) { if (auto layoutDecoration = value->findDecoration()) - return layoutDecoration->layout.As(); + return layoutDecoration->layout->dynamicCast(); return nullptr; } -- cgit v1.2.3