8-bit Character support on architectures were the smallest addressable unit size is 64-bit in Clang and LLVM
summary
Describes making Clang/LLVM emit and handle 8-bit characters on architectures whose smallest addressable unit is 64 bits by changing only character alignment handling rather than CHAR_BIT or CharWidth. Shows a patch approach touching about eight files to represent string literals as arrays of i64 with 64-bit alignment (e.g. [6 x i64] with i64 element values), explains that the method can generalize to 16- or 32-bit minimal addressable units and to wchar with minimal changes, and positions this as a simpler alternative to large, invasive changes proposed previously.
AI-written summary · about
related talks
23mCode Density Improvements Beyond The C Standard Extension
24mGenerating BPF Verifier Friendly Code with Clang
19mExploiting Undefined Behavior in C/C++ Programs for Optimization: A Study on the(…)
19mGCC Compiler Code Size Density
01h 03mCLANG + C2 - Engineering/Futures/Measurements
45mA Few Effective gcc/clang Optimizations for Embedded Systems
01h 04mJust-in-Time Compilation: The Next Big Thing?
31mToolchains for People in a Hurry: Latest Features of GCC/GLIBC