On 03/21/2016 02:43 AM, Alan Modra wrote:

+enum valid_equiv { valid_none, valid_combine, valid_reload };
+

Might be worth documenting that each step represents a superset of the previous one.

+         ret = valid_combine;
+         if (! MEM_READONLY_P (memref)
+             && ! RTL_CONST_OR_PURE_CALL_P (insn))
+           return valid_none;
+       }

The gcc style is actually not to have a space after unary "!". None of the code in this file follows that, but I think you may want to change that as you modify things in your patches, and have new code follow the recommended style.

@@ -3536,7 +3557,8 @@ update_equiv_regs (void)
                {
                  /* Note that the statement below does not affect the priority
                     in local-alloc!  */
-                 REG_LIVE_LENGTH (regno) *= 2;
+                 if (note)
+                   REG_LIVE_LENGTH (regno) *= 2;

That's a very suspicious comment. It would be worth testing whether REG_LIVE_LENGTH has any effect on our current register allocation at all, and remove this code if not.

Otherwise looks good for stage 1.


Bernd

Reply via email to