Home > Internal Compiler > Internal Compiler Error In Save_call_clobbered_regs At Caller-save.c

Internal Compiler Error In Save_call_clobbered_regs At Caller-save.c

Comment 38 dave 2004-05-27 20:17:12 UTC Subject: Re: [3.3/3.4 regression] caller-save.c:491: int > Did you use the same GC parameters as Richard, namely --param > ggc-min-expand=100 > --param ggc-min-heapsize=131072? It works. It's the object pointed to by reg_known_value[294] that's being poisoned. Is this patch really required on that branch? [My personal feeling is that touching the GC should not be allowed on a release branch and that we started to pull the http://mttags.com/internal-compiler/internal-compiler-error-in-instantiate-virtual-regs-lossage-at-function-c.php

Such functions will not be profiled when profiling is enabled for the rest of the program. It is used for two variables in the Plan 9 kernel, u and m. If a useful instruction cannot be found to fill a delay slot, the loader will insert ‘‘noop’’ instructions. bl->init_insn || INSN_UID (bl->init_insn) >= max_uid_for_loop || (REGNO_FIRST_LUID (bl->regno) @@ -2754,7 +2754,7 @@ || (REGNO_FIRST_UID (REGNO (v->dest_reg)) != INSN_UID (XEXP (tem, 0))))) /* Line above always fails if INSN was moved https://bugs.python.org/issue16529

The loader uses a multiple pass algorithm to resolve the branch lengths [Szy78]. In standard x86_64 ABI %rdi is invalidated by the call and present in the hard reg set to invalidate, so it is removed again, and perhaps if there is some target The alias_invariant array is supposed to contain RTX objects and these are always allocated via GC as far as I know. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45063 [email protected] Reply | Threaded Open this post in threaded view ♦ ♦ | Report Content as Inappropriate ♦ ♦ [Bug target/45063] [4.6 Regression] ICE: Segmentation fault (cc1)

  1. Thanks to all of you.
  2. About 65% of these are useful instructions and 35% are ‘‘noops.’’ The vendor-supplied assembler does this job more effectively, filling about 80% of the delay slots with useful instructions.
  3. C.
  4. If it works, I'll apply it immediately, plus > Eric's patch.

Could be doable by bisection.----------nosy: +jcea_______________________________________Python tracker <http://bugs.python.org/issue16529>_______________________________________ reply Tweet Search Discussions Search All Groups Python python-bugs-list Discussion Posts Previous Marc-Andre Lemburg: New submission from Marc-Andre Lemburg: When trying git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187459 138bc75d-0d04-0410-961f-82ee72b054a4 after this commit, wine will fail to build (with default -O2 settings, gcc will crash with an internal error). I have > added the "rtx *" cast for K&R compatibility. > > I have built the testcase provided with PR15660 and the current version > of the pooma-2.4.0 with -O2 In both, there is a degree of uncertainty about what registers need to be saved.

I want to help all interested parties to get forward. -- Gaby Comment 22 Eric Botcazou 2004-05-26 18:49:12 UTC No, Richard discovered other regressions in the POOMA testsuite that were introduced Comment 16 Jakub Jelinek 2013-04-24 18:24:23 UTC Reduced testcase (non-runtime, but one can see that %rdi which should be clobbered by the memcpy call is used immediately after the memcpy call). that now we emit memcpy call as: Comment 25 Uroš Bizjak 2014-10-03 16:30:55 UTC Patch in testing: --cut here-- Index: regcprop.c =================================================================== --- regcprop.c (revision 215852) +++ regcprop.c (working copy) @@ Anything else to test?

The difference is, that previously we emit memcpy call as: #(call_insn:TI 24 23 27 3 (set (reg:DI 0 ax) # (call (mem:QI (symbol_ref:DI ("memcpy") [flags 0x41] ) [0 memcpy open all Python Home About News Documentation Download Community Foundation Core Development Issue Tracker Issues Search Random Issue Summaries Issues with patch Easy issues Stats User Login(OpenIDpossible) Remember me? I've done a complete bootstrap with no regressions on hppa-unknown-linux-gnu. Sorry, gdb isn't working very well on hppa64 at the moment.

Two problems have come up in retrospect. So, Richard should test the patch and see if it resolves his PR. This patch 2004-01-20 Zdenek Dvorak PR optimization/12440 * loop.c: Include ggc.h. (loop_optimize): Run garbage collector between optimization of loops. * Makefile.in (loop.o): Add GGC_H dependency. Modified: trunk/gcc/ChangeLog trunk/gcc/caller-save.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45063 [email protected] Reply | Threaded Open this post in threaded view ♦ ♦ | Report Content as Inappropriate ♦ ♦ [Bug target/45063]

Conditional branch instructions are inverted to prevent the insertion of unconditional branches. click site Next step may be to bisect wine's source code to see which file or files misbehave when built with -O2 but without -fno-builtin-memcpy. Comment 35 dave 2004-05-27 17:31:27 UTC Subject: Re: [3.3/3.4 regression] caller-save.c:491: int > > I can't duplicate the ICE using the gmp_test4.ii testcase. This happens in assignment statements and in argument passing where prototypes have been declared.

I could understand that the patch might cause a compilation performance regression as it prevents the garbage collection of some objects that were previously being collected. rearnsha at gcc dot gnu.org Reply via email to Search the site The Mail Archive home gcc-bugs - all messages gcc-bugs - about the list Expand Previous message Next message The The hardware was identical in both cases. http://mttags.com/internal-compiler/internal-compiler-error-unexpected-runtime-function-call.php The next pass allocates addresses for all external data.

The frame value appears to be set here: 0x00317e48 : stw r19,-cc(sp) Breakpoint 3, 0x00317e48 in iv_number_of_iterations (loop=0x40296580, desc=0x9b62d8) at ../../gcc/gcc/loop-iv.c:2605 2605 bound = Dave Comment 27 Andrew Pinski 2004-05-27 03:50:50 UTC Subject: Re: [3.3/3.4 regression] caller-save.c:491: internal compiler error: Segmentation fault On May 26, 2004, at 23:38, dave at hiauly1 dot hia dot nrc The execution time does not significantly depend on library implementation.

Thus, as I indicated previously, more information is needed about the object that caused the ICE, and how and when it was added to the alias_invariant array.

Since this code generator is so small (less than 500 lines of C) and easy, it hardly seems worth the effort. 5.7. If all of the data cannot fit into the first 64K of the data segment, then usually only a few large arrays need more expensive addressing modes. At the other end is the MIPS, which allows only registers and constant offsets from the contents of a register. Machine code optimization The next pass walks the machine code for opportunistic optimizations.

This is free software; see the source for copying conditions. Why are we realloc'ing if we're just going to zero it? */ > - alias_invariant = (rtx *)xrealloc (alias_invariant, > - reg_base_value_size * sizeof (rtx)); > - memset ((char *)alias_invariant, 0, Dave Comment 37 Eric Botcazou 2004-05-27 19:12:36 UTC Did you use the same GC parameters as Richard, namely --param ggc-min-expand=100 --param ggc-min-heapsize=131072? http://mttags.com/internal-compiler/internal-compiler-error.php Comment 4 Richard Biener 2012-01-11 13:40:21 UTC Confirmed.

Index: alias.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/alias.c,v retrieving revision 1.209.2.5 diff -u -3 -p -r1.209.2.5 alias.c --- alias.c 21 Apr 2004 19:52:36 -0000 1.209.2.5 +++ alias.c 28 May 2004 19:04:36 -0000 @@ Eric, is your patch resolved with Kenner and RTH? (they had some questions). For a further discussion of caller- vs. The patch is not fully tested.

The name and absolute line number of all #include files is also placed in the symbol table so that the debuggers can associate object code to source files. 7. The two new bits tell if a variable life crosses a function call ahead or behind. I've verified that the patch from http://bugs.python.org/issue6603 has been applied in the tarball we're using. The loader The loader is a multiple pass program that reads object files and libraries and produces an executable binary.

One optimization that is performed on all of the processors is the removal of unnecessary ‘‘move’’ instructions. The piece of code does not work: memcpy( buffer, DIR_Windows, len * sizeof(WCHAR) ); memcpy( buffer + len, default_syswow64W, sizeof(default_syswow64W) There is a wrapper around memcpy() called memcpy_unaligned() to avoid builtin/inlining. What were > > the compilation options that triggered it? The pattern is in the left column and the replacement action is in the right column.     MOVE    a->b        (remove)     (sequence with no mention of a)     USE b       USE a     (sequence with no mention of a)     SET b       SET b Experiments have shown that it is marginally worthwhile to rename

I don't have a functional x86 machine at the moment, so I can't help much in researching this problem. The names of the compliers, loaders, and assemblers are as follows: SPARC   kc  kl  ka Power   PC  qc  ql MIPS    vc  vl  va Motorola    68000  1c  1l Motorola    68020  2c  2l ARM 7500  5c  5l Intel   960  6c  6l DEC Alpha  7c  7l Intel   386  8c  8l AMD 29000  9c  9l There is a further breakdown in the source of the If we revert this on 3.5, the pa and > | > alpha won't build. We see no real solution to this problem. 9.

Most of the code in the registerization pass is machine-independent. Loops are detected and the costs are multiplied by three for every level of loop nesting. The in_use flag for the node that causes the segfault is being cleared by clear_marks. Some constants that are hard to reference are also considered for registerization.) Four separate data flow equations are evaluated over the procedure on all of these variables.

Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.404&r2=2.2326.2.405 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/alias.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.209.2.4&r2=1.209.2.5 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/rtl.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.448.4.4&r2=1.448.4.5 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/sched-deps.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.65.2.1&r2=1.65.2.2 Comment 12 John David Anglin 2004-04-21 19:59:51 UTC Fixed by on trunk. Thanks, -- Mark Comment 53 CVS Commits 2004-05-29 00:02:41 UTC Subject: Bug 14671 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: danglin@gcc.gnu.org 2004-05-29 00:02:15 Modified files: gcc : ChangeLog alias.c The enclosed patch appears to "fix" the problem but it doesn't explain why things broke with Zdenek's patch of March 18. Anyway, now attached.