[llvm-dev] Non-native endianness support in Clang

Guy Benyei via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 26 07:18:45 PDT 2019

I'd like to implement the gnu attribute "scalar_storage_order" to mark structs with non-native endianness. My rational is working on network protocols over little endian architecture (for instance: RiscV).

An old bug is open on this issue here:

I'd like to discuss the possible ways to implement this.

The GCC implementation is pretty complicated, touching almost everything, modifying optimizations, etc...:

I think, it would be better, to implement this attribute in the frontend only, adding the required byte-swaps early.

Any thoughts, ideas, objections?

          Guy Benyei	

More information about the llvm-dev mailing list