Fix regrename compare-debug issue
Bernd Schmidt
bschmidt@redhat.com
Mon May 9 09:44:00 GMT 2016
On 05/05/2016 09:02 AM, Eric Botcazou wrote:
>> When scanning addresses inside a debug insn, we shouldn't use normal
>> base/index classes. This shows as a compare-debug issue on Alpha, where
>> INDEX_REG_CLASS is NO_REGS, and this prevented a chain from being
>> renamed with debugging turned on.
>>
>> Uros has reported that this patch resolves the issues he was seeing on
>> Alpha, and I've bootstrapped and tested it on x86_64-linux. Ok?
>
> OK, thanks. It might worthwhile to add a sentence somewhere (maybe at the end
> of the head comment of the file) documenting the special treatment applied to
> debug insns during the pass.
Committed with the extra hunk below.
Bernd
@@ -61,7 +61,10 @@
5. If a renaming register has been found, it is substituted in
the chain.
Targets can parameterize the pass by specifying a preferred class
for the
- renaming register for a given (super)class of registers to be
renamed. */
+ renaming register for a given (super)class of registers to be renamed.
+
+ DEBUG_INSNs are treated specially, in particular registers occurring
inside
+ them are treated as requiring ALL_REGS as a class. */
#if HOST_BITS_PER_WIDE_INT <= MAX_RECOG_OPERANDS
#error "Use a different bitmap implementation for untracked_operands."
More information about the Gcc-patches
mailing list