ipa-modref cleanup

H.J. Lu hjl.tools@gmail.com
Tue Nov 2 22:32:19 GMT 2021


On Tue, Nov 2, 2021 at 2:21 PM Jan Hubicka via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Hi,
> this patch is a small refactoring of ipa-modref to make it bit more
> C++y by moving logic analyzing ssa name flags to a class
> and I also moved the anonymous namespace markers so we do not
> export unnecessary stuff.  There are no functional changes.
>
> Bootstrapped/regtested x86_64-linux, will commit it shortly.
>
> gcc/ChangeLog:
>
>         * ipa-modref.c Fix anonymous namespace placement.
>         (class modref_eaf_analysis): New class.
>         (analyze_ssa_name_flags): Turn to ...
>         (modref_eaf_analysis::analyze_ssa_name): ... this one.
>         (merge_call_lhs_flags): Turn to ...
>         (modref_eaf_analysis::merge_call_lhs_flags): .. this one
>         (modref_eaf_analysis::merge_with_ssa_name): New member function.
>         (record_escape_points): Turn to ...
>         (modref_eaf_analysis::record_escape_points): ... this one.
>         (analyze_parms): Updat
>         (ipa_merge_modref_summary_after_inlining): Move to the end of file.
>

It broke GCC bootstrap:

https://gcc.gnu.org/pipermail/gcc-regression/2021-November/075676.html

In file included from ../../src-master/gcc/coretypes.h:474,
                 from ../../src-master/gcc/expmed.c:26:
In function ‘poly_uint16 mode_to_bytes(machine_mode)’,
    inlined from ‘typename if_nonpoly<typename
T::measurement_type>::type GET_MODE_SIZE(const T&) [with T =
scalar_int_mode]’ at ../../src-master/gcc/machmode.h:647:24,
    inlined from ‘rtx_def* emit_store_flag_1(rtx, rtx_code, rtx, rtx,
machine_mode, int, int, machine_mode)’ at
../../src-master/gcc/expmed.c:5723:56:
../../src-master/gcc/machmode.h:550:49: warning: ‘*(unsigned
int*)((char*)&int_mode + offsetof(scalar_int_mode,
scalar_int_mode::m_mode))’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
  550 |           ? mode_size_inline (mode) : mode_size[mode]);
      |                                                 ^~~~
../../src-master/gcc/expmed.c: In function ‘rtx_def*
emit_store_flag_1(rtx, rtx_code, rtx, rtx, machine_mode, int, int,
machine_mode)’:
../../src-master/gcc/expmed.c:5652:19: note: ‘*(unsigned
int*)((char*)&int_mode + offsetof(scalar_int_mode,
scalar_int_mode::m_mode))’ was declared here
 5652 |   scalar_int_mode int_mode;
      |                   ^~~~~~~~
/export/gnu/import/git/gcc-test-master-intel64-native/bld/./prev-gcc/xg++
-B/export/gnu/import/git/gcc-test-master-intel64-native/bld/./prev-gcc/
-B/usr/12.0.0/x86_64-pc-linux-gnu/bin/ -nostdinc++
-B/export/gnu/import/git/gcc-test-master-intel64-native/bld/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-B/export/gnu/import/git/gcc-test-master-intel64-native/bld/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
 -I/export/gnu/import/git/gcc-test-master-intel64-native/bld/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu
 -I/export/gnu/import/git/gcc-test-master-intel64-native/bld/prev-x86_64-pc-linux-gnu/libstdc++-v3/include
 -I/export/gnu/import/git/gcc-test-master-intel64-native/src-master/libstdc++-v3/libsupc++
-L/export/gnu/import/git/gcc-test-master-intel64-native/bld/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-L/export/gnu/import/git/gcc-test-master-intel64-native/bld/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
 -fno-PIE -c   -g -O2 -fno-checking -gtoggle -DIN_GCC
-fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-error=format-diag
-Wmissing-format-attribute -Woverloaded-virtual -pedantic
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror
-fno-common  -DHAVE_CONFIG_H -I. -I. -I../../src-master/gcc
-I../../src-master/gcc/. -I../../src-master/gcc/../include
-I../../src-master/gcc/../libcpp/include
-I../../src-master/gcc/../libcody
-I../../src-master/gcc/../libdecnumber
-I../../src-master/gcc/../libdecnumber/bid -I../libdecnumber
-I../../src-master/gcc/../libbacktrace   -o tree-eh.o -MT tree-eh.o
-MMD -MP -MF ./.deps/tree-eh.TPo ../../src-master/gcc/tree-eh.c
cc1plus: all warnings being treated as errors
make[6]: *** [Makefile:1138: ipa-modref.o] Error 1


-- 
H.J.


More information about the Gcc-patches mailing list