On Tue, Nov 14, 2023 at 11:08:24PM +0100, Sebastian Huber wrote: > Move the counter update to the new gen_counter_update() helper function. Use > it in gimple_gen_edge_profiler() and gimple_gen_time_profiler(). The > resulting > gimple instructions should be identical with the exception of the removed > unshare_expr() call. The unshare_expr() call was used in > gimple_gen_edge_profiler(). > > gcc/ChangeLog: > > * tree-profile.cc (gen_assign_counter_update): New. > (gen_counter_update): Likewise. > (gimple_gen_edge_profiler): Use gen_counter_update(). > (gimple_gen_time_profiler): Likewise. > --- > gcc/tree-profile.cc | 133 +++++++++++++++++++++----------------------- > 1 file changed, 62 insertions(+), 71 deletions(-) >
Hi Sebastian, This patch caused a bunch of test failures on arm-none-eabi and pru-unknown-elf targets. One example: /home/dinux/projects/pru/testbot-workspace/gcc/gcc/testsuite/gcc.dg/no_profile_instrument_function-attr-1.c: In function 'main': /home/dinux/projects/pru/testbot-workspace/gcc/gcc/testsuite/gcc.dg/no_profile_instrument_function-attr-1.c:19:1: error: incorrect sharing of tree nodes __gcov0.main[0] # .MEM_12 = VDEF <.MEM_9> __gcov0.main[0] = PROF_edge_counter_4; during IPA pass: profile /home/dinux/projects/pru/testbot-workspace/gcc/gcc/testsuite/gcc.dg/no_profile_instrument_function-attr-1.c:19:1: internal compiler error: verify_gimple failed 0xfd9c7d verify_gimple_in_cfg(function*, bool, bool) /home/dinux/projects/pru/testbot-workspace/gcc/gcc/tree-cfg.cc:5662 0xe586a4 execute_function_todo /home/dinux/projects/pru/testbot-workspace/gcc/gcc/passes.cc:2088 0xe58ba2 do_per_function /home/dinux/projects/pru/testbot-workspace/gcc/gcc/passes.cc:1694 0xe58ba2 do_per_function /home/dinux/projects/pru/testbot-workspace/gcc/gcc/passes.cc:1684 0xe58bfe execute_todo /home/dinux/projects/pru/testbot-workspace/gcc/gcc/passes.cc:2142 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. compiler exited with status 1 FAIL: gcc.dg/no_profile_instrument_function-attr-1.c (internal compiler error: verify_gimple failed) FAIL: gcc.dg/no_profile_instrument_function-attr-1.c (test for excess errors) I'm using the following script to build and test: https://github.com/dinuxbg/gnupru/blob/master/testing/manual-test-pru.sh Regards, Dimitar