Bug 20600 - [4.1 regression] failure for pass.c on x86_64-pc-linux-gnu
Summary: [4.1 regression] failure for pass.c on x86_64-pc-linux-gnu
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: rtl-optimization (show other bugs)
Version: 4.1.0
: P2 normal
Target Milestone: 4.0.0
Assignee: Paolo Bonzini
URL:
Keywords: ice-on-valid-code, patch
Depends on:
Blocks: 19454
  Show dependency treegraph
 
Reported: 2005-03-23 08:51 UTC by Paolo Bonzini
Modified: 2005-04-01 08:25 UTC (History)
1 user (show)

See Also:
Host:
Target: x86_64-pc-linux-gnu
Build:
Known to work:
Known to fail:
Last reconfirmed: 2005-03-23 23:29:29


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paolo Bonzini 2005-03-23 08:51:08 UTC
This is caused by subregs not being allowed in addresses.  The splitter
generates something that is not recognized as a *lea_1_rex64 pattern.  More on
this at

http://gcc.gnu.org/ml/gcc-patches/2005-03/msg02072.html

Paolo
Comment 1 Paolo Bonzini 2005-03-24 17:43:14 UTC
This patch should go in 4.0.0, because it blocks PR19454.
Comment 2 Paolo Bonzini 2005-04-01 08:25:14 UTC
Committed fix at http://gcc.gnu.org/ml/gcc-cvs/2005-04/msg00019.html
Comment 3 GCC Commits 2005-04-01 11:23:22 UTC
Subject: Bug 20600

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-4_0-branch
Changes by:	bonzini@gcc.gnu.org	2005-04-01 11:23:08

Modified files:
	gcc            : ChangeLog combine.c 
	gcc/config/i386: i386.c 

Log message:
	2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
	
	PR middle-end/19454
	PR rtl-optimization/20600
	
	* combine.c (gen_binary): Remove.
	(known_cond, simplify_shift_const, find_split_point,
	combine_simplify_rtx, simplify_if_then_else, simplify_set,
	simplify_logical, expand_field_assignment, extract_left_shift,
	force_to_mode, if_then_else_cond, apply_distributive_law,
	simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
	simplify_comparison, reversed_comparison): Replace with
	simplify_gen_binary, simplify_gen_relational or
	distribute_and_simplify_rtx.
	(distribute_and_simplify_rtx): New function.
	
	* config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
	to fix addresses involving EBP and ESP.
	(aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
	for SUBREGed registers.
	(legitimate_address_p): Accept SUBREGed registers.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.7592.2.107&r2=2.7592.2.108
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/combine.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.475.4.1&r2=1.475.4.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.795.6.1&r2=1.795.6.2