On Tue, Dec 3, 2024 at 2:55 AM Jeff Law <jeffreya...@gmail.com> wrote: > > > > 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
My second patch in the series: https://patchwork.sourceware.org/project/gcc/list/?series=41009 https://patchwork.sourceware.org/project/gcc/patch/20241121060255.774789-3-hjl.to...@gmail.com/ does that. > haven't accidentally twiddled the ABI in a meaningful way. There are no regressions on x86-64. All outgoing char/short arguments are extended to int. It exposes an x86 intrinsic bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117547 and fixes the Fortran bug pointed out by Ricard: https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667559.html > > > > > > 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 > -- H.J.