diff mbox series

[committed] Adjust rtx_costs for h8300

Message ID bafddb71-5993-eea4-8d5b-ab74cbd28654@redhat.com
State New
Headers show
Series [committed] Adjust rtx_costs for h8300 | expand

Commit Message

Jeff Law Nov. 23, 2020, 8:10 p.m. UTC
So the primary purpose of this patch is to make it easier to write tests
for removal of useless test/compare insns on the H8.



In simplest terms the costing model in the H8 port tends to encourage
changing something like

  x = y + 4;
  if (x == 0)

into

  x = y + 4;
  if (y == -4)

This is a marginal de-optimization on the H8.  So fixing it makes the
code ever-so-slightly better in isolation.   Fixing this also improves
redundant test/compare elimination and makes writing tests for redundant
test/compare elimination far easier.



   gcc/
            * config/h8300/h8300.c (h8300_rtx_costs): Handle the various
            comparison rtx codes too.



Committed to the trunk.

Jeff
diff mbox series

Patch

diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 89cd793277a..31f7805f057 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -1205,6 +1205,16 @@  h8300_rtx_costs (rtx x, machine_mode mode ATTRIBUTE_UNUSED, int outer_code,
       return true;
 
     case COMPARE:
+    case NE:
+    case EQ:
+    case GE:
+    case GT:
+    case LE:
+    case LT:
+    case GEU:
+    case GTU:
+    case LEU:
+    case LTU:
       if (XEXP (x, 1) == const0_rtx)
 	*total = 0;
       return false;