From 444ff4d8fdeb721b94a9424d03c162f43fb217c9 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 6 Nov 2020 10:26:27 -0800 Subject: Specialize witness table lookups. (#1596) * Specialize witness table lookups. * Remove generated files from vcxproj * Fix call to generic interface methods. --- source/slang/slang-ir.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/slang/slang-ir.cpp') diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp index 30790af84..5bc289dab 100644 --- a/source/slang/slang-ir.cpp +++ b/source/slang/slang-ir.cpp @@ -2596,6 +2596,16 @@ namespace Slang (IRInst* const*)&baseType); } + IRWitnessTableIDType* IRBuilder::getWitnessTableIDType( + IRType* baseType) + { + return (IRWitnessTableIDType*)findOrEmitHoistableInst( + nullptr, + kIROp_WitnessTableIDType, + 1, + (IRInst* const*)&baseType); + } + IRConstantBufferType* IRBuilder::getConstantBufferType(IRType* elementType) { IRInst* operands[] = { elementType }; @@ -5496,6 +5506,7 @@ namespace Slang case kIROp_DefaultConstruct: case kIROp_Specialize: case kIROp_lookup_interface_method: + case kIROp_GetSequentialID: case kIROp_getAddr: case kIROp_GetValueFromExistentialBox: case kIROp_Construct: -- cgit v1.2.3