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
}
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);
}
Thanks for reading, and see you in the next one π
Top comments (0)