This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]