regalloc/debug: fix buggy print_hard_reg_set
authorHans-Peter Nilsson <hp@axis.com>
Tue, 11 Feb 2020 17:16:40 +0000 (18:16 +0100)
committerHans-Peter Nilsson <hp@axis.com>
Tue, 11 Feb 2020 17:16:40 +0000 (18:16 +0100)
commita5e3dd5d2e0073f585fa97d6b961752432c3d122
tree4b74cbfe4e786b900513a0e9c6a27e81fc14a10e
parentc0e05505ffd58d3d0ed9c22e0cc6b954e25c8b1b
regalloc/debug: fix buggy print_hard_reg_set

* ira-conflicts.c (print_hard_reg_set): Correct output for sets
including FIRST_PSEUDO_REGISTER - 1.
* ira-color.c (print_hard_reg_set): Ditto.

Before, for a target with FIRST_PSEUDO_REGISTER 20, you'd get "19-18"
for (1<<19).  For (1<<18)|(1<<19), you'd get "18".

I was using ira-conflicts.c:print_hard_reg_set with a local
patch to gdbinit.in in a debug-session, and noticed the
erroneous output.  I see there's an almost identical function in
ira-color.c and on top of that, there's another function by the
same name and with similar semantics in sel-sched-dump.c, but
the last one doesn't try to print ranges.
gcc/ChangeLog
gcc/ira-color.c
gcc/ira-conflicts.c