summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Instrumentation
diff options
context:
space:
mode:
authorRobin Morisset <morisset@google.com>2014-09-02 22:16:29 +0000
committerRobin Morisset <morisset@google.com>2014-09-02 22:16:29 +0000
commitdf20586a7afd433d64fd10b1827c34e2852f731b (patch)
treed92b251f295773aaaf1fb0ad043ad715785c179f /llvm/lib/Transforms/Instrumentation
parent7d7087c124b388010c9735c6193747779018b155 (diff)
downloadbcm5719-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
OpenPOWER on IntegriCloud