mindleyhilner
Re:Mathematicians Build Long-Awaited Graph Sandwich
on Friday September 18, 2026 @12:38PM (#49756849)
Actual meat: https://arxiv.org/abs/2510.20765
Re:The Solid-State Register Allocator
on Tuesday October 04, 2022 @06:40PM (#33088102)
Just skimmed, central idea is to linear scan in reverse?
Re:A new programming language for high-performance computers
on Friday February 11, 2022 @04:57PM (#30307505)
Re:Programming the Linux Framebuffer
on Wednesday January 31, 2018 @08:13PM (#16279005)
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);
Re:ThyssenKrupp Multi – world’s first rope-free elevator [video]
on Saturday August 05, 2017 @12:40PM (#14936544)
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.
Re:Is the keyboard faster than the mouse?
on Tuesday June 13, 2017 @01:40PM (#14546767)
Small typo: "hunt-and-pack" should be "hunt-and-peck."
Re:Rust Performance Pitfalls
on Thursday June 08, 2017 @07:15PM (#14517924)
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.
Re:GCC 7 Release Series – Changes, New Features, and Fixes
on Sunday April 09, 2017 @01:14PM (#14073273)
It's actually not. It's what GVNHoist does, but not MLSM. MLSM only handles diamonds.
Fine, it's what MLSM aspires to: http://llvm-cs.pcc.me.uk/lib/Transforms/Scalar/MergedLoadSto... (:
Re:GCC 7 Release Series – Changes, New Features, and Fixes
on Sunday April 09, 2017 @01:09PM (#14073242)
How do you move up towards exit?
Re:GCC 7 Release Series – Changes, New Features, and Fixes
on Sunday April 09, 2017 @01:09PM (#14073239)
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.
Re:GCC 7 Release Series – Changes, New Features, and Fixes
on Sunday April 09, 2017 @12:44PM (#14073116)
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.