First Last Prev Next    No search results available      Search page      Enter new bug
Bug#: 21623
Product:  
Component:  
Status: RESOLVED
Resolution: FIXED
Assigned To: Not yet assigned to anyone <unassigned@gcc.gnu.org>
Host:
Reported against  
Priority:  
Severity:  
Target Milestone:  
 
 
Target:
Reporter: dank@kegel.com
Add CC:
CC:
Remove selected CCs
Build:
URL:
Summary:
Keywords:
Known to work:
Known to fail:

Attachment Description Type Created Size Actions
foo2.i reduced source from glibc-2.3.5 text/plain 2005-05-17 14:33 459 bytes Edit
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 21623 depends on: Show dependency tree
Show dependency graph
Bug 21623 blocks:

Additional Comments:






View Bug Activity   |   Format For Printing   |   Clone This Bug


Description:   Last confirmed: 2006-01-29 00:29 Opened: 2005-05-17 14:32
Using crosstool-0.34, building glibc-2.3.5 on sh4 is ok with gcc-3.4.3, 
fails with gcc-4.0.0.  The attached reduced testcase shows the error:

foo2.i: In function 'plural_eval':
foo2.i:78: error: insn does not satisfy its constraints:
(insn 190 188 275 24 (set (reg/v:SI 76 fr12 [orig:169 n ] [169])
        (reg:SI 147 t)) 129 {movsi_ie} (insn_list:REG_DEP_TRUE 188 (nil))
    (nil))
foo2.i:78: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:391

------- Comment #1 From dank@kegel.com 2005-05-17 14:33 -------
Created an attachment (id=8911) [edit]
reduced source from glibc-2.3.5

------- Comment #2 From Andrew Pinski 2005-06-30 12:11 -------
*** Bug 22246 has been marked as a duplicate of this bug. ***

------- Comment #3 From Kazumoto Kojima 2005-10-03 22:28 -------
This PR was discussed at the thread of gcc-patches list statring
with http://gcc.gnu.org/ml/gcc-patches/2005-09/msg01527.html and
Joern pointed out that we must improve the reload infrastrucure to
fix this PR.  There is an argument about whether it's appropriate
for stage3 or not.  I've checked in the patch in
http://gcc.gnu.org/ml/gcc-patches/2005-09/msg01952.html
as a temporary workwround on mainline and 4.0-branch under Joern's
approval.  It gets rid of the ICEs for the testcase, though it
doesn't fix the real problem.  So please don't close this PR ATM.

------- Comment #4 From Jorn Wolfgang Rennecke 2005-11-22 22:57 -------
Subject: Bug 21623

Author: amylaar
Date: Tue Nov 22 22:57:35 2005
New Revision: 107381

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=107381
Log:
        Preparatory work for PR target/21623:
        * alpha.c (secondary_reload_class): Rename to:
        (alpha_secondary_reload_class).
        * alpha.h, alpha-protos.h: Likewise.
        * mn10300.c (secondary_reload_class): Rename to:
        (mn10300_secondary_reload_class).
        * mn10300.h, mn10300-protos.h: Likewise.
        * pa.c (secondary_reload_class): Rename to:
        (pa_secondary_reload_class).
        * pa.h, pa-protos.h: Likewise.
        * rs6000.c (secondary_reload_class): Rename to:
        rs6000_secondary_reload_class.
        * rs6000.h, rs6000-protos.h: Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/alpha/alpha-protos.h
    trunk/gcc/config/alpha/alpha.c
    trunk/gcc/config/alpha/alpha.h
    trunk/gcc/config/mn10300/mn10300-protos.h
    trunk/gcc/config/mn10300/mn10300.c
    trunk/gcc/config/mn10300/mn10300.h
    trunk/gcc/config/pa/pa-protos.h
    trunk/gcc/config/pa/pa.c
    trunk/gcc/config/pa/pa.h
    trunk/gcc/config/rs6000/rs6000-protos.h
    trunk/gcc/config/rs6000/rs6000.c
    trunk/gcc/config/rs6000/rs6000.h

------- Comment #5 From Jorn Wolfgang Rennecke 2005-11-24 18:56 -------
Subject: Bug 21623

