I've committed the attached tiny patch to fix PR target/67002 which is a 5/6 regression. sh_recog_treg_set_expr are called unexpectedly during expand phase only when -g is specified and it might cause -fcompare-debug failure. The patch is tested on sh4-unknown-linux-gnu. I'll backport it to 5.
Regards, kaz -- 2015-08-07 Kaz Kojima <kkoj...@gcc.gnu.org> PR target/67002 * config/sh/sh.c (sh_recog_treg_set_expr): Return false when currently_expanding_to_rtl is set. diff --git a/config/sh/sh.c b/config/sh/sh.c index f429193..450d634 100644 --- a/config/sh/sh.c +++ b/config/sh/sh.c @@ -14165,6 +14165,12 @@ sh_recog_treg_set_expr (rtx op, machine_mode mode) if (!can_create_pseudo_p ()) return false; + /* expand_debug_locations may call this to compute rtx costs at + very early stage. In that case, don't make new insns here to + avoid codegen differences with -g. */ + if (currently_expanding_to_rtl) + return false; + /* We are going to invoke recog in a re-entrant way and thus have to capture its current state and restore it afterwards. */ recog_data_d prev_recog_data = recog_data;