diff options
author | Robin Morisset <morisset@google.com> | 2014-09-02 22:16:29 +0000 |
---|---|---|
committer | Robin Morisset <morisset@google.com> | 2014-09-02 22:16:29 +0000 |
commit | df20586a7afd433d64fd10b1827c34e2852f731b (patch) | |
tree | d92b251f295773aaaf1fb0ad043ad715785c179f /llvm/lib/Transforms/Instrumentation | |
parent | 7d7087c124b388010c9735c6193747779018b155 (diff) | |
download | bcm5719-llvm-df20586a7afd433d64fd10b1827c34e2852f731b.tar.gz bcm5719-llvm-df20586a7afd433d64fd10b1827c34e2852f731b.zip |
[X86] Allow atomic operations using immediates to avoid using a register
The only valid lowering of atomic stores in the X86 backend was mov from
register to memory. As a result, storing an immediate required a useless copy
of the immediate in a register. Now these can be compiled as a simple mov.
Similarily, adding/and-ing/or-ing/xor-ing an
immediate to an atomic location (but through an atomic_store/atomic_load,
not a fetch_whatever intrinsic) can now make use of an 'add $imm, x(%rip)'
instead of using a register. And the same applies to inc/dec.
This second point matches the first issue identified in
http://llvm.org/bugs/show_bug.cgi?id=17281
llvm-svn: 216980
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation')
0 files changed, 0 insertions, 0 deletions