cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of flag_reorde...
authorJan Hubicka <hubicka@ucw.cz>
Thu, 8 Jun 2017 14:23:43 +0000 (16:23 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 8 Jun 2017 14:23:43 +0000 (14:23 +0000)
* cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
instead of flag_reorder_blocks_and_partition.
* dbxout.c (dbxout_function_end): Likewise.
* dwarf2out.c (gen_subprogram_die): Likewise.
* haifa-sched.c (sched_create_recovery_edges): Likewise.
* hw-doloop.c (reorg_loops): Likewise.
* varasm.c (assemble_start_function,
assemble_end_function): Likewise.
(decide_function_section): Do not check for
flag_reorder_blocks_and_partition.

From-SVN: r249017

gcc/ChangeLog
gcc/cfgrtl.c
gcc/dbxout.c
gcc/dwarf2out.c
gcc/haifa-sched.c
gcc/hw-doloop.c
gcc/varasm.c

index bf4e0952f71f72afe3eef8d69335b50760d5ccc0..d0e14d7b7b9569f70953c7406bc97a8961073b45 100644 (file)
@@ -1,3 +1,16 @@
+2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
+       instead of flag_reorder_blocks_and_partition.
+       * dbxout.c (dbxout_function_end): Likewise.
+       * dwarf2out.c (gen_subprogram_die): Likewise.
+       * haifa-sched.c (sched_create_recovery_edges): Likewise.
+       * hw-doloop.c (reorg_loops): Likewise.
+       * varasm.c (assemble_start_function,
+       assemble_end_function): Likewise.
+       (decide_function_section): Do not check for
+       flag_reorder_blocks_and_partition.
+
 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
 
        * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
index 4e303a61d787369628190bba70bb36c6eb3afd81..623d04f44997cd53f95f331ccbf319938c035515 100644 (file)
@@ -4249,8 +4249,7 @@ cfg_layout_initialize (int flags)
      layout required moving a block from the hot to the cold
      section. This would create an illegal partitioning unless some
      manual fixup was performed.  */
-  gcc_assert (!(crtl->bb_reorder_complete
-               && flag_reorder_blocks_and_partition));
+  gcc_assert (!crtl->bb_reorder_complete || !crtl->has_bb_partition);
 
   initialize_original_copy_tables ();
 
index b5c5a4ff64f39d06acc4a1664b751069f3413555..bb8ca3254c09f5034b3cadb4ab686e292683d19a 100644 (file)
@@ -916,7 +916,7 @@ dbxout_function_end (tree decl ATTRIBUTE_UNUSED)
 
   /* By convention, GCC will mark the end of a function with an N_FUN
      symbol and an empty string.  */
-  if (flag_reorder_blocks_and_partition)
+  if (crtl->has_bb_partition)
     {
       dbxout_begin_empty_stabs (N_FUN);
       dbxout_stab_value_label_diff (crtl->subsections.hot_section_end_label,
index ff1293f08e331f6b9f659243bfd75522862dbc50..2a27ad53aacfeb23ce1f346a05bf05cdfc592f38 100644 (file)
@@ -22152,7 +22152,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
 
       struct function *fun = DECL_STRUCT_FUNCTION (decl);
 
-      if (!flag_reorder_blocks_and_partition)
+      if (!crtl->has_bb_partition)
        {
          dw_fde_ref fde = fun->fde;
          if (fde->dw_fde_begin)
@@ -26472,7 +26472,7 @@ set_cur_line_info_table (section *sec)
     {
       const char *end_label;
 
-      if (flag_reorder_blocks_and_partition)
+      if (crtl->has_bb_partition)
        {
          if (in_cold_section_p)
            end_label = crtl->subsections.cold_section_end_label;
@@ -26514,7 +26514,7 @@ dwarf2out_begin_function (tree fun)
   if (sec != text_section)
     have_multiple_function_sections = true;
 
-  if (flag_reorder_blocks_and_partition && !cold_text_section)
+  if (crtl->has_bb_partition && !cold_text_section)
     {
       gcc_assert (current_function_decl == fun);
       cold_text_section = unlikely_text_section ();
index 1fcc01d04aea6c39072096734c06f09290f3dd67..9632a6d75dbac8e82d131c252c2ffda3cdcb8f48 100644 (file)
@@ -8313,8 +8313,7 @@ sched_create_recovery_edges (basic_block first_bb, basic_block rec,
     /* Partition type is the same, if it is "unpartitioned".  */
     {
       /* Rewritten from cfgrtl.c.  */
-      if (flag_reorder_blocks_and_partition
-         && targetm_common.have_named_sections)
+      if (crtl->has_bb_partition && targetm_common.have_named_sections)
        {
          /* We don't need the same note for the check because
             any_condjump_p (check) == true.  */
index 6190775b3823c1e6b8caa7acbce80b514a9d2cab..09ee6eaf179e9fe7be81760360c55762fd43e86c 100644 (file)
@@ -634,7 +634,7 @@ reorg_loops (bool do_reorder, struct hw_doloop_hooks *hooks)
 
   /* We can't enter cfglayout mode anymore if basic block partitioning
      already happened.  */
-  if (do_reorder && !flag_reorder_blocks_and_partition)
+  if (do_reorder && !crtl->has_bb_partition)
     {
       reorder_loops (loops);
       free_loops (loops);
index 096871d7e969289ff50fda65d654c78d103734d7..fbaebc1b5c024ab1a5792c00f60b4531b552e06d 100644 (file)
@@ -1670,10 +1670,6 @@ decide_function_section (tree decl)
 {
   first_function_block_is_cold = false;
 
-  if (flag_reorder_blocks_and_partition)
-    /* We will decide in assemble_start_function.  */
-    return;
-
  if (DECL_SECTION_NAME (decl))
     {
       struct cgraph_node *node = cgraph_node::get (current_function_decl);
@@ -1711,7 +1707,7 @@ assemble_start_function (tree decl, const char *fnname)
   char tmp_label[100];
   bool hot_label_written = false;
 
-  if (flag_reorder_blocks_and_partition)
+  if (crtl->has_bb_partition)
     {
       ASM_GENERATE_INTERNAL_LABEL (tmp_label, "LHOTB", const_labelno);
       crtl->subsections.hot_section_label = ggc_strdup (tmp_label);
@@ -1746,7 +1742,7 @@ assemble_start_function (tree decl, const char *fnname)
      has both hot and cold sections, because we don't want to re-set
      the alignment when the section switch happens mid-function.  */
 
-  if (flag_reorder_blocks_and_partition)
+  if (crtl->has_bb_partition)
     {
       first_function_block_is_cold = false;
 
@@ -1773,8 +1769,7 @@ assemble_start_function (tree decl, const char *fnname)
   /* Switch to the correct text section for the start of the function.  */
 
   switch_to_section (function_section (decl));
-  if (flag_reorder_blocks_and_partition
-      && !hot_label_written)
+  if (crtl->has_bb_partition && !hot_label_written)
     ASM_OUTPUT_LABEL (asm_out_file, crtl->subsections.hot_section_label);
 
   /* Tell assembler to move to target machine's alignment for functions.  */
@@ -1850,7 +1845,7 @@ assemble_end_function (tree decl, const char *fnname ATTRIBUTE_UNUSED)
 {
 #ifdef ASM_DECLARE_FUNCTION_SIZE
   /* We could have switched section in the middle of the function.  */
-  if (flag_reorder_blocks_and_partition)
+  if (crtl->has_bb_partition)
     switch_to_section (function_section (decl));
   ASM_DECLARE_FUNCTION_SIZE (asm_out_file, fnname, decl);
 #endif
@@ -1861,7 +1856,7 @@ assemble_end_function (tree decl, const char *fnname ATTRIBUTE_UNUSED)
     }
   /* Output labels for end of hot/cold text sections (to be used by
      debug info.)  */
-  if (flag_reorder_blocks_and_partition)
+  if (crtl->has_bb_partition)
     {
       section *save_text_section;