https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83758
acsawdey at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot gnu.org, | |rsandifo at gcc dot gnu.org --- Comment #27 from acsawdey at gcc dot gnu.org --- So, I think the problem is that the rtx given by crtl->args.internal_arg_pointer is not canonical as expected. So near the beginning of vt_add_function_parameter where it is using == to compare parts of the incoming arg rtx to this, it fails but rtx_equal_p does not. This small patch resolves the go bootstrap issues: Index: gcc/var-tracking.c =================================================================== --- gcc/var-tracking.c (revision 257159) +++ gcc/var-tracking.c (working copy) @@ -9668,10 +9668,10 @@ into MEMs based on the argument pointer, so that incoming doesn't depend on a pseudo. */ if (MEM_P (incoming) - && (XEXP (incoming, 0) == crtl->args.internal_arg_pointer + && (rtx_equal_p (XEXP (incoming, 0), crtl->args.internal_arg_pointer) || (GET_CODE (XEXP (incoming, 0)) == PLUS - && XEXP (XEXP (incoming, 0), 0) - == crtl->args.internal_arg_pointer + && rtx_equal_p (XEXP (XEXP (incoming, 0), 0), + crtl->args.internal_arg_pointer) && CONST_INT_P (XEXP (XEXP (incoming, 0), 1))))) { HOST_WIDE_INT off = -FIRST_PARM_OFFSET (current_function_decl);