[PATCH] D37898: [TargetLowering] Correctly track NumFixedArgs field of CallLoweringInfo

Ulrich Weigand via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 15 10:09:32 PDT 2017


uweigand added a comment.

As far as SystemZ is concerned, this change should be safe.   In our ABI only vector arguments are affected by the IsFixed flags, and there shouldn't be any libcalls with vector arguments.

In theory, the patch could affect non-libcalls in those cases where the return type must be passed by implicit reference.  But at least in Clang, that transformation is already done by Clang itself, so this LLVM code path is never hit from within Clang.  I believe none of the non-Clang users of LLVM on SystemZ currently hit this code path either (since it was erroneously missing for a long time in the SystemZ back-end and nobody complained ...).

The only other code paths seem to affect statepoints and patchpoints, so if one of those has vector arguments, we may now get different code.  But those features are marked experimental, so we should be fine here.

In any case, the new code implements the ABI correctly where the old code did not, so in my opinion the change needs to be done anyway for compatibility with other compilers.


https://reviews.llvm.org/D37898





More information about the llvm-commits mailing list