@@ -828,22 +828,21 @@ absl::Status FunctionConverter::HandleExternNameRef(
828828 imported_info->module ->FindMemberWithName (node->identifier ());
829829 XLS_RET_CHECK (member.has_value ());
830830 return absl::visit (
831- Visitor{
832- [&](Function* f) { return DefAlias (f, /* to=*/ node); },
833- [&](ConstantDef* c) -> absl::Status {
834- XLS_RET_CHECK (node_to_ir_.contains (c->value ()))
835- << absl::StreamFormat (
836- " ConstantDef `%s` not found in node_to_ir_ map" ,
837- c->ToString ());
838- return DefAlias (c->value (), /* to=*/ node);
839- },
840- [&](auto ) {
841- return absl::UnimplementedError (absl::StrFormat (
842- " Unsupported module member type %s for external name "
843- " reference: `%s` @ %s" ,
844- GetModuleMemberTypeName (*member.value ()), node->identifier (),
845- node->span ().ToString (file_table ())));
846- }},
831+ Visitor{[&](Function* f) { return DefAlias (f, /* to=*/ node); },
832+ [&](ConstantDef* c) -> absl::Status {
833+ XLS_RET_CHECK (node_to_ir_.contains (c->value ()))
834+ << absl::StreamFormat (
835+ " ConstantDef `%s` not found in node_to_ir_ map" ,
836+ c->ToString ());
837+ return DefAlias (c->value (), /* to=*/ node);
838+ },
839+ [&](auto ) {
840+ return absl::UnimplementedError (absl::StrFormat (
841+ " Unsupported module member type %s for external name "
842+ " reference: `%s` @ %s" ,
843+ GetModuleMemberTypeName (*member.value ()),
844+ node->identifier (), node->span ().ToString (file_table ())));
845+ }},
847846 *member.value ());
848847}
849848
@@ -3466,11 +3465,23 @@ absl::Status FunctionConverter::HandleProcNextFunction(
34663465 << initial_element.ToHumanString ();
34673466 }
34683467
3469- XLS_ASSIGN_OR_RETURN (
3470- std::string mangled_name,
3471- MangleDslxName (module_->name (), proc_id.ToString (),
3472- CallingConvention::kProcNext , f->GetFreeParametricKeySet (),
3473- parametric_env));
3468+ std::string mangled_name;
3469+ if (proc_id.alias_name .has_value () &&
3470+ proc_id.proc_instance_stack .size () == 1 ) {
3471+ // Don't include the parametrics for the target proc in the mangled name of
3472+ // a proc alias.
3473+ XLS_ASSIGN_OR_RETURN (
3474+ mangled_name, MangleDslxName (module_->name (), proc_id.ToString (),
3475+ CallingConvention::kProcNext ,
3476+ absl::btree_set<std::string>{}, nullptr ));
3477+ } else {
3478+ XLS_ASSIGN_OR_RETURN (
3479+ mangled_name,
3480+ MangleDslxName (module_->name (), proc_id.ToString (),
3481+ CallingConvention::kProcNext ,
3482+ f->GetFreeParametricKeySet (), parametric_env));
3483+ }
3484+
34743485 std::string token_name = " __token" ;
34753486 std::string state_name = " __state" ;
34763487
0 commit comments