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

Reply via email to