Gentle ping this: https://gcc.gnu.org/pipermail/gcc-patches/2022-January/587635.html
BR, Kewen >> on 2022/1/5 下午3:34, Kewen.Lin via Gcc-patches wrote: >>> Hi, >>> >>> This patch is to fix the inconsistent behaviors for non-LTO mode >>> and LTO mode. As Martin pointed out, currently the function >>> rs6000_can_inline_p simply makes it inlinable if callee_tree is >>> NULL, but it's unexpected, we should use the command line options >>> from target_option_default_node as default. >>> >>> It replaces rs6000_isa_flags with target_option_default_node when >>> caller_tree is NULL since it's more straightforward and doesn't >>> suffer from some bug not to keep rs6000_isa_flags as default. >>> >>> It also extends the scope of the check for the case that callee >>> has explicit set options, inlining in test case pr102059-5.c can >>> happen unexpectedly before, it's fixed accordingly. >>> >>> As Richi/Mike pointed out, some tuning flags like MASK_P8_FUSION >>> can be neglected for always inlining, this patch also takes some >>> flags when the callee is attributed by always_inline. >>> >>> v1: https://gcc.gnu.org/pipermail/gcc-patches/2021-September/578552.html >>> v2: https://gcc.gnu.org/pipermail/gcc-patches/2021-December/586112.html >>> >>> This patch is one re-post of this updated version[1] and also >>> rebased and adjusted on top of the related commit r12-6219. >>> >>> Bootstrapped and regtested on powerpc64-linux-gnu P8 and >>> powerpc64le-linux-gnu P9 and P10. >>> >>> Is it ok for trunk? >>> >>> [1] https://gcc.gnu.org/pipermail/gcc-patches/2021-December/586296.html >>> >>> BR, >>> Kewen >>> ----- >>> gcc/ChangeLog: >>> >>> PR target/102059 >>> * config/rs6000/rs6000.c (rs6000_can_inline_p): Adjust with >>> target_option_default_node and consider always_inline_safe flags. >>> >>> gcc/testsuite/ChangeLog: >>> >>> PR target/102059 >>> * gcc.target/powerpc/pr102059-4.c: New test. >>> * gcc.target/powerpc/pr102059-5.c: New test. >>> * gcc.target/powerpc/pr102059-6.c: New test. >>> * gcc.target/powerpc/pr102059-7.c: New test. >>> * gcc.target/powerpc/pr102059-8.c: New test. >>> * gcc.dg/lto/pr102059-1_0.c: Remove unneeded option. >>> >>>