summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/CallingConvLower.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-12-22 22:46:00 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-12-22 22:46:00 +0000
commite2f66ceed9a241d53158f077c9e887958290135f (patch)
tree2e511412582d2a77ec4bcbd01e2c8aa4a6440793 /llvm/lib/CodeGen/CallingConvLower.cpp
parent2cbc654d93bc9f1f3e6dd59166c7e1f8750738d1 (diff)
downloadbcm5719-llvm-e2f66ceed9a241d53158f077c9e887958290135f.tar.gz
bcm5719-llvm-e2f66ceed9a241d53158f077c9e887958290135f.zip
[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. llvm-svn: 224742
Diffstat (limited to 'llvm/lib/CodeGen/CallingConvLower.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud