]> git.ipfire.org Git - thirdparty/valgrind.git/commit
Cherry pick 83cabd32492e6d19d483a63522e4e874fa64b617 from master.
authorIvo Raisr <ivosh@ivosh.net>
Fri, 22 Sep 2017 20:50:11 +0000 (22:50 +0200)
committerIvo Raisr <ivosh@ivosh.net>
Thu, 12 Oct 2017 22:46:17 +0000 (00:46 +0200)
commit90e405b81b8f49121240db713620a173b988abfb
tree63295302a0b0ed26f70f7ddcdeac032f707144db
parentf37548612d0380adee6d446d4048ff608bb9d836
Cherry pick 83cabd32492e6d19d483a63522e4e874fa64b617 from master.

Refactor tracking of MOV coalescing.

Reg<->Reg MOV coalescing status is now a part of the HRegUsage.
This allows register allocation to query it two times without incurring
a performance penalty. This in turn allows to better keep track of
vreg<->vreg MOV coalescing so that all vregs in the coalesce chain
get the effective |dead_before| of the last vreg.

A small performance improvement has been observed because this allows
to coalesce even spilled vregs (previously only assigned ones).
18 files changed:
VEX/priv/host_amd64_defs.c
VEX/priv/host_amd64_defs.h
VEX/priv/host_arm64_defs.c
VEX/priv/host_arm64_defs.h
VEX/priv/host_arm_defs.c
VEX/priv/host_arm_defs.h
VEX/priv/host_generic_reg_alloc3.c
VEX/priv/host_generic_regs.c
VEX/priv/host_generic_regs.h
VEX/priv/host_mips_defs.c
VEX/priv/host_mips_defs.h
VEX/priv/host_ppc_defs.c
VEX/priv/host_ppc_defs.h
VEX/priv/host_s390_defs.c
VEX/priv/host_s390_defs.h
VEX/priv/host_x86_defs.c
VEX/priv/host_x86_defs.h
VEX/priv/main_main.c