From caf6f7a03793be3fc74683994414776f3604ad8a Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 17 Jan 2018 14:48:07 -0500 Subject: All compiler fixes to get ir branch work with falcor feature demo. - support overloaded generic function. this involves adding a new expression type, `OverloadedExpr2` to hold the candidate expressions for the generic function decl being referenced. - make BitNot a normal IROp instead of an IRPseudoOp - make sure we clone the decorations of parameters when cloning ir functions - propagate geometry shader entry point attributes (`[maxvertexcount]` and `[instance]`) through HLSL emit - IR emit: handle geometry shader entry-point parameter decorations, such as 'triangle'. - IR emit: treat geometry shader stream output typed ir value as `should fold into use`. --- source/slang/lower-to-ir.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source/slang/lower-to-ir.cpp') diff --git a/source/slang/lower-to-ir.cpp b/source/slang/lower-to-ir.cpp index c8e010f7d..5e7e05a23 100644 --- a/source/slang/lower-to-ir.cpp +++ b/source/slang/lower-to-ir.cpp @@ -705,7 +705,6 @@ LoweredValInfo emitCallToDeclRef( CASE(kIRPseudoOp_PostInc, kIROp_Add); CASE(kIRPseudoOp_PostDec, kIROp_Sub); #undef CASE - default: SLANG_UNIMPLEMENTED_X("IR pseudo-op"); break; @@ -1197,6 +1196,11 @@ struct ExprLoweringVisitorBase : ExprVisitor SLANG_UNEXPECTED("overloaded expressions should not occur in checked AST"); } + LoweredValInfo visitOverloadedExpr2(OverloadedExpr2* /*expr*/) + { + SLANG_UNEXPECTED("overloaded expressions should not occur in checked AST"); + } + LoweredValInfo visitIndexExpr(IndexExpr* expr) { auto type = lowerType(context, expr->type); @@ -3521,7 +3525,6 @@ struct DeclLoweringVisitor : DeclVisitor for( auto paramInfo : parameterLists.params ) { RefPtr irParamType = lowerSimpleType(context, paramInfo.type); - switch( paramInfo.direction ) { case kParameterDirection_In: -- cgit v1.2.3