The following patch fixes

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64157


After calling target_reinit from save_target_globals for switchable targets (as ppc), a lot of ira data (register sets, classes etc) become undefined. After that ira-costs.c crashes when the undefined data are used.

  The patch was successfully bootstrapped and tested on x86-64.

  Ok to commit to the trunk?

2014-12-05  Vladimir Makarov  <vmaka...@redhat.com>

        PR rtl-optimization/64157
        * toplev.c (target_reinit): Call ira_init.
Index: toplev.c
===================================================================
--- toplev.c    (revision 218378)
+++ toplev.c    (working copy)
@@ -1888,6 +1888,8 @@ target_reinit (void)
   /* This invokes target hooks to set fixed_reg[] etc, which is
      mode-dependent.  */
   init_regs ();
+  /* Set IRA data depended on target parameters.  */
+  ira_init ();
 
   /* Reinitialize lang-dependent parts.  */
   lang_dependent_init_target ();

Reply via email to