llvm-6502/lib/Transforms
Chandler Carruth 67924e9af8 [SROA] Lift the logic for traversing the alloca slices one partition at
a time into a partition iterator and a Partition class.

There is a lot of knock-on simplification that this enables, largely
stemming from having a Partition object to refer to in lots of helpers.
I've only done a minimal amount of that because enoguh stuff is changing
as-is in this commit.

This shouldn't change any observable behavior. I've worked hard to
preserve the *exact* traversal semantics which were originally present
even though some of them make no sense. I'll be changing some of this in
subsequent commits now that the logic is carefully factored into
a reusable place.

The primary motivation for this change is to break the rewriting into
phases in order to support more intelligent rewriting. For example, I'm
planning to change how split loads and stores are rewritten to remove
the significant overuse of integer bit packing in the resulting code and
allow more effective secondary splitting of aggregates. For any of this
to work, they have to share the exact traversal logic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224742 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-22 22:46:00 +00:00
..
Hello [CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and BugpointPasses, on Win32. 2014-07-13 13:36:48 +00:00
InstCombine InstCombine: Squash an icmp+select into bitwise arithmetic 2014-12-20 04:45:35 +00:00
Instrumentation [Msan] Generalize instrumentation code to support FreeBSD mapping 2014-12-18 12:12:59 +00:00
IPO Sink store based on alias analysis 2014-12-15 14:09:53 +00:00
ObjCARC IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Scalar [SROA] Lift the logic for traversing the alloca slices one partition at 2014-12-22 22:46:00 +00:00
Utils [LCSSA] Handle PHI insertion in disjoint loops 2014-12-22 22:35:46 +00:00
Vectorize [BBVectorize] Remove two more redundant assignments. 2014-12-19 17:21:38 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile