erichkeane marked 16 inline comments as done. erichkeane added a comment. Commenting to save my comments (don't seem to survive a refresh). Still working on non-function mangling.
> rnk wrote in ItaniumMangle.cpp:1203 > What mangling should happen for operator overloads and all other kinds of > DeclarationName? Please add tests for these cases Test cases show that I need to implement these. Going to quit for the evening, but will continue working on this tomorrow. > majnemer wrote in ItaniumMangle.cpp:1413-1414 > I'd add an overload of `mangleSourceName` which takes a `Twine`. Then the one > caller which passes `isRegCall` would merely concat the identifier with > __regcall3__. The existing implementation using `IdentifierInfo` would merely > pass in `II->getName` for the `Twine`. I really like this idea, and had most of an implementation, however it seems that Twine has no real good way to get its 'length', so it required a temporary for the sake of getting the length. Instead I ended up with Ried's suggestion of separate functions for each. > rnk wrote in TargetInfo.cpp:3742-3743 > 'classify' takes FreeSSERegs by reference and modifies it, so are you sure > this is correct? It means if I have this kind of prototype, we won't pass 'd' > in registers because we'll consume four registers for the return value: > > struct HFA { __m128 f[4]; }; > HFA __regcall f(HFA a, HFA b, HFA c, HFA d) { > ... > } I added it to the C test, and was convinced that you're right. Fixed, thanks! https://reviews.llvm.org/D25204 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits