This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: delay slot of conditionnal branch with no annuled jump strategy


Thanks for the hints ! 
I found a recent correction on resource.c ' https://github.com/mirrors/gcc/commit/d8e17376c1b6ba379cc918f06843792e35c4e38e' which treat my problem.
It seems my problem was not related to my parallel compare insn but produced by the conditional call at the beginning of the target path.
Let's hope this correction does not hide another problem by just applying a side effect on my specific test case :)
  
   Regards,

Selim

-----Message d'origine-----
De : Jeff Law [mailto:law@redhat.com] 
Envoyé : vendredi 11 octobre 2013 22:34
À : BELBACHIR Selim; Eric Botcazou
Cc : gcc@gcc.gnu.org
Objet : Re: delay slot of conditionnal branch with no annuled jump strategy

On 10/11/13 05:51, BELBACHIR Selim wrote:
>
>> Does this happen systematically with the compare insn or is it isolated?
>
> I encountered this problem only once in gcc testsuite (gcc.c-torture/execute/builtins/strncat-chk.c).
> I think the problem is quite rare because gcc does not put often a 
> parallel compare insn into the delay slot of a conditional jump, and when it happens it's not certain that the register clobbered by the parallel compare is used in the fall-through path after the conditional jump.
> So I would say the problem is isolated.
>
>> This looks like a bug in the dbr pass (several of them have been 
>> fixed since
>> 4.5.2) but it's impossible to be more precise without further details.  The support of annulled instructions is not required for proper operation.
>
> My current investigation showed that when I comment the call to 'fill_eager_delay_slots' in ' reorg.c:dbr_schedule' the problem disappear.
> The problem does not come from the 2 others techniques for filling delay slots : 'fill_simple_delay_slots' or 'relax_delay_slots'.
>
> To illustrate the problem previously described in asm, I copied and commented the rtl dumps below :
I'd look at the code in resource.c very carefully, it's possible it's not properly handling all the side effects of the parallel.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]