For more details about these instructions, please refer to the latest ISE document: https://www.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
It's not immediately clear to me that these are intended as a general atomic replacement. Is there more detail documentation or usage guide anywhere?
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
31802 | aligned* |
Comment Actions
I'd rather not do this until we have:
- Some published document that describes the relationship of these new instructions with the C++ atomic model, including interactions with existing atomic lowering. (I don't trust that it's correct based on the two sentences in the manual.)
- Some idea whether this is actually preferable; mfence is expensive.
Comment Actions
Not yet other than the ISE. I read several documents about the general atomic, but the RAO-INT is a new technology. I'm not very sure the relationships between them.
Yeah, good points, thanks @efriedma. I use mfence for conservative reasons. I had the impression mfence is cheaper than lock. Maybe I was wrong? Anyway, I can make it only work for monotonic. This should be enough as a beginning.
aligned*