gen-pass-instances.awk is sensitive to the order in which passes are added...
authorGeorg-Johann Lay <avr@gjlay.de>
Wed, 26 Oct 2016 09:46:44 +0000 (09:46 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Wed, 26 Oct 2016 09:46:44 +0000 (09:46 +0000)
gen-pass-instances.awk is sensitive to the order in which
passes are added; passes that appear later have to be added first.
PR target/71676
PR target/71678
* config/avr/avr-passes.def: Swap order of directives for
gen-pass-instances.awk.

From-SVN: r241547

gcc/ChangeLog
gcc/config/avr/avr-passes.def

index 465761fb732713ce96425770a5691728eae66d9f..5a93e88a97b6b61cfdc8121e5d3209402f5145a3 100644 (file)
@@ -1,3 +1,13 @@
+2016-10-26  Georg-Johann Lay  <avr@gjlay.de>
+
+       gen-pass-instances.awk is sensitive to the order in which
+       passes are added; passes that appear later have to be added first.
+
+       PR target/71676
+       PR target/71678
+       * config/avr/avr-passes.def: Swap order of directives for
+       gen-pass-instances.awk.
+
 2016-10-25  Jeff Law  <law@redhat.com>
 
        * config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
index b536a22ddd6adcde2b70464ed9e48f08566ba418..4ca67b1235d8ee4a537b02fd83c4385707de208c 100644 (file)
    along with GCC; see the file COPYING3.  If not see
    <http://www.gnu.org/licenses/>.  */
 
+/* FIXME: We have to add the last pass first, otherwise
+          gen-pass-instances.awk won't work as expected. */
+          
+/* This avr-specific pass (re)computes insn notes, in particular REG_DEAD
+   notes which are used by `avr.c::reg_unused_after' and branch offset
+   computations.  These notes must be correct, i.e. there must be no
+   dangling REG_DEAD notes; otherwise wrong code might result, cf. PR64331.
+
+   DF needs (correct) CFG, hence right before free_cfg is the last
+   opportunity to rectify notes.  */
+
+INSERT_PASS_BEFORE (pass_free_cfg, 1, avr_pass_recompute_notes);
+
 /* casesi uses a SImode switch index which is quite costly as most code will
    work on HImode or QImode.  The following pass runs right after .expand and
    tries to fix such situations by operating on the original mode.  This
    insns withaout any insns in between.  */
 
 INSERT_PASS_AFTER (pass_expand, 1, avr_pass_casesi);
-
-/* This avr-specific pass (re)computes insn notes, in particular REG_DEAD
-   notes which are used by `avr.c::reg_unused_after' and branch offset
-   computations.  These notes must be correct, i.e. there must be no
-   dangling REG_DEAD notes; otherwise wrong code might result, cf. PR64331.
-
-   DF needs (correct) CFG, hence right before free_cfg is the last
-   opportunity to rectify notes.  */
-
-INSERT_PASS_BEFORE (pass_free_cfg, 1, avr_pass_recompute_notes);