On 11/04/2016 10:18 AM, Christophe Lyon wrote:
> On 3 November 2016 at 16:11, Jan Hubicka <hubi...@ucw.cz> wrote:
>>>
>>> 2016-10-31  Martin Liska  <mli...@suse.cz>
>>>
>>>       * libgcov-profiler.c (__gcov_time_profiler): Remove.
>>>       (__gcov_time_profiler_atomic): Likewise.
>>>
>>> gcc/ChangeLog:
>>>
>>> 2016-10-31  Martin Liska  <mli...@suse.cz>
>>>
>>>       * profile.c (instrument_values): Fix coding style.
>>>       (branch_prob): Use renamed function.
>>>       * tree-profile.c (init_ic_make_global_vars): Likewise.
>>>       (gimple_init_edge_profiler): Rename to
>>>       gimple_init_gcov_profiler.
>>>       tree_time_profiler_counter variable declaration.
>>>       (gimple_gen_time_profiler): Rewrite to do a direct gimple code
>>>       emission.
>>>       * value-prof.h: Remove an argument.
>>>
>>> gcc/testsuite/ChangeLog:
>>>
>>> 2016-11-03  Martin Liska  <mli...@suse.cz>
>>>
>>>       * gcc.dg/no_profile_instrument_function-attr-1.c: Update scanned
>>>       output.
>>>       * gcc.dg/tree-prof/time-profiler-3.c: New test.
>>
>> OK,
>> Thanks!
>> Honza
> 
> Hi,
> 
> It seems this patch causes an ICE when compiling
> gcc.dg/gomp/pr27573.c
> for instance on arm-linux-gnueabi --wtih-cpu=cortex-a9

Hello.

Sorry for the breakage, I'm attaching untested patch which fixes that.
I'm going to trigger regression tests.

Martin

> 
> The backtrace is:
> /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/gcc.dg/gomp/pr27573.c:
> In function 'main._omp_fn.0':
> /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/gcc.dg/gomp/pr27573.c:12:9:
> internal compiler error: in convert_memory_address_addr_sp
> ace_1, at explow.c:284
> 0x79b19e convert_memory_address_addr_space_1(machine_mode, rtx_def*,
> unsigned char, bool, bool)
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/explow.c:284
> 0x670903 get_builtin_sync_mem
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/builtins.c:4933
> 0x671fef expand_builtin_atomic_fetch_op
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/builtins.c:5452
> 0x674aa4 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/builtins.c:6859
> 0x7b729a expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
> expand_modifier, rtx_def**, bool)
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/expr.c:10773
> 0x7c1460 store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool,
> tree_node*)
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/expr.c:5551
> 0x7c7451 expand_assignment(tree_node*, tree_node*, bool)
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/expr.c:5317
> 0x69a0de expand_call_stmt
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cfgexpand.c:2666
> 0x69b264 expand_gimple_stmt_1
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cfgexpand.c:3581
> 0x69b264 expand_gimple_stmt
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cfgexpand.c:3747
> 0x69cc8a expand_gimple_basic_block
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cfgexpand.c:5754
> 0x69fefe execute
>         /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cfgexpand.c:6368
> Please submit a full bug report,
> 
> Christophe
> 

>From 531392d44eb195bd39cb49a169047f5bd898242f Mon Sep 17 00:00:00 2001
From: marxin <mli...@suse.cz>
Date: Fri, 4 Nov 2016 11:12:06 +0100
Subject: [PATCH] time_profiler: Set proper type to time_profiler_counter_ptr.

gcc/ChangeLog:

2016-11-04  Martin Liska  <mli...@suse.cz>

	* tree-profile.c (gimple_gen_time_profiler): Set proper type
	to time_profiler_counter_ptr.
---
 gcc/tree-profile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
index 09a702f..d18b954 100644
--- a/gcc/tree-profile.c
+++ b/gcc/tree-profile.c
@@ -489,8 +489,9 @@ gimple_gen_time_profiler (unsigned tag, unsigned base)
   /* Emit: counters[0] = ++__gcov_time_profiler_counter.  */
   if (flag_profile_update == PROFILE_UPDATE_ATOMIC)
     {
-      tree ptr = make_temp_ssa_name (type, NULL, "time_profiler_counter_ptr");
-      tree addr = build1 (ADDR_EXPR, build_pointer_type (type),
+      tree ptr = make_temp_ssa_name (build_pointer_type (type), NULL,
+				     "time_profiler_counter_ptr");
+      tree addr = build1 (ADDR_EXPR, TREE_TYPE (ptr),
 			  tree_time_profiler_counter);
       gassign *assign = gimple_build_assign (ptr, NOP_EXPR, addr);
       gsi_insert_before (&gsi, assign, GSI_NEW_STMT);
-- 
2.10.1

Reply via email to