Author: amylaar
Date: Thu Nov 24 18:55:53 2005
New Revision: 107468

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=107468
Log:
        PR target/21623:

        * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
        SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
        (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
        (memory_move_secondary_cost, init_reg_autoinc): Remove
        SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
        Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
        secondary_reload_class call.
        (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
        callers.
        * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
        (push_secondary_reload): Use secondary_reload target hook.
        (secondary_reload_class, scratch_reload_class): New functions.
        (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
        SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
        SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class
call.
        * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
        (secondary_reload_class, scratch_reload_class): Declare.
        * reload1.c: Include target.h.
        (reload_adjust_reg_for_temp): New function.
        (reload_adjust_reg_for_icode): Likewise.
        (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
        Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
        call.
        (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
        for inheritance.  Support case when both secondary & tertiary reloads
        are for intermediate registers.
        (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
        with secondary_reload_class call.  Support case when both secondary
        & tertiary reloads are for intermediate registers.
        * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
        (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
        * target.h (secondary_reload_info): New struct / typedef.
        (struct gcc_target): New member secondary_reload.
        * targhooks.c Include reload.h, optabs.h and recog.h.
        (default_secondary_reload): New function.
        * targhooks.h (default_secondary_reload): Declare.
        * doc/tm.texi: Document secondary_reload target hook.  Update
        description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
        * doc/md.texi: Likewise.

        * sh-protos.h (sh_secondary_reload): Declare.
        * sh.c (TARGET_SECONDARY_RELOAD): Override.
        (sh_secondary_reload): New function.
        * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
        (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
        (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
        (HAVE_SECONDARY_RELOADS): Define.
        * sh.md (reload_indf): Rename to:
        (reload_indf__frn).
        (reload_outdf): Rename to:
        (reload_outdf__RnFRm).
        (reload_insf): Rename to:
        (reload_insf__frn).
        (reload_insi): Rename to:
        (reload_insi__i_fpul).

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/sh-protos.h
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sh/sh.h
    trunk/gcc/config/sh/sh.md
    trunk/gcc/doc/md.texi
    trunk/gcc/doc/tm.texi
    trunk/gcc/optabs.c
    trunk/gcc/regclass.c
    trunk/gcc/reload.c
    trunk/gcc/reload.h
    trunk/gcc/reload1.c
    trunk/gcc/target-def.h
    trunk/gcc/target.h
    trunk/gcc/targhooks.c
    trunk/gcc/targhooks.h

------- Comment #6 From Andrew Pinski 2006-01-29 00:29 -------
Confirmed, fixed at least on the mainline, this might be too hard to fix on the
4.1 branch.

------- Comment #7 From joern.rennecke@st.com 2006-02-13 22:02 -------
Subject: Re:  [4.0/4.1 regression] ICE in reload_cse_simplify_operands, at
postreload.c:391

Andrew Pinski wrote:

> Confirmed, fixed at least on the mainline, this might be too hard to fix on the
> 4.1 branch.

No, it is just a matter of what is desired for the branch.  Mark, would you
like
me to backport the patch from mainline to the 4.1 branch?
N.B. Kaz' cost adjustment is already in the branch, so the testcae doesn't
trigger.


------- Comment #8 From Mark Mitchell 2006-02-14 01:21 -------
Subject: Re:  [4.0/4.1 regression] ICE in reload_cse_simplify_operands,
 at postreload.c:391

Joern RENNECKE wrote:

> No, it is just a matter of what is desired for the branch.  Mark, would
> you like
> me to backport the patch from mainline to the 4.1 branch?

I think this is too aggressive for the branch at this point.  However,
we might consider it for 4.1.1, if all goes well on the mainline; feel
free to ask again after 4.1.0 is out.

Thanks,

------- Comment #9 From Mark Mitchell 2006-05-25 02:36 -------
Will not be fixed in 4.1.1; adjust target milestone to 4.1.2.

------- Comment #10 From Joseph S. Myers 2008-07-04 15:07 -------
Closing 4.1 branch.

First Last Prev Next    No search results available      Search page      Enter new bug