Closed thixotropist closed 8 months ago
An experimental x86_64 toolchain is now available, based on binutils-2.41 and a December snapshot of both gcc-14 and glibc. Generated exemplars can be quite different with -O3
optimization and -march
variously set to alderlake
, raptorlake
, rocketlake
, and sapphirerapids
.
The gcc-14 build included the gccrs rust compiler, but this is unable to handle macro calls or use the std
library, so we will defer any rust-related work.
Scope is an issue - the point of an x86_64 developmental toolchain is to explore the generality of issues surfaced in RISCV import testing. Implementing x86_64 vector extensions is not in scope, but exploring the diversity of vector optimizations of loops and inlined calls to memcpy or strlen might be.
Ghidra functionality is likely driven by x86_64 or ARM test cases far more than the RISCV-64 test cases here. For complex topics like gcc autovectorization imports, we probably want to track how the larger community handles things.
Start by adding an x86_64 directory parallel to the existing riscv64 directory, perhaps with a gcc-14 tracking toolchain tuned for some recent Intel machine architecture.
Nominal toolchain goals and exemplar sets:
assert
andlog
procedure calls