summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-08-09 18:19:41 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-08-09 18:19:41 +0000
commit53910d6aaefc1a61b332c61c3d112059cfbe9164 (patch)
treeb2b222113f2d0fd5d290fff049115a7ebb25c0d1 /llvm/lib/Target
parentf5dfb31df0170ffc5f8d7fdd50a6c494e6c4003c (diff)
downloadbcm5719-llvm-53910d6aaefc1a61b332c61c3d112059cfbe9164.tar.gz
bcm5719-llvm-53910d6aaefc1a61b332c61c3d112059cfbe9164.zip
Inflate register classes after coalescing.
Coalescing can remove copy-like instructions with sub-register operands that constrained the register class. Examples are: x86: GR32_ABCD:sub_8bit_hi -> GR32 arm: DPR_VFP2:ssub0 -> DPR Recompute the register class of any virtual registers that are used by less instructions after coalescing. This affects code generation for the Cortex-A8 where we use NEON instructions for f32 operations, c.f. fp_convert.ll: vadd.f32 d16, d1, d0 vcvt.s32.f32 d0, d16 The register allocator is now free to use d16 for the temporary, and that comes first in the allocation order because it doesn't interfere with any s-registers. llvm-svn: 137133
Diffstat (limited to 'llvm/lib/Target')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud