patch that caused regression PR optimization/7154

Janis Johnson
Tue Dec 17 16:48:00 GMT 2002

The regression reported in PR optimization/7154 showed up starting
with this patch:

2002-05-28  Richard Henderson  <>

	* 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/ (tablejump): Reformat.  Do not set
	(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:> for instructions.

I'll add this information to the PR.


More information about the Gcc mailing list