This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix regrename compare-debug issue




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."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]