This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
patch that caused regression PR optimization/7154
- From: Janis Johnson <janis187 at us dot ibm dot com>
- To: gcc at gcc dot gnu dot org, rth at redhat dot com
- Cc: rodrigc at attbi dot com, bangerth at ticam dot utexas dot edu
- Date: Tue, 17 Dec 2002 16:20:03 -0800
- Subject: patch that caused regression PR optimization/7154
The regression reported in PR optimization/7154 showed up starting
with this patch:
2002-05-28 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
not current_function_uses_pic_offset_table and
current_function_uses_const_pool; examine current_function_profile.
(ix86_expand_prologue): Likewise. Add pic_offset_table_rtx as
input to blockage if needed.
(ix86_expand_call): Do not set current_function_uses_pic_offset_table.
(legitimize_pic_address): Likewise. Set regs_ever_live for
pic_offset_table_rtx when invoked during reload.
* config/i386/i386.h (FINALIZE_PIC): Remove.
* config/i386/i386.md (tablejump): Reformat. Do not set
current_function_uses_pic_offset_table.
(tls_global_dynamic, tls_local_dynamic_base): Likewise.
(blockage): Accept anything as operand 0.
Here's a small test case that causes the ICE on the mainline and the
3.3 branch; 3.2.x is OK.
---------------
const int x[1]={ 1 };
void foo(int i, int *p)
{
asm volatile("" : "+a" (i) : "m" (x[0]), "r" (p));
}
---------------
Output from the compiler when compiled with "-c -O -fPIC" on i686-linux:
7154.c: In function `foo':
7154.c:6: internal compiler error: in verify_initial_elim_offsets,
at reload1.c:3350
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
I'll add this information to the PR.
Janis