ICE's with -fgimple
Hi, I observed a couple of similar ICE's with -fgimple for a function having startwith. eg: void __GIMPLE (startwith ("ccp1")) foo () { return; } Compiling with -fgimple -O works fine however removing -O causes the following ICE: foo.c:7:1: internal compiler error: in expand, at cgraphunit.c:2054 } ^ 0x7d4b5c cgraph_node::expand() ../../gcc/gcc/cgraphunit.c:2054 0x7d5852 output_in_order ../../gcc/gcc/cgraphunit.c:2244 0x7d5bfd symbol_table::compile() ../../gcc/gcc/cgraphunit.c:2488 0x7d86e2 symbol_table::compile() ../../gcc/gcc/cgraphunit.c:2558 0x7d86e2 symbol_table::finalize_compilation_unit() The following ICE is observed when startwith is set to some of the later passes even with -O, starting with fre3 like vrp1, pre, strlen (but few passes after fre3 like thread1, dce2 don't cause ICE). foo.c: In function ‘foo’: foo.c:7:1: internal compiler error: in expand, at cgraphunit.c:2054 } ^ 0x7d4b5c cgraph_node::expand() ../../gcc/gcc/cgraphunit.c:2054 0x7d6217 expand_all_functions ../../gcc/gcc/cgraphunit.c:2137 0x7d6217 symbol_table::compile() ../../gcc/gcc/cgraphunit.c:2494 0x7d86e2 symbol_table::compile() ../../gcc/gcc/cgraphunit.c:2558 0x7d86e2 symbol_table::finalize_compilation_unit() ../../gcc/gcc/cgraphunit.c:2584 Thanks, Prathamesh
Re: Why are GCC Internals not Specification Driven ?
On 18/12/16 02:33, Seima Rao wrote: > Precisely, stuffs like GENERIC, GIMPLE, RTL, gas(inline assembly), > GCC extensions internals, ... and gnu's own debugging tied to gcc > (if such exist nowadays), ... are not documented in a specification > driven way. That's interesting. Can you explain what you mean by a specification- driven way? Andrew.
GCC-6.2.0 stdc-predef.h
I have all prerequisites for GCC but no stdc-predef.h that seems to be is needed. So what prerequisite do I need else for GCC to get compiled ... includes stdc-predef.h ? build: i686-pc-linux-gnu linux-2.6.26.2 gcc-4.3.1 bash-3.2.33 GNU Make 3.81 glibc-2.7...ups, but I sent you this mail anyway target: i686-pc-linux-gnu linux-4.8.12 3 stages to compile GCC - don`t you think that's too much? I think less is more - keep it simple like compiling binutils! and mybe use "make test 1" or "make test 2" for testing the stages? And I think stage 2 can only be made if the basic system is totaly compiled and ready for chroot. So I think a version check of the environment is more convenient then compiling a stage. With a version check you can know about the errors of those sources and act on the point with hints for the user what to change or to do. I think to copy glibc to the source of gcc for compilation like gmp, mpfr, mpc, isl, would be the best, too. That would solve so many problems
Re: Why are GCC Internals not Specification Driven ?
On Sun, Dec 18, 2016 at 11:37 AM, Andrew Haley wrote: > On 18/12/16 02:33, Seima Rao wrote: >> Precisely, stuffs like GENERIC, GIMPLE, RTL, gas(inline assembly), >> GCC extensions internals, ... and gnu's own debugging tied to gcc >> (if such exist nowadays), ... are not documented in a specification >> driven way. > > That's interesting. Can you explain what you mean by a specification- > driven way? I believe he's referring to top down system design, where you start from requirements (a la IEEE 830 or IEEE 29148), make design documents that meet those requirements, model them with something like IEEE 1016 (which is basically UML), and only at the end provide implementation. On GCC, the implementation tends to come earlier in the process. At least, there's probably no UML representation of GCC's design.
gcc-7-20161218 is now available
Snapshot gcc-7-20161218 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/7-20161218/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 7 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 243785 You'll find: gcc-7-20161218.tar.bz2 Complete GCC MD5=03606145ee97dcba4bdc63d89b4f3c02 SHA1=a6cb832b190842986e9bd7e87592fa0984ee7cb0 Diffs from 7-20161211 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-7 link is updated and a message is sent to the gcc list. Please do not use a snapshot before it has been announced that way.