Recent submissions

Comment · 1 month ago
Comment · 4 years ago
Just skimmed, central idea is to linear scan in reverse?
Comment · 4 years ago
Comment · 8 years ago
Small typo:

    --- before      2018-01-31 17:12:13.626560688 -0800
    +++ after       2018-01-31 17:12:17.494580179 -0800
    @@ -1 +1 @@
    -uint32_t buf = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, fb, 0);
    +uint32_t *buf = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, fb, 0);
Comment · 9 years ago
Sorry to sound stupid, but how is that exponential? Isn't it O(mn) where m = number of floors and n = number of shafts?

EDIT: Unless there's some dependence between m and n, like if taller buildings always need more shafts or something.

Comment · 9 years ago
Small typo: "hunt-and-pack" should be "hunt-and-peck."
Comment · 9 years ago
Doesn't `let x = xs[i]` immutably borrow from xs? So for the duration of x's lifetime (which is the entire for-body block), xs cannot be changed and therefore its length must remain the same.

Though this might be information that rustc knows about but not LLVM.

Comment · 9 years ago
Comment · 9 years ago
How do you move up towards exit?
Comment · 9 years ago
The point of hoisting towards entry is to reduce code size, as the changelog indicates. It's safe to hoist the expression from program points P_{0..i..n-1} to some point Q that dominates all P_i if the expression is available at each P_i. That reduces the number of occurrences by n - 1. It's a basic corollary of PRE.

This is identical to what LLVM's load-store motion does for loads, except for all expressions and not just loads.

Comment · 9 years ago

  It attempts to move evaluation of expressions executed on all paths to the function *exit* as early as possible, which helps primarily for code size, but can be useful for speed of generated code as well. [Emphasis added.]
Typo? PRE hoists upwards, so it would make sense to move closer to entry, not exit.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton