Live data from Hacker News

Viewing profile — cfallin

cfallin

HN member
Joined
Mon, Aug 27, 2012, 8:16 PM UTC
HN karma
1,502
Public activity
310 items

About cfallin

Compiler nerd, computer scientist, software engineer. Living and working in Sunnyvale, California.

Currently: Senior Architect at F5, working on Cranelift/Wasmtime in the Office of the CTO.

Previously: Principal software engineer at Fastly, working on Cranelift/Wasmtime for the Wasm-based Compute@Edge project, 2020-2024. Mozilla, working on the SpiderMonkey and Cranelift JIT compilers in Firefox, 2019-2020; PhD student (ECE) and then postdoc (CS) at Carnegie Mellon working on compilers, static and dynamic analysis (2009-2013, 2015-2019).

More previously: Google (2014-2015), and Intel (2013-2014).

Web: https://cfallin.org/

[ my public key: https://keybase.io/cfallin; my proof: https://keybase.io/cfallin/sigs/ZJj2pg69eB6Hs0cl9j_babYkyADojbWrfe4uZp11LMo ]

Recent public activity

  1. comment
    Comment #47771915

    Oh goodness, that name is so good! (And thanks!)

  2. comment
    Comment #47767164

    Thanks! I haven't studied Graal's IR in detail, no. I'll add it to my reading list...

  3. comment
    Comment #47767136

    OK, cool. I was assuming "escape analysis and type inference" implied a JS JIT -- straight from your comment, no other assumptions intended. But you've got a lot of interesting exp…

  4. comment
    Comment #47766803

    Hi Fil -- thanks for the comment! I think we may be playing in slightly different spaces: unlike a JS JIT, Cranelift doesn't have "super fancy escape/type analysis". We're really t…

  5. comment
    Comment #46214597

    We have two: fuel and epochs. Fuel (analogous to "gas" as it appears in many VM platforms) is a deterministic count and epochs check an always-increasing counter in shared memory m…

  6. story
  7. comment
    Comment #45282661

    No, it's still behind a flag (and so transitively, exceptions are too, because we built exception objects on top of GC). Our docs ( https://docs.wasmtime.dev/stability-tiers.html )…

  8. comment
    Comment #45282201

    > It'll be interesting to see what the second non-browser-based WASM runtime to fully support 3.0 will be (I'm guessing wasmtime will be first; ...) Wasmtime already supports every…

  9. comment
    Comment #44163749

    They're hitting another design point on the compile time vs. code-quality tradeoff curve, which is interesting. They compile 4.27x faster than Cranelift with default (higher qualit…

  10. story
  11. story
  12. comment
    Comment #40411973

    Indeed; the tl;dr is "yes it works on SpiderMonkey, and was designed to do so". Blog post in a few months, I promise!

  13. comment
    Comment #40411963

    > That is, if x and y are determined only at runtime for power(x, y) then I don't see what can be optimized. Yes, the example in Max's post is specifically assuming one wants to ge…

  14. comment
    Comment #40408300

    This is indeed a good point and something I want to write about when I eventually do a blog post on weval. A few counterpoints that I'd offer (and what led me to still take this ap…

  15. comment
    Comment #40407589

    weval author here (thanks Max for the blog post!). Also AMA! The talk about weval that Max mentions was at NEU and also CMU; the latter was recorded and is here: https://vimeo.com/…

  16. comment
    Comment #39752535

    The approach that Cranelift uses is what we call the "aegraph" (talk I gave about it: slides https://cfallin.org/pubs/egraphs2023_aegraphs_slides.pdf , video https://vimeo.com/8435…

  17. comment
    Comment #39752112

    We actually take a fairly unconventional approach to e-graphs: we have a few linear passes and we do all rewrites eagerly, so we use them to provide a general framework for the fix…

  18. comment
    Comment #39752098

    Right, it's about algorithmic tradeoffs throughout. A good example I wrote about is here: https://cfallin.org/blog/2021/01/22/cranelift-isel-2/ where we use a single-pass algorithm…

  19. comment
    Comment #39752073

    There are some benchmarks of Cranelift-based Wasm VMs (Wasmtime) vs. LLVM-based Wasm VMs here: https://00f.net/2023/01/04/webassembly-benchmark-2023/ The (perhaps slightly exaggera…

  20. story
  21. comment
    Comment #35615628

    A small correction re: Cranelift -- I had originally prototyped with egg, but we're currently using a variant of egraphs I invented called "acyclic egraphs" after working through p…

  22. story
  23. story
  24. comment
    Comment #32914994

    The perf blogpost actually uses SpiderMonkey-compiled-to-Wasm as a benchmark rather than a comparison (peer) of Wasmtime. However, there are some good comparisons done by a third p…

  25. comment
    Comment #31696745

    That's a good question for bjorn3, the leader of that effort; they periodically publish status updates. Over on the Reddit discussion someone pointed to this GitHub issue too: http…