[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2016-02-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

--- Comment #10 from Jakub Jelinek  ---
Author: jakub
Date: Thu Feb 11 09:23:06 2016
New Revision: 21

URL: https://gcc.gnu.org/viewcvs?rev=21&root=gcc&view=rev
Log:
Backported from mainline
2016-01-19  Jakub Jelinek  

PR rtl-optimization/68955
PR rtl-optimization/64557
* dse.c (record_store, check_mem_read_rtx): Don't call get_addr
here.  Fix up formatting.
* alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.

* gcc.dg/torture/pr68955.c: New test.

Added:
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr68955.c
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/alias.c
branches/gcc-4_9-branch/gcc/dse.c
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog

[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2016-02-10 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

--- Comment #9 from Jakub Jelinek  ---
Author: jakub
Date: Wed Feb 10 18:34:30 2016
New Revision: 233293

URL: https://gcc.gnu.org/viewcvs?rev=233293&root=gcc&view=rev
Log:
Backported from mainline
2016-01-19  Jakub Jelinek  

PR rtl-optimization/68955
PR rtl-optimization/64557
* dse.c (record_store, check_mem_read_rtx): Don't call get_addr
here.  Fix up formatting.
* alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.

* gcc.dg/torture/pr68955.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr68955.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/alias.c
branches/gcc-5-branch/gcc/dse.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2016-01-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Tue Jan 19 12:34:45 2016
New Revision: 232554

URL: https://gcc.gnu.org/viewcvs?rev=232554&root=gcc&view=rev
Log:
PR rtl-optimization/68955
PR rtl-optimization/64557
* dse.c (record_store, check_mem_read_rtx): Don't call get_addr
here.  Fix up formatting.
* alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.

* gcc.dg/torture/pr68955.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr68955.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/alias.c
trunk/gcc/dse.c
trunk/gcc/testsuite/ChangeLog

[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2015-10-15 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

Dominik Vogt  changed:

   What|Removed |Added

 CC||vogt at linux dot vnet.ibm.com

--- Comment #7 from Dominik Vogt  ---
This fix causes a regression on s390.  Please refer to bug 67443:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67443


[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2015-02-20 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.8.5

--- Comment #6 from Uroš Bizjak  ---
Fixed everywhere.

[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2015-02-20 Thread uros at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

--- Comment #5 from uros at gcc dot gnu.org ---
Author: uros
Date: Fri Feb 20 12:04:21 2015
New Revision: 220854

URL: https://gcc.gnu.org/viewcvs?rev=220854&root=gcc&view=rev
Log:
Backport from mainline
2015-01-22 Wei Mi 

PR rtl-optimization/64557
* dse.c (record_store): Call get_addr for mem_addr.
(check_mem_read_rtx): Likewise.

Backport from mainline
2014-10-20  Uros Bizjak  

* varasm.c (const_alias_set): Remove.
(init_varasm_once): Remove initialization of const_alias_set.
(build_constant_desc): Do not set alias set to const_alias_set.

Backport from mainline
2014-10-14  Uros Bizjak  

PR rtl-optimization/63475
* alias.c (true_dependence_1): Always use get_addr to extract
true address operands from x_addr and mem_addr.  Use extracted
address operands to check for references with alignment ANDs.
Use extracted address operands with find_base_term and
base_alias_check. For noncanonicalized operands call canon_rtx with
extracted address operand.
(write_dependence_1): Ditto.
(may_alias_p): Ditto.  Remove unused calls to canon_rtx.

Backport from mainline
2014-10-10  Uros Bizjak  

PR rtl-optimization/63483
* alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
references when alignment ANDs are involved.
(write_dependence_p): Ditto.
(may_alias_p): Ditto.

Backport from mainline
2013-03-26  Richard Biener  

* alias.c (find_base_term): Avoid redundant and not used recursion.
(base_alias_check): Get the initial base term from the caller.
(true_dependence_1): Compute and pass base terms to base_alias_check.
(write_dependence_p): Likewise.
(may_alias_p): Likewise.


Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/alias.c
branches/gcc-4_8-branch/gcc/dse.c
branches/gcc-4_8-branch/gcc/varasm.c


[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2015-01-23 Thread wmi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

--- Comment #4 from wmi at gcc dot gnu.org ---
Author: wmi
Date: Fri Jan 23 17:55:32 2015
New Revision: 220051

URL: https://gcc.gnu.org/viewcvs?rev=220051&root=gcc&view=rev
Log:
Backported from trunk.
2015-01-22  Wei Mi  

PR rtl-optimization/64557
* dse.c (record_store): Call get_addr for mem_addr.
(check_mem_read_rtx): Likewise.

Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/dse.c


[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2015-01-22 Thread wmi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

--- Comment #3 from wmi at gcc dot gnu.org ---
Author: wmi
Date: Thu Jan 22 17:59:23 2015
New Revision: 220010

URL: https://gcc.gnu.org/viewcvs?rev=220010&root=gcc&view=rev
Log:
2015-01-22  Wei Mi  

PR rtl-optimization/64557
* dse.c (record_store): Call get_addr for mem_addr.
(check_mem_read_rtx): Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dse.c


[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2015-01-10 Thread ppluzhnikov at google dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

Paul Pluzhnikov  changed:

   What|Removed |Added

 CC||ppluzhnikov at google dot com

--- Comment #2 from Paul Pluzhnikov  ---
Google ref: b/18933287


[Bug rtl-optimization/64557] get_addr in true_dependence_1 cannot handle VALUE inside an expr

2015-01-10 Thread wmi at google dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64557

--- Comment #1 from wmi at google dot com ---
The experimental patch is to call get_addr for VALUE of base before plus other
constant, when creating mem_addr for dependence check and for store_info.
bootstrap and regression on x86_64-linux-gnu are ok. 

Index: dse.c
===
--- dse.c(revision 219421)
+++ dse.c(working copy)
@@ -1564,6 +1564,7 @@ record_store (rtx body, bb_info_t bb_inf
 = rtx_group_vec[group_id];
   mem_addr = group->canon_base_addr;
 }
+  mem_addr = get_addr (mem_addr);
   if (offset)
 mem_addr = plus_constant (get_address_mode (mem), mem_addr, offset);
 }
@@ -2177,6 +2178,7 @@ check_mem_read_rtx (rtx *loc, bb_info_t
 = rtx_group_vec[group_id];
   mem_addr = group->canon_base_addr;
 }
+  mem_addr = get_addr (mem_addr);
   if (offset)
 mem_addr = plus_constant (get_address_mode (mem), mem_addr, offset);
 }