Add materialization of virtual base registers for frame indices allocated into
authorJim Grosbach <grosbach@apple.com>
Tue, 17 Aug 2010 22:41:55 +0000 (22:41 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 17 Aug 2010 22:41:55 +0000 (22:41 +0000)
commitdc140c6e7b8350ca51aa1d408c10e25a27826e2c
tree8e765076d7d76778bf3621e93456bc6405628111
parentb9072fdaad6f36c96fe294c523dca048fd50c36f
Add materialization of virtual base registers for frame indices allocated into
the local block. Resolve references to those indices to a new base register.
For simplification and testing purposes, a new virtual base register is
allocated for each frame index being resolved. The result is truly horrible,
but correct, code that's good for exercising the new code paths.

Next up is adding thumb1 support, which should be very simple. Following that
will be adding base register re-use and implementing a reasonable ARM
heuristic for when a virtual base register should be generated at all.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111315 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetRegisterInfo.h
lib/CodeGen/LocalStackSlotAllocation.cpp
lib/CodeGen/PrologEpilogInserter.cpp
lib/Target/ARM/ARMBaseRegisterInfo.cpp
lib/Target/ARM/ARMBaseRegisterInfo.h