__sync_swap* with acq/rel/full memory barrier semantics

Aldy Hernandez aldyh@redhat.com
Thu Jun 2 19:53:00 GMT 2011


On 06/02/11 14:25, Jakub Jelinek wrote:

>> +    case MEMMODEL_SEQ_CST:
>> +      op = sync_mem_exchange_seq_cst_optab;
>> +      break;
>> +    case MEMMODEL_ACQUIRE:
>> +      op = sync_mem_exchange_acq_optab;
>> +      break;
>> +    case MEMMODEL_RELEASE:
>> +      op = sync_mem_exchange_rel_optab;
>> +      break;
>> +    case MEMMODEL_ACQ_REL:
>> +      op = sync_mem_exchange_acq_rel_optab;
>> +      break;
>
> Wouldn't it be better to pass the model (as an extra CONST_INT
> operand) to the expanders?  Targets where atomic instructions always act
> as full barriers could just ignore that argument, other could decide what
> to do based on the value.

*shrug* I don't care.  Whatever everyone agrees on.



More information about the Gcc-patches mailing list