> That said, -mrtm could easily be tested by the compiler to generate
> (or not) inline HTM for implementing -fgnu-tm....
Consider my earlier example
if (cpuid(rtm)) _xbegin() .. else fallback
Today if I want to do that I have to pass -mrtm. And the binary would work
on CPUs with and without RTM.
Now assume that "fallback" used the gnu-tm transactions.
Then I update to a new compiler version that makes -mrtm enable
unconditional RTM use there. I recompile the program with
the same Makefile (that still passes -mrtm for _xbegin) and
the new compiler version.
The fallback transaction code would now use RTM unconditionally.
I run it on a non RTM system and it would crash with an illegal instruction.
User would see that new compiler broke her perfectly fine program.
Now is an option to control to RTM usage in gnu-tm useful?
Yes, but it should never control the intrinsic too.
PS some recent options like -mrdrand have similar issues.
a...@linux.intel.com -- Speaking for myself only.