On 01/30/2015 12:12 PM, Mike Stump wrote:
> On Jan 30, 2015, at 9:52 AM, Jakub Jelinek <ja...@redhat.com> wrote:
>> On Fri, Jan 30, 2015 at 09:45:26AM -0800, Mike Stump wrote:
>>> I have a port that has:
>>>
>>> (insn 47 46 48 18 (parallel [
>>>            (unspec_volatile:DI [
>>>                    (const_int 128 [0x80])
>>>                    (const_int 6 [0x6])
>>>                ] UNSPECV_SPECIAL_OP)
>>>            (set (mem/v:BLK (scratch:DI) [0  A8])
>>>                (unspec:BLK [
>>>                        (mem/v:BLK (scratch:DI) [0  A8])
>>>                    ] UNSPEC_MEMORY_BARRIER))
>>
>> Why don't you just (clobber (mem/v:BLK (scratch:DI))) instead
>> of the second set in the parallel?  The instruction is already
>> UNSPEC_VOLATILE, and to make the barrier effect clear a clobber should be
>> sufficient.
> 
> So, f087d65d84655bc2d5fdd4bcc6bf0fe337a39893 seems to have introduced the 
> current way that all the ports do this currently.  So, I’d leave this to 
> Richard to answer.
> 
> If (clobber (mem/v:BLK (scratch:DI))) works, certainly that seems simpler 
> than what people do now, but, then I’m left wondering, why didn’t we do that 
> from that start?
> 

Jakub, the current formation includes both a use and a set of all memory.  Your
clobber form would not imply a use.


r~

Reply via email to