DEV Community

pmgzo
pmgzo

Posted on

Branchless programming

Hi folks, I hope you're doing well.
Today I wanted to talk about Branchless programming.
Basically at a binary level, the compiler builds branches according to instructions.

What creates those branches are the if, else, else if statements. Otherwise any conditional instructions that create those branches.

A simple example (of C code) of that is:

int x = 5;

if (x > 10) {
  // do stuff
}
else {
  // do something else
}
Enter fullscreen mode Exit fullscreen mode

Basically in this example your processor will put the instruction set in their cache memory when arriving to this instruction.

If the condition is not valid, it will unload the instructions within the if block and load those in else block

Which cost time computation because of the load and unload process.

Maybe, the compiler/processor have changed but at least this is what I learned about Branchless programming

Branchless programming is a way to code your program to avoid branches. Basically it's a way to trick the compiler to avoid additional instruction. Basically it is said that's better to do ternary return statement instead of the previous approach:

int your_condition(int x) {

  return x > 10 ? call_function1(x) : call_function2(x);
}
Enter fullscreen mode Exit fullscreen mode

Thanks for reading, and see you in the next one 👊

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more