• 0 Posts
  • 79 Comments
Joined 11 months ago
cake
Cake day: February 1st, 2024

help-circle

  • Now, because this article got a little long, as per a friend’s suggestion, here’s a table of contents:

    Optimization gives us optimal programs

    Branch weights and the CPU’s branch predictor

    -O3 produces much faster code than -O2

    Javascript interpreters JIT at runtime because they don’t know which paths are hot ahead of time

    If you have a compiler, you don’t need an interpreter

    The middle-end is target/platform-independent

    The compiler optimizes for data locality

    -O0 gives you fast compilation

    Templates are slow to compile

    Separate compilation is always worth it

    Why does link-time optimization (LTO) happen at link-time?

    Inlining is useful primarily because it eliminates a call instruction

    The role of the inline keyword

    The best production compiler to study is LLVM

    Undefined behavior only enables optimizations

    The compiler can “simply” define undefined behavior 99% correctness rate is ok



















  • If you want to know what world, look at MMA.

    Brazilian jiu jitsu is basically the only credible form of what most people mean when they say “martial arts” (meaning Asian origin with some kind of progression, often with belts).

    China is so salty that karate can’t survive the age of the Internet they are blackballing it’s critics.

    Search for “bullshido” if you want some egregious examples