I was looking at H8 assembly code recently and noticed we had unnecessary extensions.  As it turns out we never enabled redundant extension elimination on the H8.  This patch fixes that oversight (and was the trigger for the failure fixed my the prior patch).


Regression tested along with a bit of other in-progress work. Committing to the trunk.


Jeff
commit 566c5f1aaae120d2283103e68ecf1c1a83dd4459
Author: Jeff Law <jeffreya...@gmail.com>
Date:   Mon Oct 17 19:28:00 2022 -0400

    Enable REE for H8
    
    I was looking at H8 assembly code recently and noticed we had unnecessary
    extensions.  As it turns out we never enabled redundant extension 
elimination
    on the H8.  This patch fixes that oversight (and was the trigger for the
    failure fixed my the prior patch).
    
    gcc/common
    
            * common/config/h8300/h8300-common.cc 
(h8300_option_optimization_table):
            Enable redundant extension elimination at -O2 and above.

diff --git a/gcc/common/config/h8300/h8300-common.cc 
b/gcc/common/config/h8300/h8300-common.cc
index bfbda22006b..22e2cfcb7b2 100644
--- a/gcc/common/config/h8300/h8300-common.cc
+++ b/gcc/common/config/h8300/h8300-common.cc
@@ -32,6 +32,8 @@ static const struct default_options 
h8300_option_optimization_table[] =
        and/or variable-cycle branches where (cycle count taken !=
        cycle count not taken).  */
     { OPT_LEVELS_ALL, OPT_freorder_blocks, NULL, 0 },
+    /* Enable redundant extension instructions removal at -O2 and higher.  */
+    { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 },
     { OPT_LEVELS_NONE, 0, NULL, 0 }
   };
 

Reply via email to