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