HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
llvm
llvm-project
LLVM2019–2026
llvm / llvm-project

llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.

203Distinct people
323Mentions
0Explicit recommenders
41.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year323 dated mentions

Observed mentions: 2019-03-20 14:14:12 UTC to 2026-10-31 13:03:47 UTC.

0204060801002019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 21 mentions; 5 submissions, 16 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 29 mentions; 4 submissions, 25 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 34 mentions; 7 submissions, 27 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 38 mentions; 1 submissions, 37 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 55 mentions; 5 submissions, 50 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 100 mentions; 6 submissions, 94 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 38 mentions; 2 submissions, 36 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC808
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC21516
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC29425
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC34727
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC38137
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC55550
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC100694
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC38236

What Hacker News says

323 sources
Maybe LLVM doesn't have time for performance improvements due to still reading through 30000 open issues, which also include miscompilations leading to incorrect results at runtime? For example, my bug report that `+= 2` is broken has not been acknowledged (read?) by anyone for 3 years: const size_t n = 13; // triggers the issue #pragma omp parallel for for (uint32_t i = 0; i < n; i += 2) { // counts PAST 13! https://github.com/llvm/llvm-project/issues/70687
In Switch Lowering in GCC
That vminpd+vminpd+vorpd actually does handle signed zero properly! Screws up NaN payloads to the max though. Can be easily extended to canonicalize the NaN with 2 instrs + constant though of course. (which ends up at the same number of instrs as your proper impl (albeit with worse port distribution and latency), but you get to have a canonical NaN!) Hit upon https://github.com/llvm/llvm-project/issues/217376 while playing around with proper minimumnum, failing to SMT-verify whatever version of LLVM I had; did find a funky working 6-instr (+ constant) version though: vpandn ymm2, ymm1, ymm0 vpcmpeqd ymm2, ymm2, 0x80000000 # whether ymm0 is -0 and ymm1 is +0 (or other cases that magically don't cause issues) vcmpltpd ymm3, ymm0, ymm1 vcmpunordpd ymm3, ymm3, ymm1 # regular NaN-is-larger ymm0<ymm1 vpor y
Read the rest
mm2, ymm2, ymm3 vpblendvb ymm0, ymm1, ymm0, ymm2
In Fearless SIMD v1.0
Parent is right. Use of uninitialized memory is UB, and incidentally, the type of UB that the C standard is not working to define, but is relying on sanitizers to find in source programs, since it is considered always a bug. This entire thread has a lot of "no security issues have ever been found in my code, and I test a lot. Therefore no bugs will ever exist in my code and we're all safe." To see you doing this in an explicitly security-conscious setting is distressing. If anything, I see assertions like this and juxtaposed with blatant, willful misunderstanding of how C and C compilers work and it does the opposite of inspiring confidence. Look at CVE-2009-1897; this is the classic example of how C compilers are happy to try to optimize code in the face of UB and lead to worse problems. > If the above code has any but one of the above 1
Read the rest
6 outputs I don't think you understand how insane optimizations in the face of UB can be. Just go look at this issue: https://github.com/llvm/llvm-project/issues/174844?utm_sourc...
In AMD's random number generator can't generate a 0?
The loop dependency on a poly isn't all that hard for compilers to unroll, and most correctly rounded implementations are polys. You're often paying only a couple cycles' worth of stalls. We can see this in action. LLVM implements sin() with a correctly rounded double poly [0]. Let's ignore range reduction and throw the core into compiler explorer to be autovectorized [1]. uiCA estimates a theoretical latency for the inner loop of 15 cycles, and the code achieves 18. I suspect most custom implementations would do worse than this. [0] https://github.com/llvm/llvm-project/blob/165c472d65cd62eb33... [1] https://godbolt.org/z/rGGq8aG38
In Everyone should know SIMD
there's been some forward movement on doing this via an appropriate intrinsic in LLVM https://github.com/llvm/llvm-project/pull/166702 note that this isn't the only "trick" needed for constant-time programming though. Indexing an array with a secret index needs its own trick, for example. I agree that trying to trick the compiler is very ugly. A well-known applied cryptographer has a paper from last year saying that not only is it ugly, but it doesn't work particularly well, and if anything the trendline of the various "tricks" is that they get less effective over time. https://eprint.iacr.org/2025/435
In NoiseLang: Where N = 5 is a Dirac delta
https://github.com/llvm/llvm-project/issues/45725 Are you familiar with pointer provenance ? This gets very deep, very fast, so if you don't know and don't want to know I can't help you, but if you do want to know try maybe: https://www.ralfj.de/blog/2018/07/24/pointers-and-bytes.html So e.g. if we make a pointer to thing A, which we then destroy, and then for a pointer to thing B, and then we compare these pointers, even if the address which will be the only bits making up this pointer in hardware was identical, a language could choose to say these pointers are not the same (Rust says they compare equal but that's up to Rust). LLVM is equipped to do this optimisation. So far, not a bug, though perhaps not what you expected... However everybody is pretty sure that we don't want provenance for other value types. It's troublesome for pointe
Read the rest
rs but we're used to it and it unlocks important optimisations, but for every other value type it's just extra trouble. So Rust's provenance model says only pointers have provenance, and proposals for C and C++ likewise. If we ask for the address from a pointer, making it into just an integer, it should not longer have provenance. But, LLVM doesn't really track whether a value "is" pointer or not per se, so it ends up applying that "they're not equal" optimisation to the integers we've made from pointers, even though the integers are definitely equal and we're about to do a subtraction to prove it. Bang.
In How memory safety CVEs differ between Rust and C/C++

Showing the 15 most recent of 323 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.