1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib/Transforms
Chandler Carruth 724a260ac5 [SROA] The original refactoring inspired by the addrspace patch in
D1764, which in turn set off the other refactorings to make
'getSliceAlign()' a sensible thing.

There are two possible inputs to the required alignment of a memory
transfer intrinsic: the alignment constraints of the source and the
destination. If we are *only* introducing a (potentially new) offset
onto one side of the transfer, we don't need to consider the alignment
constraints of the other side. Use this to simplify the logic feeding
into alignment computation for unsplit transfers.

Also, hoist the clamp of the magical zero alignment for these intrinsics
to the more customary one alignment early. This lets several other
conditions melt away.

No functionality changed. There is a further improvement this exposes
which *will* change functionality, but that's arriving in a separate
patch.

llvm-svn: 202232
2014-02-26 05:33:36 +00:00
..
Hello Set LLVM_EXPORTED_SYMBOL_FILE in CMakeLists whose corresponding Makefiles do so. 2013-12-29 23:06:49 +00:00
InstCombine Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
Instrumentation Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
IPO Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
ObjCARC Update optimization passes to handle inalloca arguments 2014-01-28 02:38:36 +00:00
Scalar [SROA] The original refactoring inspired by the addrspace patch in 2014-02-26 05:33:36 +00:00
Utils Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
Vectorize Make DataLayout a plain object, not a pass. 2014-02-25 17:30:31 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile