diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/reorg.c | 103 | ||||
-rw-r--r-- | gcc/resource.c | 5 |
3 files changed, 58 insertions, 55 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e5fb120aac..370ccbb507a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-04-14 Eric Botcazou <ebotcazou@adacore.com> + + * reorg.c (fill_simple_delay_slots): Reindent block of code. + * resource.c (mark_target_live_regs): Reformat conditional block. + 2013-04-13 Steven Bosscher <steven@gcc.gnu.org> * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn diff --git a/gcc/reorg.c b/gcc/reorg.c index d37d1b6fba6..30efd79be82 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -2144,69 +2144,66 @@ fill_simple_delay_slots (int non_jumps_p) if (CALL_P (insn)) maybe_never = 1; - for (trial = next_nonnote_insn (insn); !stop_search_p (trial, 1); - trial = next_trial) - { - next_trial = next_nonnote_insn (trial); + for (trial = next_nonnote_insn (insn); !stop_search_p (trial, 1); + trial = next_trial) + { + next_trial = next_nonnote_insn (trial); - /* This must be an INSN or CALL_INSN. */ - pat = PATTERN (trial); + /* This must be an INSN or CALL_INSN. */ + pat = PATTERN (trial); - /* Stand-alone USE and CLOBBER are just for flow. */ - if (GET_CODE (pat) == USE || GET_CODE (pat) == CLOBBER) - continue; + /* Stand-alone USE and CLOBBER are just for flow. */ + if (GET_CODE (pat) == USE || GET_CODE (pat) == CLOBBER) + continue; - /* If this already has filled delay slots, get the insn needing - the delay slots. */ - if (GET_CODE (pat) == SEQUENCE) - trial_delay = XVECEXP (pat, 0, 0); - else - trial_delay = trial; - - /* Stop our search when seeing a jump. */ - if (JUMP_P (trial_delay)) - break; - - /* See if we have a resource problem before we try to - split. */ - if (GET_CODE (pat) != SEQUENCE - && ! insn_references_resource_p (trial, &set, true) - && ! insn_sets_resource_p (trial, &set, true) - && ! insn_sets_resource_p (trial, &needed, true) + /* If this already has filled delay slots, get the insn needing + the delay slots. */ + if (GET_CODE (pat) == SEQUENCE) + trial_delay = XVECEXP (pat, 0, 0); + else + trial_delay = trial; + + /* Stop our search when seeing a jump. */ + if (JUMP_P (trial_delay)) + break; + + /* See if we have a resource problem before we try to split. */ + if (GET_CODE (pat) != SEQUENCE + && ! insn_references_resource_p (trial, &set, true) + && ! insn_sets_resource_p (trial, &set, true) + && ! insn_sets_resource_p (trial, &needed, true) #ifdef HAVE_cc0 - && ! (reg_mentioned_p (cc0_rtx, pat) && ! sets_cc0_p (pat)) + && ! (reg_mentioned_p (cc0_rtx, pat) && ! sets_cc0_p (pat)) #endif - && ! (maybe_never && may_trap_or_fault_p (pat)) - && (trial = try_split (pat, trial, 0)) - && eligible_for_delay (insn, slots_filled, trial, flags) - && ! can_throw_internal(trial)) - { - next_trial = next_nonnote_insn (trial); - delay_list = add_to_delay_list (trial, delay_list); - + && ! (maybe_never && may_trap_or_fault_p (pat)) + && (trial = try_split (pat, trial, 0)) + && eligible_for_delay (insn, slots_filled, trial, flags) + && ! can_throw_internal(trial)) + { + next_trial = next_nonnote_insn (trial); + delay_list = add_to_delay_list (trial, delay_list); #ifdef HAVE_cc0 - if (reg_mentioned_p (cc0_rtx, pat)) - link_cc0_insns (trial); + if (reg_mentioned_p (cc0_rtx, pat)) + link_cc0_insns (trial); #endif + delete_related_insns (trial); + if (slots_to_fill == ++slots_filled) + break; + continue; + } - delete_related_insns (trial); - if (slots_to_fill == ++slots_filled) - break; - continue; - } - - mark_set_resources (trial, &set, 0, MARK_SRC_DEST_CALL); - mark_referenced_resources (trial, &needed, true); + mark_set_resources (trial, &set, 0, MARK_SRC_DEST_CALL); + mark_referenced_resources (trial, &needed, true); - /* Ensure we don't put insns between the setting of cc and the - comparison by moving a setting of cc into an earlier delay - slot since these insns could clobber the condition code. */ - set.cc = 1; + /* Ensure we don't put insns between the setting of cc and the + comparison by moving a setting of cc into an earlier delay + slot since these insns could clobber the condition code. */ + set.cc = 1; - /* If this is a call, we might not get here. */ - if (CALL_P (trial_delay)) - maybe_never = 1; - } + /* If this is a call, we might not get here. */ + if (CALL_P (trial_delay)) + maybe_never = 1; + } /* If there are slots left to fill and our search was stopped by an unconditional branch, try the insn at the branch target. We can diff --git a/gcc/resource.c b/gcc/resource.c index 333c28f57e8..6051313732e 100644 --- a/gcc/resource.c +++ b/gcc/resource.c @@ -990,9 +990,10 @@ mark_target_live_regs (rtx insns, rtx target, struct resources *res) /* If this insn is a USE made by update_block, we care about the underlying insn. */ - if (code == INSN && GET_CODE (PATTERN (insn)) == USE + if (code == INSN + && GET_CODE (PATTERN (insn)) == USE && INSN_P (XEXP (PATTERN (insn), 0))) - real_insn = XEXP (PATTERN (insn), 0); + real_insn = XEXP (PATTERN (insn), 0); if (CALL_P (real_insn)) { |