From 7bcc2b15c8be4aebc6b9b8f05af6db7a451b228b Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 10 Nov 2020 14:55:36 -0800 Subject: Use integer RTTI/witness handles in existential tuples. (#1598) * Use integer RTTI/witness handles in existential tuples. * Fix clang error. * Fix IR serialization to use 16bits for opcode. * Undo accidental comment change. * Use variable length encoding for opcode. * Fix compile error. * Fixing issues * Fix code review issues. --- source/slang/slang-ir-lower-generic-call.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/slang/slang-ir-lower-generic-call.cpp') diff --git a/source/slang/slang-ir-lower-generic-call.cpp b/source/slang/slang-ir-lower-generic-call.cpp index 369bc712f..644757a89 100644 --- a/source/slang/slang-ir-lower-generic-call.cpp +++ b/source/slang/slang-ir-lower-generic-call.cpp @@ -192,7 +192,7 @@ namespace Slang // Generate RTTI for this type. auto rttiObject = sharedContext->maybeEmitRTTIObject(arg); arg = builder->emitGetAddress( - builder->getPtrType(builder->getRTTIType()), + builder->getRTTIHandleType(), rttiObject); } else if (arg->op == kIROp_Specialize) @@ -281,7 +281,7 @@ namespace Slang // If we see a call(lookup_interface_method(...), ...), we need to translate // all occurences of associatedtypes. auto interfaceType = cast( - cast(lookupInst->getWitnessTable()->getDataType()) + cast(lookupInst->getWitnessTable()->getDataType()) ->getConformanceType()); if (isBuiltin(interfaceType)) return; -- cgit v1.2.3