PR 53249: Multiple address modes for same address space
H.J. Lu
hjl.tools@gmail.com
Wed May 9 13:34:00 GMT 2012
On Tue, May 8, 2012 at 4:05 PM, Richard Henderson <rth@redhat.com> wrote:
> On 05/06/2012 11:41 AM, Richard Sandiford wrote:
>>
>> PR middle-end/53249
>> * dwarf2out.h (get_address_mode): Move declaration to...
>> * rtl.h: ...here.
>> * dwarf2out.c (get_address_mode): Move definition to...
>> * rtlanal.c: ...here.
>> * var-tracking.c (get_address_mode): Delete.
>> * combine.c (find_split_point): Use get_address_mode instead of
>> targetm.addr_space.address_mode.
>> * cselib.c (cselib_record_sets): Likewise.
>> * dse.c (canon_address, record_store): Likewise.
>> * emit-rtl.c (adjust_address_1, offset_address): Likewise.
>> * expr.c (move_by_pieces, emit_block_move_via_loop,
>> store_by_pieces)
>> (store_by_pieces_1, expand_assignment, store_expr,
>> store_constructor)
>> (expand_expr_real_1): Likewise.
>> * ifcvt.c (noce_try_cmove_arith): Likewise.
>> * optabs.c (maybe_legitimize_operand_same_code): Likewise.
>> * reload.c (find_reloads): Likewise.
>> * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
>> * sel-sched-dump.c (debug_mem_addr_value): Likewise.
>
>
> ok.
>
>
> r~
I checked in this testcase.
Thanks.
--
H.J.
--
2012-05-09 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/53249
* gcc.target/i386/pr53249.c: New.
diff --git a/gcc/testsuite/gcc.target/i386/pr53249.c
b/gcc/testsuite/gcc.target/i386/pr53249.c
new file mode 100644
index 0000000..9eab8bc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr53249.c
@@ -0,0 +1,25 @@
+/* { dg-do compile { target { ! { ia32 } } } } */
+/* { dg-options "-O2 -mx32 -ftls-model=initial-exec -maddress-mode=short" } */
+
+struct gomp_task
+{
+ struct gomp_task *parent;
+};
+
+struct gomp_thread
+{
+ int foo1;
+ struct gomp_task *task;
+};
+
+extern __thread struct gomp_thread gomp_tls_data;
+
+void
+__attribute__ ((noinline))
+gomp_end_task (void)
+{
+ struct gomp_thread *thr = &gomp_tls_data;
+ struct gomp_task *task = thr->task;
+
+ thr->task = task->parent;
+}
More information about the Gcc-patches
mailing list