This is the mail archive of the gcc-patches@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] |
On Tue, 2011-12-20 at 01:13 +0100, Torvald Riegel wrote:Thats true until you get to RTL patterns. once the atomics are expanded to RTL, they are no longer function calls, but are rtl patterns flagged as instructions with volatile memory references or something like that. (Im not as 'up' on the RTl side of things...) This prevents the rtl optimizations from doing much with them, WHEN they are related at least.On Mon, 2011-12-19 at 15:17 -0800, Richard Henderson wrote:Andrew, can you please comment on this?On 12/19/2011 02:58 PM, Torvald Riegel wrote:In the particular case (the validated loads technique used in method-gl.cc, load(), store(), and validate()), we actually do not need to have loads or stores to be really atomic, but need the compiler to treat them as if they were atomics wrt. to reordering etc. (e.g., wrt. adjacent fences). Right now, I'm relying on the fact that GCC doesn't optimize atomics yet and am just using nonatomic loads/stores.For 4.7, these accesses need to be volatile if they're to interact with the adjacent atomic ops.What do you mean by "interact"? AFAIU Andrew, currently atomics act as full optimization barriers, leaving nonatomic memory accesses in place somewhere between the surrounding atomic accesses.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |