Hacker News new | ask | show | jobs
by steerb 5068 days ago
Using the heap layout, you can sometimes even eliminate branch misspredictions and subsequent (expensive) pipeline flushes.

The basic idea is to allow your compiler to use predicated instructions. Do do this, you have to transform control dependencies (e.g., `if (a > b)`) to data dependencies on index computations (e.g., `j = 2*j + (a > b)`).

For a complete explanation, see http://algo2.iti.kit.edu/sanders/papers/ssss.ps.gz