Only save callee-saved registers that are used (#293)

* Only save callee-saved registers that are actually being used.

* Rename AllocatableSet to RegisterSet

* Style cleanup and small renames for readability.

* Adjust x86 prologue-epilogue test to account for callee-saved register optimization.

* Add more tests for prologue-epilogue optimizations.
This commit is contained in:
Tyler McMullen
2018-04-03 14:44:12 -07:00
committed by Dan Gohman
parent 0948ca9963
commit 775c674b38
15 changed files with 310 additions and 123 deletions

View File

@@ -3,7 +3,7 @@
use super::registers::{FPR, GPR};
use ir;
use isa::RegClass;
use regalloc::AllocatableSet;
use regalloc::RegisterSet;
use settings as shared_settings;
/// Legalize `sig`.
@@ -21,6 +21,6 @@ pub fn regclass_for_abi_type(ty: ir::Type) -> RegClass {
}
/// Get the set of allocatable registers for `func`.
pub fn allocatable_registers(_func: &ir::Function) -> AllocatableSet {
pub fn allocatable_registers(_func: &ir::Function) -> RegisterSet {
unimplemented!()
}