On 12/2/24 1:55 AM, Richard Biener wrote:
On Sun, Dec 1, 2024 at 11:15 PM Jeff Law <jeffreya...@gmail.com> wrote:



On 11/27/24 3:34 PM, H.J. Lu wrote:
On Thu, Nov 21, 2024, 2:02 PM H.J. Lu <hjl.to...@gmail.com
<mailto:hjl.to...@gmail.com>> wrote:

     Promote integer arguments smaller than int if TARGET_PROMOTE_PROTOTYPES
     returns true.

              PR middle-end/14907
              * calls.c (initialize_argument_information): Promote small
     integer
              arguments if TARGET_PROMOTE_PROTOTYPES returns true.
This doesn't look right.  Promotions are primarily driven by the target
files, in particular TARGET_PROMOTE_FUNCTION_MODE.

PROMOTE_PROTOTYPES is more of a language front-end hook and it doesn't
seem appropriate to be testing it in calls.cc.

It's a misguided hook that when applied in a subset of frontends ends
up generating
wrong code when doing multi-language LTO.  I requested moving it's handling to
RTL expansion where we can apply it consistently.
It's probably a fair assessment that if a language FE is doing something like that, then it's going to be problematic for LTO.

So maybe the question morphs into whether or not HJ's patch takes us down that path and if so, then shouldn't we be looking to remove the FE uses? And if we do that, how do we get a degree of confidence that we haven't accidentally twiddled the ABI in a meaningful way.



This particular patch looks OK to me (but as said elsewhere I'm not
very familiar with calls.cc and it's peculiarities).
I didn't see anything particularly concerning other than the overarching question of using what had been a language FE hook in calls.cc. I'm obviously leery of changing ABI stuff this late in the game and would generally prefer to defer something like that until the next stage1.
jeff

Reply via email to