mirror of
https://github.com/intel/llvm.git
synced 2026-02-02 10:08:59 +08:00
3c55ccac4846ff2a0fbddec7e3440bd88e6e2d16
The AAPCS treats small structs and homogeneous floating (or vector) aggregates specially, and guarantees they either get passed as a contiguous block of registers, or prevent any future use of those registers and get passed on the stack. This concept can fit quite neatly into LLVM's own type system, mapping an HFA to [N x float] and so on, and small structs to [N x i64]. Doing so allows front-ends to emit AAPCS compliant code without having to duplicate the register counting logic. llvm-svn: 222903
…
…
Languages
LLVM
41.3%
C++
31.5%
C
13%
Assembly
9.5%
MLIR
1.5%
Other
2.8%