2014-09-23 22:01 GMT+04:00 Jeff Law <l...@redhat.com>:
> On 09/23/14 00:31, Ilya Enkovich wrote:
>>
>>
>> I did this change a couple of years ago and don't remember exactly
>> what problem was caused by PARALLEL.  But from my comment it seems
>> parallel lead to values in BND0 and BND1 not to be actually defined by
>> call from DF point of view.  I'll try to reproduce a problem I had.
>
> Please do.  That would indicate a bug in the DF infrastructure.  I'm not
> real familiar with the DF implementation, but a quick glance at
> df_def_record_1 seems to indicate it's got support for a set destination
> being a PARALLEL.
>
>>> This kind of scheme also doesn't tend to "play well" with exception
>>> handling
>>> & scheduling becuase you can't guarantee the sets and the call are in the
>>> same block and scheduler as a single group.
>>
>>
>> How can the sets and  the call no be in the same block/group if all of
>> them are parts of a single instruction?
>
> Obviously in the cases where we've had these problems in the past they were
> distinct instructions.  So EH interactions isn't going to be an issue for
> MPX.
>
> However, we've still got the problem that the RTL you've generated is
> ill-formed.  If I understand things correctly, the assignments are the
> result of the call, that should be modeled by having the destination be a
> PARALLEL as mentioned earlier.

OK. Will try it. BTW call_value_pop patterns have two sets. One for
returned value and one for stack register. How comes it differs much
from what I do with bound regs?

Thanks,
Ilya

>
>
>
> Jeff

Reply via email to