ARM-software / synchronization-benchmarks

Collection of synchronization micro-benchmarks and traces from infrastructure applications
Other
37 stars 36 forks source link

Assembler warnings #60

Open chacon01 opened 4 years ago

chacon01 commented 4 years ago

I'm getting some warnings from GCC9 when compiling lh_cas_event_mutex for AArch64

/tmp/cc76Umqe.s: Assembler messages:
/tmp/cc76Umqe.s:2064: Warning: unpredictable: identical transfer and status registers --`stxr w0,x1,[x0]'
/tmp/cc76Umqe.s:2589: Warning: unpredictable: identical transfer and status registers --`stxr w0,x1,[x0]'
/tmp/cc76Umqe.s:3971: Warning: unpredictable: identical transfer and status registers --`stxr w3,x3,[x0]'

These sorts of warnings usually come from one or more missing early-clobber specifiers somewhere in the inline assembly.

lucasclucasdo commented 4 years ago

I think this was actually the result of pulling in a bug in the originating code which--as I recall--was devised as an LL/SC-only stopgap optimization to MySQL's event mutex. I'm not sure cas_event_mutex ever was (or should be) upstreamed so maybe the right thing to do here is just remove the test since it depends on its own (incorrectly) hand-coded atomics and doesn't relate to anything meaningful in real code.

chacon01 commented 4 years ago

I'll leave it up to the maintainers whether they want to keep the test. I have a fix for the assembler warning (which I'll post shortly); if the test gets removed instead, that's fine too.