* fine-grained control over alignment
* automatic generation of SoA code from AoS code
* first-class SIMD types
* pragmas to switch the compiler into branch-avoiding codegen
* cache line size as a built-in constant, with ability to compile a binary that contains several versions of the complete program optimized for different cache line sizes
* user-defined calling conventions
* vectors, matrices, and quaternions (taking care of 90% of the cases where you really want operator overloading in C++)
* ability to treat an integer as an array of bits, bytes, or smaller integers, a la Terry Davis's "Holy C"
And the standard library could contain some nice performance-oriented stuff like:
* portable memory allocator that exposes pages, virtual memory indirection, reserve vs. commit, etc.
* fixed-point math
* approximate transcendental functions
* bitwise stuff a la the "Stanford Bit Twiddling Hacks"
while also adding modules and cleaning up declarations like C2 does.
I think a lot of programmers would like it.
As someone who writes C code that needs maximum performance (my problem is cpu bound) the two biggest performance gains were moving to icc (Intel’s compiler) and writing my own thread-safe memory pool allocator to avoid malloc.
if aliases(a, b)