diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-05-10 23:27:10 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-05-10 23:27:10 +0000 |
commit | c08df9e5fdce2856697fbbe52102b4fcb23c4304 (patch) | |
tree | b1447d90b8e47ae4ace3c965362e2afcdf55855b /llvm/lib/Support/Unix/PathV2.inc | |
parent | 370f5fd20ada3bed37cc1c97fe5487cdcd8d420c (diff) | |
download | bcm5719-llvm-c08df9e5fdce2856697fbbe52102b4fcb23c4304.tar.gz bcm5719-llvm-c08df9e5fdce2856697fbbe52102b4fcb23c4304.zip |
Compute secondary sub-registers.
The sub-registers explicitly listed in SubRegs in the .td files form a
tree. In a complicated register bank, it is possible to have
sub-register relationships across sub-trees. For example, the ARM NEON
double vector Q0_Q1 is a tree:
Q0_Q1 = [Q0, Q1], Q0 = [D0, D1], Q1 = [D2, D3]
But we also define the DPair register D1_D2 = [D1, D2] which is fully
contained in Q0_Q1.
This patch teaches TableGen to find such sub-register relationships, and
assign sub-register indices to them. In the example, TableGen will
create a dsub_1_dsub_2 sub-register index, and add D1_D2 as a
sub-register of Q0_Q1.
This will eventually enable the coalescer to handle copies of skewed
sub-registers.
llvm-svn: 156587
Diffstat (limited to 'llvm/lib/Support/Unix/PathV2.inc')
0 files changed, 0 insertions, 0 deletions