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