[GOOGLE] Do not partition the cold/hot sections of a function with "section" attribute

2014-08-06 Thread Yi Yang
This currently puts split sections together again in the specified section and breaks DWARF output. This patch disables the partitioning for such functions. -- 2014-08-06 Yi Yang gcc: * bb-reorder.c (gate_handle_partition_blocks): Add a check for "section" attribute. diff --

[PATCH] Remove a redundant statement in predict.c

2014-08-07 Thread Yi Yang
Remove a redundant assignment "*predictor = PRED_BUILTIN_EXPECT;", since six lines later *predictor is assigned again. -- 2014-08-07 Yi Yang gcc: * predict.c (expr_expected_value_1): Remove the redundant assignment. diff --git gcc/predict.c gcc/predict.c index 835c618..869f

Re: [GOOGLE] Do not partition the cold/hot sections of a function with "section" attribute

2014-08-11 Thread Yi Yang
check !DECL_SECTION_NAME (current_function_decl). On Mon, Aug 11, 2014 at 8:00 AM, Teresa Johnson wrote: > On Fri, Aug 8, 2014 at 3:22 PM, Yi Yang wrote: >> Friendly ping. > > Sorry, was OOO. > > The solution of preventing splitting for named sections is good - but > it loo

Re: [GOOGLE] Do not partition the cold/hot sections of a function with "section" attribute

2014-08-11 Thread Yi Yang
e 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 12:22 PM, Yi Yang wrote: > Thanks for pointing out this! > >

[PATCH] Drop user_defined_section_attribute, directly check DECL_SECTION_NAME instead

2014-08-11 Thread Yi Yang
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 gcc: * bb

Re: [GOOGLE] Do not partition the cold/hot sections of a function with "section" attribute

2014-08-11 Thread Yi Yang
I ported this to trunk. Shall I commit this patch to the Google 4_8/4_9 branches first? On Mon, Aug 11, 2014 at 12:46 PM, Teresa Johnson wrote: > Ok, thanks. This seems reasonable. Can you send the patch to trunk as well? > Teresa > > On Mon, Aug 11, 2014 at 12:35 PM, Yi Yang wro

Re: [PATCH] Drop user_defined_section_attribute, directly check DECL_SECTION_NAME instead

