4 ms·
IMHO a major enabler for this is LLVM. I think it's significantly reduced the time / cost / difficulty in rolling out a new instruction set architecture.
by CoastalCoder 4y ago
IMHO a major enabler for this is LLVM.
I think it's significantly reduced the time / cost / difficulty in rolling out a new instruction set architecture.
- cowtools 4y agoAre the GCC cross-compilers for ARM64 not sufficient? We're not talking about some niche, new architecture here like RISCV or WASM.
- pdpi 4y agoRolling out a new architecture isn't just about getting your own tools out, it's about enabling the rest of the ecosystem to come along for the ride. LLVM is specifically meant to be a compiler backend that you write languages frontends against. It sort of solves the expression problem for programming languages, and there's a whole range of production-ready compilers out there using it. When they add support for an architecture, every one of those languages also gets a large part of the work to support it done for them.
- gary_0 4y agoI think it goes beyond LLVM, it's software in general. 20 years ago, software was locked into a particular architecture because proprietary compilers and binary blobs were the norm, and vendors still ruled their platforms with an iron fist. But nowadays, open source libraries and compilers are a lot more standard, and a lot of hardware/software is cross-platform so switching is easier. Linux is mainstream and gives you support for dozens of architectures for free. Also, CPU technology (outside of tiny embedded chips) is a lot more uniform with fewer weird variations or cost-cutting shortcuts, and transistors are ridiculously cheap. You can assume 32/64-bit, little-endian, twos-complement math, IEEE-754 floats, etc.