Color EBB arguments.

When coloring registers for a branch instruction, also make sure that
the values passed as EBB arguments are in the registers expected by the
EBB.

The first time a branch to an EBB is processed, assign the EBB arguments
to the registers where the branch arguments already reside so no
regmoves are needed.
This commit is contained in:
Jakob Stoklund Olesen
2017-06-27 12:59:23 -07:00
parent c24f64de3b
commit 1d20c92ffe
6 changed files with 183 additions and 68 deletions

View File

@@ -8,7 +8,7 @@ use ir::StackSlot;
use std::fmt;
/// Value location.
#[derive(Copy, Clone, Debug)]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum ValueLoc {
/// This value has not been assigned to a location yet.
Unassigned,