2014-08-11 Thread Yi Yang
Sorry, it is a typo :( Patch v2: -- 2014-08-11 Yi Yang 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

[GOOGLE] Fix the bug where implicit section names prevents function splitting

2014-08-13 Thread Yi Yang
This bug is caused by my last patch, which did not differentiate between explicit section names (via attributes) and implicit section names (via -ffunction-section). This patch fixes that. -- diff --git gcc/bb-reorder.c gcc/bb-reorder.c index 8f8c420..2115b01 100644 --- gcc/bb-reorder.c +++ gcc/

Re: [GOOGLE] Fix the bug where implicit section names prevents function splitting

2014-08-14 Thread Yi Yang
P(NODE) \ + (DECL_SECTION_NAME(NODE) != NULL_TREE \ + && !DECL_HAS_IMPLICIT_SECTION_NAME_P(NODE)) + extern tree decl_debug_expr_lookup (tree); extern void decl_debug_expr_insert (tree, tree); -- On Thu, Aug 14, 2014 at 11:25 AM, Teresa Johnson wrote: > On Wed, Aug 13, 2014 at 9:03 PM, Yi Yang

Re: [GOOGLE] Fix the bug where implicit section names prevents function splitting

2014-08-14 Thread Yi Yang
Thank you. I fixed the typo and committed. On Thu, Aug 14, 2014 at 1:49 PM, Teresa Johnson wrote: > On Thu, Aug 14, 2014 at 1:46 PM, Yi Yang wrote: >> Patch v2. >> >> Trunk no longer set SECTION_NAME for implicit section names, so this >> probably does not apply

Re: [PATCH] Drop user_defined_section_attribute, directly check DECL_SECTION_NAME instead

2014-08-27 Thread Yi Yang
Ping On Mon, Aug 11, 2014 at 3:10 PM, Yi Yang wrote: > Sorry, it is a typo :( > > Patch v2: > > -- > > 2014-08-11 Yi Yang > > gcc: > * bb-reorder.c (pass_partition_blocks::gate): Replace check. > * c-family/c-common.c (handle_section_attribute): Remove

[GOOGLE] Do not change edge probabilities when propagating edge counts

2014-06-24 Thread Yi Yang
real profile data. Thanks, Yi gcc/ 2014-06-24 Yi Yang * auto-profile.c (afdo_propagate_circuit): Do not change edge probabilities when propagating edge counts diff --git gcc/auto-profile.c gcc/auto-profile.c index 51e318d..74d3d1d 100644 --- gcc/auto-profile.c +++ gcc/auto-profile.c

[GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-27 Thread Yi Yang
Hi, This patch adds an option. When the option is enabled, GCC will add a record about it in an elf section called ".gnu.switches.text.branch.annotation" for every branch. gcc/ 2014-06-27 Yi Yang * auto-profile.c: Main comparison and reporting logic. * cfg-flags.d

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-27 Thread Yi Yang
On Fri, Jun 27, 2014 at 12:18 PM, Andi Kleen wrote: > Yi Yang writes: > >> Hi, >> >> This patch adds an option. When the option is enabled, GCC will add a >> record about it in an elf section called >> ".gnu.switches.text.branch.annotation" for eve

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-30 Thread Yi Yang
I refactored the code and added comments. A bug (prematurely breaking from a loop) was fixed during the refactoring. (My last mail was wrongly set to HTML instead of plain text. I apologize for that.) 2014-06-30 Yi Yang * auto-profile.c (get_locus_information

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-30 Thread Yi Yang
> > Dehao > > > On Mon, Jun 30, 2014 at 1:36 PM, Yi Yang wrote: >> >> I refactored the code and added comments. A bug (prematurely breaking >> from a loop) was fixed during the refactoring. >> >> (My last mail was wrongly set to HTML instead of plain

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-30 Thread Yi Yang
On Mon, Jun 30, 2014 at 2:12 PM, Dehao Chen wrote: > Let's use %d to replace %f (manual conversion, let's do xx%). > > Dehao > > On Mon, Jun 30, 2014 at 2:06 PM, Yi Yang wrote: >> Fixed. >> >> Also, I spotted some warnings caused by me using &

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-30 Thread Yi Yang
Fixed. (outputting only the integer percentage) On Mon, Jun 30, 2014 at 2:20 PM, Yi Yang wrote: > This is intermediate result, which is meant to be consumed by further > post-processing. For this reason I'd prefer to put a number without > that percentage sign. > >

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-30 Thread Yi Yang
Instead of storing percentages of the branch probabilities, store them times REG_BR_PROB_BASE. On Mon, Jun 30, 2014 at 3:26 PM, Yi Yang wrote: > Fixed. (outputting only the integer percentage) > > On Mon, Jun 30, 2014 at 2:20 PM, Yi Yang wrote: >> This is intermediate result, wh

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-30 Thread Yi Yang
this > line. > > Dehao > > On Mon, Jun 30, 2014 at 4:26 PM, Yi Yang wrote: >> Instead of storing percentages of the branch probabilities, store them >> times REG_BR_PROB_BASE. >> >> On Mon, Jun 30, 2014 at 3:26 PM, Yi Yang wrote: >>> Fixed. (outputting onl

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-30 Thread Yi Yang
Done. On Mon, Jun 30, 2014 at 5:20 PM, Dehao Chen wrote: > For get_locus_information, can you cal get_inline_stack and directly use its > output to get the function name instead? > > Dehao > > > On Mon, Jun 30, 2014 at 4:47 PM, Yi Yang wrote: >> >> Removed fill_

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-06-30 Thread Yi Yang
Fixed a style error (missing a space before a left parenthesis) On Mon, Jun 30, 2014 at 5:41 PM, Yi Yang wrote: > Done. > > On Mon, Jun 30, 2014 at 5:20 PM, Dehao Chen wrote: >> For get_locus_information, can you cal get_inline_stack and directly use its >> output to

Re: [GOOGLE] Report the difference between profiled and guessed or annotated branch probabilities.

2014-07-01 Thread Yi Yang
ion. On Mon, Jun 30, 2014 at 5:42 PM, Yi Yang wrote: > Fixed a style error (missing a space before a left parenthesis) > > > On Mon, Jun 30, 2014 at 5:41 PM, Yi Yang wrote: >> Done. >> >> On Mon, Jun 30, 2014 at 5:20 PM, Dehao Chen wrote: >>> For get_locus_inf

[PATCH] Rewrite edge flag checking statements to prevent problem with new flags

2014-07-16 Thread Yi Yang
There are a few if statements in cfgrtl.c that are very fragile in the sense that introducing an irrelevant edge flag breaks things. This patch rewrites them to avoid such breakage. -- 2014-07-16 Yi Yang gcc: * cfgrtl.c (rtl_verify_edges, purge_dead_edges): Rewrite certain if statements

Re: FDO and source changes

2014-07-23 Thread Yi Yang
It's worth noting that merely changing the hash function from crc32 to something that's 64 bit long is enough to make sure collisions does not happen. Maybe it's worth the trouble? On Wed, Jul 23, 2014 at 10:42 AM, Xinliang David Li wrote: > > On Tue, Jul 22, 2014 at 8:14 PM, Jeff Law wrote: > >

Re: [PATCH] Rewrite edge flag checking statements to prevent problem with new flags

2014-07-28 Thread Yi Yang
t 8:16 PM, Jeff Law wrote: > On 07/16/14 12:41, Yi Yang wrote: >> >> There are a few if statements in cfgrtl.c that are very fragile in the >> sense that introducing an irrelevant edge flag breaks things. >> >> This patch rewrites them to avoid such breakage