jotai-benchmarks
linux
jotai-benchmarks | linux | |
---|---|---|
2 | 9 | |
31 | 240 | |
- | 0.8% | |
6.1 | 0.0 | |
5 months ago | 9 months ago | |
C | C | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jotai-benchmarks
-
Tips Performance benchmarks for a custom compiler?
But let me suggest Jotai to you. That's a collection with about 30K C programs. They all run without undefined behavior (as per kcc or frama-C). Each program is self-contained. But each program also runs for a very short time. So, I recommend you use CFGGrind to count the number of instructions executed. CFGGrind can separate instructions per function, and each Jotai benchmark consists of a single function. For instance, to count the total number of instructions executed by function foo, you can do (assuming that profile data was saved into a file called `test.cfg`):
-
The Jotai Benchmark Collection
We, at UFMG, have been working on a methodology to generate benchmarks in C. We have a working collection of benchmarks here with a bit more than 30K executable programs. Benchmarks are single functions mined from open-source repositories. We have designed a domain-specific language to generate inputs for them. We use psyche-c to infer missing types and declarations. We use kcc and AddressSanitizier to filter out as much undefined behavior as possible. We use CFGGrind to check input coverage and to count the number of instructions executed. These benchmarks can be used in many ways: to stress test compilers; to autotune predictive compilation tasks; to analyze the dynamic behavior of programs; to improve compiler optimizations; etc. We have a technical report here.
linux
-
Committing to Rust for Kernel Code
> Torvalds answered that, while he used to find problems in the LLVM Clang compiler, now he's more likely to find problems with GCC instead; he now builds with Clang.
https://github.com/ClangBuiltLinux/linux/issues is our bug tracker for known issues (a few are tracked in llvm's issue tracker). Bug reporters and future kernel hackers wanted!
As I mentioned on mastodon, there's lots of bugs still to be fixed everywhere, but even if we don't fix them, providing competition in the toolchain space has been worth it to users.
-
ISO C became unusable for operating systems development
Linux builds on clang after a decade of dedicated effort to make it happen, and that is with clang overall being comparatively similar to gcc (e.g clang implements many gcc extensions): https://github.com/ClangBuiltLinux/linux/wiki/Project-histor...
-
What (not how) to contribute to the kernel
We got plenty of bugs for building the kernel with LLVM, if you're looking for tasks, pick one!
-
Intel C/C++ compilers complete adoption of LLVM
There's an semi-official github[0] for this.
AFAICT from the issue, Clang and binutils/LLVM tools work fine with no patches for the mainstream archs and when not trying to be super-fancy with custom flags. The more non-mainstream one goes with arch or flags the more likely one will run into something.
[0] https://github.com/ClangBuiltLinux/linux/issues
- Is linux insecure?
-
Kernel 5.12.0 clang LTO
If you have any reproducible issues please file them here: https://github.com/ClangBuiltLinux/linux/issues
-
Looking for advice on learning kernel development
See if you can build your distro's config. make LLVM=1 localmodconfig olddefconfig bzImage. Any warnings? Any warnings not in the issue tracker? If not, pick one from the issue tracker and see if you can reproduce it. Note: lots of issues are tagged by target ISA, so you'll need to get familiar with cross compiling (setting ARCH= and CROSS_COMPILE=.
-
Why Apple Chose Clang
It's a pipeline; clang starts, hands off to LLVM.
For a compilation to object file from source code, the vast majority of time for most translation units is spent in the front end of the pipeline, not the middle, or backend.
See also my first plot: https://github.com/ClangBuiltLinux/linux/issues/1086#issueco...
What are some alternatives?
termux-ndk - android-ndk for termux
wasi-sdk - WASI-enabled WebAssembly C/C++ toolchain
psychec - A compiler frontend for the C programming language
checkedc - Checked C is an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe. The goal is to let people easily make their existing C code type-safe and eliminate entire classes of errors. Checked C does not address use-after-free errors. This repo has a wiki for Checked C, sample code, the specification, and test code.
dstep - A tool for converting C and Objective-C headers to D modules
tilck - A Tiny Linux-Compatible Kernel
gentooLTO - A Gentoo Portage configuration for building with -O3, Graphite, and LTO optimizations
llvmbox - Self contained, fully static llvm tools & libs
freebsd-ports - FreeBSD ports tree (read-only mirror)
CSpydr - A static typed low-level compiled programming language inspired by Rust and C
gcc