This is the mail archive of the
mailing list for the GCC project.
Re: [ARM] Fix PR middle-end/65958
- From: Ramana Radhakrishnan <ramana dot radhakrishnan at foss dot arm dot com>
- To: Eric Botcazou <ebotcazou at adacore dot com>, gcc-patches at gcc dot gnu dot org
- Date: Wed, 17 Jun 2015 11:18:16 +0100
- Subject: Re: [ARM] Fix PR middle-end/65958
- Authentication-results: sourceware.org; auth=none
- References: <1478566 dot ZKXszbaoG4 at polaris>
I am not very familiar with this feature entirely so please bear with me
during review and will find some time to do some experiments with the
feature during this week, but a couple of things with respect to the
patch immediately spring to mind.
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec_volatile:SI [(match_operand:SI 1 "register_operand" "0")
+ (match_operand:SI 2 "register_operand" "r")]
+ return output_probe_stack_range (operands, operands);
Please mark this pattern with (set_attr "type" "multiple").
While I suspect that stack probing is done before any insns with invalid
constants in the function, it would be better to model the length of
this insn so that the minipool logic is not confused later in terms of
placement of constant pools.
Shouldn't the pattern contain clobbers for the CC register or is that
unnecessary for the same reason as above ?
Additionally please add
(set_attr "conds" "clob")
to this pattern so that the CCFSM state machine doesn't go awry in any
of these cases.