[unordered] Extend load/store type canonicalization to handle unordered operations
authorPhilip Reames <listmail@philipreames.com>
Fri, 22 Apr 2016 20:33:48 +0000 (20:33 +0000)
committerPhilip Reames <listmail@philipreames.com>
Fri, 22 Apr 2016 20:33:48 +0000 (20:33 +0000)
commiteedef73b633496ca52af265b472519f0e385a7d2
tree7bf4e6df908b6b48c02f6549c448f8ff4129c27c
parent629d12de70959f49f0b8f78eb9e6e217103a24c7
[unordered] Extend load/store type canonicalization to handle unordered operations

Extend the type canonicalization logic to work for unordered atomic loads and stores.  Note that while this change itself is fairly simple and low risk, there's a reasonable chance this will expose problems in the backends by suddenly generating IR they wouldn't have seen before.  Anything of this nature will be an existing bug in the backend (you could write an atomic float load), but this will definitely change the frequency with which such cases are encountered.  If you see problems, feel free to revert this change, but please make sure you collect a test case.

llvm-svn: 267210
llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
llvm/test/Transforms/InstCombine/atomic.ll