Conversation

unpopular opinion: the kind of program we call an "assembler" is a disgrace and they're almost useless. a real assembler would perform register allocation for you and handle calling conventions.
55
268
Replying to and
It would be nice if it truly had full support for aggregates... you should be able to pass them by-value and get decent code conforming to the specified calling convention. It shouldn't be necessary to use weird attributes, manual memcpy and splitting up into scalar parameters...
1
6
It's beyond just the lack of C calling convention support. It essentially lacks proper support for them in general. It's also bad at handling languages with heavy usage of (tagged) unions like Rust. It's way too focused on being a Clang backend. Dealing with GC is probably worst.
2
5
Replying to and
I worked on Rust's compiler / stdlib for a while and spent a fair bit of time trying to get better codegen, especially for features I implemented like Vec, Rc, iterators, etc. I'm still frustrated with LLVM years later. It still doesn't have the planned noalias intrinsic... sigh.
1
2