Add a transformation pass which removes phi nodes to which it can demonstrate

that only one value ever flows.  Has been observed to improve generated code
run times by up to 8%.  Compilation cost increases by about 0.6%, but up to 7%
total cost has been observed to be saved; iow it can be a significant win in
terms of compilation time, overall.
This commit is contained in:
Julian Seward
2020-05-06 09:08:14 +02:00
committed by julian-seward1
parent b65bd1c8a2
commit 0bc0503f3f
4 changed files with 408 additions and 0 deletions

View File

@@ -62,6 +62,7 @@ define_passes! {
gvn: "Global value numbering",
licm: "Loop invariant code motion",
unreachable_code: "Remove unreachable blocks",
remove_constant_phis: "Remove constant phi-nodes",
regalloc: "Register allocation",
ra_liveness: "RA liveness analysis",