[PATCH] Drop user_defined_section_attribute, directly check DECL_SECTION_NAME instead

Yi Yang ahyangyi@google.com
Wed Aug 27 22:31:00 GMT 2014


Ping

On Mon, Aug 11, 2014 at 3:10 PM, Yi Yang <ahyangyi@google.com> wrote:
> Sorry, it is a typo :(
>
> Patch v2:
>
> --
>
> 2014-08-11  Yi Yang  <ahyangyi@google.com>
>
> gcc:
>     * bb-reorder.c (pass_partition_blocks::gate): Replace check.
>     * c-family/c-common.c (handle_section_attribute): Remove
> user_defined_section_attribute
>     * final.c (rest_of_handle_final): ditto
>     * toplev.c (user_defined_section_attribute): ditto
>     * toplev.h (user_defined_section_attribute): ditto
>
> diff --git gcc/bb-reorder.c gcc/bb-reorder.c
> index 96547c2..7b74887 100644
> --- gcc/bb-reorder.c
> +++ gcc/bb-reorder.c
> @@ -95,7 +95,6 @@
>  #include "expr.h"
>  #include "params.h"
>  #include "diagnostic-core.h"
> -#include "toplev.h" /* user_defined_section_attribute */
>  #include "tree-pass.h"
>  #include "df.h"
>  #include "bb-reorder.h"
> @@ -2671,11 +2670,9 @@ pass_partition_blocks::gate (function *fun)
>       arises.  */
>    return (flag_reorder_blocks_and_partition
>    && optimize
> -  /* See gate_handle_reorder_blocks.  We should not partition if
> -     we are going to omit the reordering.  */
>    && optimize_function_for_speed_p (fun)
>    && !DECL_COMDAT_GROUP (current_function_decl)
> -  && !user_defined_section_attribute);
> +  && !DECL_SECTION_NAME (current_function_decl));
>  }
>
>  unsigned
> diff --git gcc/c-family/c-common.c gcc/c-family/c-common.c
> index acc9a20..967ae2b 100644
> --- gcc/c-family/c-common.c
> +++ gcc/c-family/c-common.c
> @@ -7395,8 +7395,6 @@ handle_section_attribute (tree *node, tree
> ARG_UNUSED (name), tree args,
>
>    if (targetm_common.have_named_sections)
>      {
> -      user_defined_section_attribute = true;
> -
>        if ((TREE_CODE (decl) == FUNCTION_DECL
>     || TREE_CODE (decl) == VAR_DECL)
>    && TREE_CODE (TREE_VALUE (args)) == STRING_CST)
> diff --git gcc/final.c gcc/final.c
> index 304ae2a..3fee226 100644
> --- gcc/final.c
> +++ gcc/final.c
> @@ -4460,8 +4460,6 @@ rest_of_handle_final (void)
>
>    assemble_end_function (current_function_decl, fnname);
>
> -  user_defined_section_attribute = false;
> -
>    /* Free up reg info memory.  */
>    free_reg_info ();
>
> diff --git gcc/toplev.c gcc/toplev.c
> index 88d48c2..07d5e05 100644
> --- gcc/toplev.c
> +++ gcc/toplev.c
> @@ -152,11 +152,6 @@ HOST_WIDE_INT random_seed;
>     the support provided depends on the backend.  */
>  rtx stack_limit_rtx;
>
> -/* True if the user has tagged the function with the 'section'
> -   attribute.  */
> -
> -bool user_defined_section_attribute = false;
> -
>  struct target_flag_state default_target_flag_state;
>  #if SWITCHABLE_TARGET
>  struct target_flag_state *this_target_flag_state = &default_target_flag_state;
> diff --git gcc/toplev.h gcc/toplev.h
> index 1b54578..b0d0ca4 100644
> --- gcc/toplev.h
> +++ gcc/toplev.h
> @@ -53,11 +53,6 @@ extern void target_reinit (void);
>  /* A unique local time stamp, might be zero if none is available.  */
>  extern unsigned local_tick;
>
> -/* True if the user has tagged the function with the 'section'
> -   attribute.  */
> -
> -extern bool user_defined_section_attribute;
> -
>  /* See toplev.c.  */
>  extern int flag_rerun_cse_after_global_opts;
>
> --
>
> On Mon, Aug 11, 2014 at 1:46 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Mon, Aug 11, 2014 at 1:41 PM, Yi Yang <ahyangyi@google.com> wrote:
>>> Replace checking user_defined_section_attribute with directly checking
>>> DECL_SECTION_NAME. The former does not work in the presence of IPA.
>>>
>>> See also: discussion on the same patch in Google branch:
>>> https://gcc.gnu.org/ml/gcc-patches/2014-08/msg00749.html
>>>
>>> --
>>>
>>> 2014-08-11  Yi Yang  <ahyangyi@google.com>
>>>
>>> gcc:
>>>     * bb-reorder.c (pass_partition_blocks::gate): Replace check.
>>>     * c-family/c-common.c (handle_section_attribute): Remove
>>> user_defined_section_attribute
>>>     * final.c (rest_of_handle_final): ditto
>>>     * toplev.c (user_defined_section_attribute): ditto
>>>     * toplev.h (user_defined_section_attribute): ditto
>>>
>>> diff --git gcc/bb-reorder.c gcc/bb-reorder.c
>>> index 96547c2..747831c 100644
>>> --- gcc/bb-reorder.c
>>> +++ gcc/bb-reorder.c
>>> @@ -95,7 +95,6 @@
>>>  #include "expr.h"
>>>  #include "params.h"
>>>  #include "diagnostic-core.h"
>>> -#include "toplev.h" /* user_defined_section_attribute */
>>>  #include "tree-pass.h"
>>>  #include "df.h"
>>>  #include "bb-reorder.h"
>>> @@ -2671,11 +2670,9 @@ pass_partition_blocks::gate (function *fun)
>>>       arises.  */
>>>    return (flag_reorder_blocks_and_partition
>>>    && optimize
>>> -  /* See gate_handle_reorder_blocks.  We should not partition if
>>> -     we are going to omit the reordering.  */
>>>    && optimize_function_for_speed_p (fun)
>>> -  && !DECL_COMDAT_GROUP (current_function_decl)
>>> -  && !user_defined_section_attribute);
>>> +  && !DECL_COMDAT_GROUP (current_function_decl);
>>
>>              ^^^ Is this extra ';' a typo?
>>
>>> +  && !DECL_SECTION_NAME (current_function_decl));
>>>  }
>>>
>>
>>
>>
>> --
>> H.J.



More information about the Gcc-patches mailing list