Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression. Learn more →
Rust ir Projects
-
You might be underestimating the accuracy of the CPU models LLVM uses.
For x86, the same data the code generator uses drives llvm-mca[1], which given a loop body can tell you the throughput, latency, and microarchitectural bottlenecks (decoding, ports, dependencies, store forwarding, etc.)—if not always precisely, then still not worse then IACA, the tool written at Intel by people who presumably knew how the CPUs work, unlike LLVM contributors and the rest of us who can only guess and measure. This separately for Haswell, Sandy Bridge, Skylake, etc.; not “x86”.
Now, is this the best model you can get? Not exactly[2], but it’s close enough to not matter. Do we often need machine code to be optimized to that level of detail? Perhaps not[3], and with that in mind you can shave at least a factor of ten off LLVM’s considerable bulk at the cost of 20—30% of performance[4,5]. But if you do want those as well, it seems that the complexity of LLVM is a fair price, or has the right order of magnitude at least.
(Frontend not included, C++ frontend required to bootstrap sold separately, at a similar markup compared to a C-only frontend with somewhat worse ergonomics.)
[1] https://llvm.org/docs/CommandGuide/llvm-mca.html
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
Rust ir related posts
- A whirlwind tour of the LLVM optimizer
- Made my first LLVM front-end… Now what?
- QBE is a compact user-friendly and performant compiler back end
- Tiny-C Language Compiler
- Few lesser known tricks, quirks and features of C
- cproc – Small C11 compiler based on QBE
- Hare is a systems programming language designed to be simple, stable, and robust. Hare uses a static type system, manual memory management, and a minimal runtime.
-
A note from our sponsor - InfluxDB
www.influxdata.com | 29 May 2023
Index
Project | Stars | |
---|---|---|
1 | qbe-rs | 45 |