OK for google-4_8 after testing.

Thanks,
Dehao

On Tue, Jul 1, 2014 at 1:04 PM, Yi Yang <ahyan...@google.com> wrote:
> Per offline discussion,
> * do not export function start line number. Instead, hash branch
> offset and discriminator into the "function_hash" (renamed to just
> "hash" to clarify)
> * protect all operations about the new EDGE_PREDICTED_BY_EXPECT flag
> with flag_check_branch_annotation.
>
> On Mon, Jun 30, 2014 at 5:42 PM, Yi Yang <ahyan...@google.com> wrote:
>> Fixed a style error (missing a space before a left parenthesis)
>>
>>
>> On Mon, Jun 30, 2014 at 5:41 PM, Yi Yang <ahyan...@google.com> wrote:
>>> Done.
>>>
>>> On Mon, Jun 30, 2014 at 5:20 PM, Dehao Chen <de...@google.com> 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 <ahyan...@google.com> wrote:
>>>>>
>>>>> Removed fill_invalid_locus_information. Change the function call to a
>>>>> return statement.
>>>>>
>>>>> On Mon, Jun 30, 2014 at 4:42 PM, Dehao Chen <de...@google.com> wrote:
>>>>> > There is no need for fill_invalid_locus_information, just initialize
>>>>> > every field to 0, and if it's unknown location, no need to output this
>>>>> > line.
>>>>> >
>>>>> > Dehao
>>>>> >
>>>>> > On Mon, Jun 30, 2014 at 4:26 PM, Yi Yang <ahyan...@google.com> 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 <ahyan...@google.com> wrote:
>>>>> >>> Fixed. (outputting only the integer percentage)
>>>>> >>>
>>>>> >>> On Mon, Jun 30, 2014 at 2:20 PM, Yi Yang <ahyan...@google.com> 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.
>>>>> >>>>
>>>>> >>>> I'd just output (int)(probability*100000000+0.5). Does this look good
>>>>> >>>> for you? Or maybe change that to 1000000 since six digits are more
>>>>> >>>> than enough. I don't see a reason to intentionally drop precision
>>>>> >>>> though.
>>>>> >>>>
>>>>> >>>> Note that for the actual probability, the best way to store it is to
>>>>> >>>> store the edge count, since the probability is just
>>>>> >>>> edge_count/bb_count. But this causes disparity in the formats of the
>>>>> >>>> two probabilities.
>>>>> >>>>
>>>>> >>>> On Mon, Jun 30, 2014 at 2:12 PM, Dehao Chen <de...@google.com> 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 <ahyan...@google.com>
>>>>> >>>>> wrote:
>>>>> >>>>>> Fixed.
>>>>> >>>>>>
>>>>> >>>>>> Also, I spotted some warnings caused by me using "%lf"s in
>>>>> >>>>>> snprintf().
>>>>> >>>>>> I changed these to "%f" and tested.
>>>>> >>>>>>
>>>>> >>>>>>
>>>>> >>>>>> On Mon, Jun 30, 2014 at 1:49 PM, Dehao Chen <de...@google.com>
>>>>> >>>>>> wrote:
>>>>> >>>>>>> You don't need extra space to store file name in
>>>>> >>>>>>> locus_information_t.
>>>>> >>>>>>> Use pointer instead.
>>>>> >>>>>>>
>>>>> >>>>>>> Dehao
>>>>> >>>>>>>
>>>>> >>>>>>>
>>>>> >>>>>>> On Mon, Jun 30, 2014 at 1:36 PM, Yi Yang <ahyan...@google.com>
>>>>> >>>>>>> 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 text. I
>>>>> >>>>>>>> apologize for that.)
>>>>> >>>>>>>>
>>>>> >>>>>>>> 2014-06-30  Yi Yang  <ahyan...@google.com>
>>>>> >>>>>>>>
>>>>> >>>>>>>>     * auto-profile.c (get_locus_information)
>>>>> >>>>>>>>     (fill_invalid_locus_information,
>>>>> >>>>>>>> record_branch_prediction_results)
>>>>> >>>>>>>>     (afdo_calculate_branch_prob, afdo_annotate_cfg): Main
>>>>> >>>>>>>> comparison and
>>>>> >>>>>>>>     reporting logic.
>>>>> >>>>>>>>     * cfg-flags.def (PREDICTED_BY_EXPECT): Add an extra flag
>>>>> >>>>>>>> representing
>>>>> >>>>>>>>     an edge's probability is predicted by annotations.
>>>>> >>>>>>>>     * predict.c (combine_predictions_for_bb): Set up the extra
>>>>> >>>>>>>> flag on an
>>>>> >>>>>>>>     edge when appropriate.
>>>>> >>>>>>>>     * common.opt (fcheck-branch-annotation)
>>>>> >>>>>>>>     (fcheck-branch-annotation-threshold=): Add an extra GCC
>>>>> >>>>>>>> option to turn
>>>>> >>>>>>>>     on report
>>>>> >>>>>>>>
>>>>> >>>>>>>> On Fri, Jun 27, 2014 at 3:20 PM, Xinliang David Li
>>>>> >>>>>>>> <davi...@google.com> wrote:
>>>>> >>>>>>>> > Hi Yi,
>>>>> >>>>>>>> >
>>>>> >>>>>>>> > 1) please add comments before new functions as documentation --
>>>>> >>>>>>>> > follow
>>>>> >>>>>>>> > the coding style guideline
>>>>> >>>>>>>> > 2) missing documenation on the new flags (pointed out by
>>>>> >>>>>>>> > Gerald)
>>>>> >>>>>>>> > 3) Please refactor the check code in afdo_calculate_branch_prob
>>>>> >>>>>>>> > into a
>>>>> >>>>>>>> > helper function
>>>>> >>>>>>>> >
>>>>> >>>>>>>> > 4) the change log is not needed for google branches, but if
>>>>> >>>>>>>> > provided,
>>>>> >>>>>>>> > the format should follow the style guide (e.g, function name in
>>>>> >>>>>>>> > () ).
>>>>> >>>>>>>> >
>>>>> >>>>>>>> > David
>>>>> >>>>>>>> >
>>>>> >>>>>>>> >
>>>>> >>>>>>>> > On Fri, Jun 27, 2014 at 11:07 AM, Yi Yang <ahyan...@google.com>
>>>>> >>>>>>>> > wrote:
>>>>> >>>>>>>> >> 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 <ahyan...@google.com>
>>>>> >>>>>>>> >>
>>>>> >>>>>>>> >>         * auto-profile.c: Main comparison and reporting logic.
>>>>> >>>>>>>> >>         * cfg-flags.def: Add an extra flag representing an
>>>>> >>>>>>>> >> edge's
>>>>> >>>>>>>> >> probability is predicted by annotations.
>>>>> >>>>>>>> >>         * predict.c: Set up the extra flag on an edge when
>>>>> >>>>>>>> >> appropriate.
>>>>> >>>>>>>> >>         * common.opt: Add an extra GCC option to turn on this
>>>>> >>>>>>>> >> report mechanism
>>>>
>>>>

Reply via email to