On Fri, Jun 30, 2017 at 7:18 PM, Segher Boessenkool
<seg...@kernel.crashing.org> wrote:
> On Fri, Jun 30, 2017 at 10:36:27PM +0100, Ramana Radhakrishnan wrote:
>> On Fri, Jun 30, 2017 at 2:36 PM, David Edelsohn <dje....@gmail.com> wrote:
>> > Convert the rs6000 port to use the new API for branch probabilities.
>> >
>> > Okay?
>> >
>> > Thanks, David
>> >
>> > * config/rs6000/rs6000.c (emit_unlikely_jump): Adjust to new branch
>> > probability data type.
>> >
>> > Index: rs6000.c
>> > ===================================================================
>> > --- rs6000.c (revision 249839)
>> > +++ rs6000.c (working copy)
>> > @@ -23514,10 +23514,9 @@
>> >  static void
>> >  emit_unlikely_jump (rtx cond, rtx label)
>> >  {
>> > -  int very_unlikely = REG_BR_PROB_BASE / 100 - 1;
>> >    rtx x = gen_rtx_IF_THEN_ELSE (VOIDmode, cond, label, pc_rtx);
>> >    rtx_insn *insn = emit_jump_insn (gen_rtx_SET (pc_rtx, x));
>> > -  add_int_reg_note (insn, REG_BR_PROB, very_unlikely);
>> > +  add_int_reg_note (insn, REG_BR_PROB, profile_probability::very_unlikely 
>> > ());
>>
>> Hmmm isn't this very unlikely to work :) ?
>>
>> I used this as inspiration to do this for the arm ports but
>> add_int_reg_note expects an integer but very_unlikely returns
>> profile_probability  ...
>
> It probably should be converted using to_reg_br_prob_base ?

The comments in profile-count.h state that this should go away.

We need advice from Honza about the preferred way to transform these idioms.

Thanks, David

Reply via email to