Avoid generating value split instructions.

The legalizer often splits values into parts with the vsplit and
isplit_lohi instructions. Avoid doing that for values that are already
defined by the corresponding concatenation instructions.

This reduces the number of instructions created during legalization, and
it simplifies later optimizations. A number of dead concatenation
instructions are left behind. They can be trivially cleaned up by a dead
code elimination pass.
This commit is contained in:
Jakob Stoklund Olesen
2017-03-21 13:25:08 -07:00
parent a44a4d2718
commit 22334bcb54
5 changed files with 181 additions and 35 deletions

View File

@@ -18,6 +18,7 @@ use ir::condcodes::IntCC;
use isa::{TargetIsa, Legalize};
mod boundary;
mod split;
/// Legalize `func` for `isa`.
///