This is a question regarding constraint selection (and unnecessary spills) for gcc inline assembly, originally asked on stackoverflow, regarding code generation by clang / llvm. After receiving a response on the cfe-dev list from Eli Friedman, I wanted to know if there are any significant barriers to improving inline assembly? Would it require a major refactoring, etc.?
The current situation would seem to present a significant disadvantage for high performance primitives (e.g., sync / atomic, arithmetic instructions) required by kernels, C/C++ standard libraries, numerical computing, etc., expressed with gcc inline assembly. Does the LLVM project plan to adopt an inline assembly model better suited to the IR back-end? I guess I’m just trying to gauge the priorities and direction of development.