diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-05-19 07:11:37 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-05-19 07:11:37 +0000 |
commit | 837d3ea8155d9e5b75ddcf5fa8f14dac7848eda0 (patch) | |
tree | eb76c88033453d389b51706d4861488d574dcaf2 /gcc/cfgcleanup.c | |
parent | 788bed5117e64471a89b14b4677a118bff8f376d (diff) | |
download | gcc-837d3ea8155d9e5b75ddcf5fa8f14dac7848eda0.tar.gz |
gcc/
* bitmap.c (bitmap_set_range): Handle count==1 specially.
(bitmap_clear_range): Likewise.
* cfgcleanup.c (mark_effect): Use bitmap_clear_range and
bitmap_set_range unconditionally.
* df-problems.c (df_simulate_one_insn_forwards): Likewise.
* df-scan.c (df_mark_reg): Likewise.
* haifa-sched.c (setup_ref_regs): Likewise.
* sched-rgn.c (update_live_1): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223344 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r-- | gcc/cfgcleanup.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 0a6766ba41c..cd12b504e18 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -222,22 +222,15 @@ try_simplify_condjump (basic_block cbranch_block) static bool mark_effect (rtx exp, regset nonequal) { - int regno; rtx dest; switch (GET_CODE (exp)) { /* In case we do clobber the register, mark it as equal, as we know the value is dead so it don't have to match. */ case CLOBBER: - if (REG_P (XEXP (exp, 0))) - { - dest = XEXP (exp, 0); - regno = REGNO (dest); - if (HARD_REGISTER_NUM_P (regno)) - bitmap_clear_range (nonequal, regno, REG_NREGS (dest)); - else - bitmap_clear_bit (nonequal, regno); - } + dest = XEXP (exp, 0); + if (REG_P (dest)) + bitmap_clear_range (nonequal, REGNO (dest), REG_NREGS (dest)); return false; case SET: @@ -248,11 +241,7 @@ mark_effect (rtx exp, regset nonequal) return false; if (!REG_P (dest)) return true; - regno = REGNO (dest); - if (HARD_REGISTER_NUM_P (regno)) - bitmap_set_range (nonequal, regno, REG_NREGS (dest)); - else - bitmap_set_bit (nonequal, regno); + bitmap_set_range (nonequal, REGNO (dest), REG_NREGS (dest)); return false; default: |