On Tue, 19 Jan 2016, Jakub Jelinek wrote: > On Tue, Jan 19, 2016 at 03:19:17PM +0100, Richard Biener wrote: > > > > It also seems we're wrongly using values defined for the host while > > looking at GIMPLE IL for the target. > > > > Bootstrap / regtest running on x86_64-unknown-linux-gnu. > > > > Ok? > > > > Richard. > > > > 2016-01-19 Richard Biener <rguent...@suse.de> > > > > * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants > > and name. > > (get_memory_order): Likewise. > > > > Index: gcc/hsa-gen.c > > =================================================================== > > --- gcc/hsa-gen.c (revision 232561) > > +++ gcc/hsa-gen.c (working copy) > > @@ -4417,18 +4417,18 @@ get_memory_order_name (unsigned memmodel > > { > > switch (memmodel) > > { > > - case __ATOMIC_RELAXED: > > - return "__ATOMIC_RELAXED"; > > - case __ATOMIC_CONSUME: > > - return "__ATOMIC_CONSUME"; > > - case __ATOMIC_ACQUIRE: > > - return "__ATOMIC_ACQUIRE"; > > - case __ATOMIC_RELEASE: > > - return "__ATOMIC_RELEASE"; > > - case __ATOMIC_ACQ_REL: > > - return "__ATOMIC_ACQ_REL"; > > - case __ATOMIC_SEQ_CST: > > - return "__ATOMIC_SEQ_CST"; > > + case MEMMODEL_RELAXED: > > + return "MEMMODEL_RELAXED"; > > + case MEMMODEL_CONSUME: > > + return "MEMMODEL_CONSUME"; > > + case MEMMODEL_ACQUIRE: > > + return "MEMMODEL_ACQUIRE"; > > + case MEMMODEL_RELEASE: > > + return "MEMMODEL_RELEASE"; > > + case MEMMODEL_ACQ_REL: > > + return "MEMMODEL_ACQ_REL"; > > + case MEMMODEL_SEQ_CST: > > + return "MEMMODEL_SEQ_CST"; > > The case changes are ok, though it is not handling various > other memory models (MEMMOVED_SYNC_{ACQUIRE,RELEASE,SEQ_CST}). > For the returned strings, that is used in user visible context (warning), > so I think neither is ok, better use "relaxed", "consume", "acquire", > "release", "acq_rel", "seq_cst" (and the rest are internals for __sync_ > builtins). > > > default: > > return NULL; > > } > > @@ -4442,13 +4442,13 @@ get_memory_order (unsigned memmodel, loc > > { > > switch (memmodel) > > { > > - case __ATOMIC_RELAXED: > > + case MEMMODEL_RELAXED: > > return BRIG_MEMORY_ORDER_RELAXED; > > - case __ATOMIC_ACQUIRE: > > + case MEMMODEL_ACQUIRE: > > return BRIG_MEMORY_ORDER_SC_ACQUIRE; > > - case __ATOMIC_RELEASE: > > + case MEMMODEL_RELEASE: > > return BRIG_MEMORY_ORDER_SC_RELEASE; > > - case __ATOMIC_ACQ_REL: > > + case MEMMODEL_ACQ_REL: > > return BRIG_MEMORY_ORDER_SC_ACQUIRE_RELEASE; > > default: > > HSA_SORRY_ATV (location, > > This LGTM (though I'm really surprised it doesn't have seq_cst, > e.g. OpenMP #pragma omp atomic will be either relaxed, or seq_cst.
I'll defer the diagnostic name change to Martin then and commit the following to unbreak the build. Richard. 2016-01-19 Richard Biener <rguent...@suse.de> * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants and name. (get_memory_order): Likewise. Index: gcc/hsa-gen.c =================================================================== --- gcc/hsa-gen.c (revision 232564) +++ gcc/hsa-gen.c (working copy) @@ -4417,17 +4417,17 @@ get_memory_order_name (unsigned memmodel { switch (memmodel) { - case __ATOMIC_RELAXED: + case MEMMODEL_RELAXED: return "__ATOMIC_RELAXED"; - case __ATOMIC_CONSUME: + case MEMMODEL_CONSUME: return "__ATOMIC_CONSUME"; - case __ATOMIC_ACQUIRE: + case MEMMODEL_ACQUIRE: return "__ATOMIC_ACQUIRE"; - case __ATOMIC_RELEASE: + case MEMMODEL_RELEASE: return "__ATOMIC_RELEASE"; - case __ATOMIC_ACQ_REL: + case MEMMODEL_ACQ_REL: return "__ATOMIC_ACQ_REL"; - case __ATOMIC_SEQ_CST: + case MEMMODEL_SEQ_CST: return "__ATOMIC_SEQ_CST"; default: return NULL; @@ -4442,13 +4442,13 @@ get_memory_order (unsigned memmodel, loc { switch (memmodel) { - case __ATOMIC_RELAXED: + case MEMMODEL_RELAXED: return BRIG_MEMORY_ORDER_RELAXED; - case __ATOMIC_ACQUIRE: + case MEMMODEL_ACQUIRE: return BRIG_MEMORY_ORDER_SC_ACQUIRE; - case __ATOMIC_RELEASE: + case MEMMODEL_RELEASE: return BRIG_MEMORY_ORDER_SC_RELEASE; - case __ATOMIC_ACQ_REL: + case MEMMODEL_ACQ_REL: return BRIG_MEMORY_ORDER_SC_ACQUIRE_RELEASE; default: HSA_SORRY_ATV (location,