Low Level Bits

lowlevelbits.org · Personal blog · on HN since 2015

Alex Denisov writes about LLVM, compilers, and testing, including bitcode, learning compilers, and how projects like GNU Make and FreeBSD are tested.

What HN saysCommenters recommend his Bitcode Demystified post for how bitcode works at a low level, and the author also posts there seeking work.
22HN people shared it
9linked it in comments
40stories submitted
1.1Kstory points
12 months agolast shared
2015people per year2026

Most-shared posts

  1. 1
    Bitcode Demystified
    12 people · 56 points · first shared 2015 · 12 comments on HN
  2. 2
    How to learn compilers: LLVM Edition
    3 people · 371 points · first shared 2021 · 26 comments on HN
  3. 3
    How GNU Make is tested
    2 people · 96 points · first shared 2016 · 24 comments on HN
  4. 4
    Components: taking a step back from Dependency Management
    2 people · 31 points · first shared 2015 · 3 comments on HN
  5. 5
    Mutation testing based on LLVM (2018) [pdf]
    2 people · 29 points · first shared 2018 · 6 comments on HN
  6. 6
    Type Equality in LLVM
    2 people · 7 points · first shared 2020 · discussion on HN
  7. 7
    System Under Test: How is FreeBSD tested?
    2 people · 6 points · first shared 2016 · discussion on HN
  8. 8
    Building an LLVM-based tool. Lessons learned
    2 people · 6 points · first shared 2019 · discussion on HN
  9. 9
    Reverse Engineering Stickies.app – Low Level Bits
    2 people · 5 points · first shared 2017 · 1 comments on HN
  10. 10
    Bottom-Up CMake Introduction
    2 people · 4 points · first shared 2019 · 1 comments on HN
  11. 11
    Debugging dyld
    2 people · 3 points · first shared 2018 · discussion on HN
  12. 12
    LLVM-Based Mutation Testing System: Request for Comments
    2 people · 3 points · first shared 2016 · discussion on HN
  13. 13
    List of scientific papers found in OpenJDK source code
    1 people · 198 points · first shared 2016 · 28 comments on HN
  14. 14
    How is LLVM tested?
    1 people · 137 points · first shared 2016 · 22 comments on HN
  15. 15
    Parsing Mach-O files
    1 people · 44 points · first shared 2015 · 5 comments on HN

What HN people wrote when they linked it

AlexDenisov · 2019-06-11
SEEKING WORK Location: Berlin, Germany (CET/CEST) Remote: yes Skills: LLVM, reverse-engineering, software hardening Portfolio: https://lowlevelbits.org/projects Website: https://lowlevelbits.org Email: [email protected]
Shank · 2016-10-23
It's worth noting that there have been discussions about bitcode and ARM in the past, notably ATP 122 and Bitcode Demystified. Both are worth listening to and reading respectively if you're interested in how this stuff works on a low level: http://atp.fm/episodes/122 http://lowlevelbits.org/bitcode-demystified/
tiu · 2025-11-08
The comments are wildly fragmented in this thread. I agree with @torginus, the article has less and less of anything useful to people that want to get into compilers. Anyways, the "Who .. hires compiler engineer?" section is fairly vague in my opinion, so: AMD, Nvidia, Intel, Apple, Google definitely hire for compiler positions. These hire fairly 'in-open' so probably the best bets all around. Aside from this, Jane Street and Bloomberg also do hire at the peak tier but for that certain language. The off beat options are: Qualcomm, Modular, Amazon (AWS) and ARM. Also see, https://mgaudet.github.io/CompilerJobs/ I seriously attempted getting into compilers last year before realising it is not for me but during those times it felt like people who want to be compiler devs are much much more in number compared to jobs that exist (yes exist, not vacant). The common way to get going is to do LLVM. Making a compiler is great and all but too many people exist with a lox interpreter-compiler or something taken from the two Go books. Contributing to LLVM (or friends like Carbon, Swift, Rust) or atleast some usage experience is the way. The other side of this is doing GNU GCC and friends but I have seen like only one opening that mentions this way as being relevant. University level courses are rarely of any use. Lastly, LLVM meetups/conferences are fairly common at most tech hubs and usually have a jobs section listing all requirements. A few resources since I already made this…
inkyoto · 2023-05-15
We kind of have it, except it does not seem to have taken off and has been relegated to a second-class citizen at best. I am talking about LLVM Bitcode[0] – when the binary product (a executable or .o/.a files) is shipped in the LLVM IR representation and then is «AOT»'d into the final product (a final executable) that can, for instance, take advantage of the latest ISA features (armv9, Zen23, POWER18 or new RISC-V extensions) with zero effort on the end user part. For a while, Apple even encouraged iOS devs to upload their apps into the App Store in the Bitcode format. That has all but ceased to exist for not obvious reasons about a year or two ago. Technically, if Apple chose to transition onto an alternative ISA again (say, RISC-V), at least iOS apps would not require recompilation and would get statically converted to the new ISA at the download time. Imagine a world where there would be a single Linux distribution for a given architecture shipped in the Bitcode format (sans the small arch specific boot area and the AOT engine), for instance. [0] https://lowlevelbits.org/bitcode-demystified/ [1] https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-i…
egsmi · 2020-12-28
In theory that’s what bitcode protects against. Today, that doesn’t save binaries not distributed through the store or ones you compiled yourself via other compiler chains. It is possible to change that. One could even imagine it as part of the loading procedure. https://lowlevelbits.org/bitcode-demystified/
threeseed · 2020-01-29
Lots of suspicion because of the move to force App Store apps to have Bitcode enabled for submission. This would allow them to potentially transpile x86 apps for ARM: https://lowlevelbits.org/bitcode-demystified/ Also as we've seen with iPad Pro + AWS M6G instances the performance is now there to power desktops.
sitharus · 2017-08-02
bitcode is indeed a thing, its a file format for LLVM IR https://lowlevelbits.org/bitcode-demystified/ It's not really a bytecode as it's not interpreted, but that's debatable.
coldtea · 2016-09-17
>Apple adds features like PCI-e for discrete GPU support (ok, they did in A9), and if Ax series performance starts to exceed corresponding Intel mobile parts by >50% (enough to compensate for the overhead of binary translation for legacy x86 apps). When it happens, it might not need binary translation. http://lowlevelbits.org/bitcode-demystified/
fowl2 · 2016-01-12
I think he's refering to things like Apple's "bitcode". http://lowlevelbits.org/bitcode-demystified/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close