Do we need branch prediction?

By: ananon (whhhyy.delete@this.trashcan8765.com), August 25, 2022 12:56 am
Room: Moderated Discussions
Mark Roulo (nothanks.delete@this.xxx.com) on August 24, 2022 4:25 pm wrote:
> Kara (karaardalan.delete@this.gmail.com) on August 24, 2022 2:07 pm wrote:
> >
> > Since like my second year programming I stopped writing branched code totally,
> > few tens of thousands lines of code in, I haven't encounter anything that
> > intrinsically requires speculative branch prediction, like logically.
> >
> > But I write only numes.
> >
> > Is there any program that can't be written without a branching that can't
> > be rephrased (literally, all that is is rephrasing) into branchless?
> >
> > Mind risc-v don't offer BPU, there's extensions but not in the requirements.
>
> How do you write code to do one thing if a condition holds and another thing if the condition doesn't hold?
>
> Example:

> if (b)
> printf("Hello");
> else
> printf("Goodbye");
>
> I'll note that the conditional operator (?) is a branch.
>
>

funct_ptr action[2] = {function1, function2};

action[condition == x]();
Theoretically you could program anything without branches, but it's not worth doing so in practice with regards to hassle and performance. Especially not because in general you are better off letting the compiler do the obfuscating optimization, and decide when it'd help performance. You only need to actively avoid branches when you'd like your code to be vectorized by the compiler (though you can't use above method).

How you write code is extremely important, because it has to be read and understood by both humans and compilers. Aiming for clean and straightforward code whenever possible should be your priority, not to try doing micro-optimizations while writing functional code.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Do we need branch prediction?Kara2022/08/24 02:07 PM
  Do we need branch prediction?Rayla2022/08/24 03:04 PM
  Do we need branch prediction?Mark Roulo2022/08/24 04:25 PM
    Do we need branch prediction?Paul A. Clayton2022/08/24 06:28 PM
      Do we need branch prediction?Anon2022/08/24 06:52 PM
    Do we need branch prediction?rwessel2022/08/24 06:40 PM
    Do we need branch prediction?ananon2022/08/25 12:56 AM
      Do we need branch prediction?Carlie Coats2022/08/25 07:39 AM
        OT: You wanted rather than Mark Roulo2022/08/25 09:57 AM
          OT: You wanted "pre" rather than "code" rather than Mark Roulo2022/08/25 09:57 AM
            OT: You wanted "pre" rather than "code" rather than Carlie Coats2022/08/25 11:43 AM
    Do we need branch prediction?Kevin G2022/08/25 08:47 AM
      Do we need branch prediction?rwessel2022/08/25 11:10 AM
          Do we need branch prediction?rwessel2022/08/26 10:37 AM
  Do we need branch prediction?Geoff Langdale2022/08/24 07:18 PM
  Do we need branch prediction?Adrian2022/08/25 12:58 AM
  Do we need branch prediction?Brendan2022/08/25 07:54 AM
    Do we need branch prediction?Anon42022/08/25 11:45 AM
      Do we need branch prediction?anon22022/08/25 09:08 PM
  Predicable branching patterns (aykm; )Kara2022/08/27 01:00 PM
    Predicable branching patterns (aykm; )Jukka Larja2022/08/27 11:38 PM
    Predicable branching patterns (aykm; )Eric Fink2022/08/28 01:22 AM
      Predicable branching patterns (aykm; )Doug S2022/08/28 10:17 AM
    Predicable branching patterns (aykm; )---2022/08/28 02:16 PM
      Predicable branching patterns (aykm; )Anon2022/08/28 02:35 PM
  Q: Do we need branch prediction? A: We don't need it, but....2022/08/29 02:17 PM
    Quantum stuff.Kara2022/08/29 03:01 PM
      Q: Do we need branch prediction? A: We don't need it, but....2022/08/30 11:48 AM
    "Quantum Woo" (hint; that's NOT how it works) (NT)anonymous22022/08/29 04:19 PM
      Q: Do we need branch prediction? A: We don't need it, but....2022/08/30 12:14 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell tangerine? 🍊