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 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)
Could be doable by bisection.----------nosy: +jcea_______________________________________Python tracker
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]
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
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
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 126.96.36.199 diff -u -3 -p -r188.8.131.52 alias.c --- alias.c 21 Apr 2004 19:52:36 -0000 184.108.40.206 +++ 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=220.127.116.11&r2=18.104.22.168 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=22.214.171.124&r2=126.96.36.199 Comment 12 John David Anglin 2004-04-21 19:59:51 UTC Fixed by