Related articles |
---|
GCC does not cope with my code braung@ert.rwth-aachen.de (Gunnar Braun) (2000-05-24) |
Re: GCC does not cope with my code mq@maq.org (2000-05-28) |
Re: GCC does not cope with my code webid@asi.fr (Armel) (2000-05-28) |
Re: GCC does not cope with my code chrisd@reservoir.com (Chris Dodd) (2000-05-28) |
Re: GCC does not cope with my code rus@tamu.edu (Silvius Rus) (2000-05-28) |
Re: GCC does not cope with my code bonzini@gnu.org (2000-05-28) |
Re: GCC does not cope with my code gnb@itga.com.au (Gregory Bond) (2000-05-28) |
Re: GCC does not cope with my code J.Scheerder@cwi.nl (2000-05-28) |
[3 later articles] |
From: | mq@maq.org (Michael Quinlan) |
Newsgroups: | comp.compilers |
Date: | 28 May 2000 20:58:47 -0400 |
Organization: | Compilers Central |
References: | 00-05-091 |
Keywords: | GCC, C |
Gunnar Braun <braung@ert.rwth-aachen.de> wrote:
>I'm currently developing tools that generate C++ code. The generated
>code contains a bunch of macros which are expanded by the preprocessor.
>No problem up to here. Now I'd like to compile the resulting file with
>g++, but it takes ages until I get the object file. It gets worse, if I
>try to optimize the code generation via -O (of course it gets). The
>problem is that the (source) file (after the macro expansion) isn't
>really large, it's below 700 kB. If the file gets above 700 kB, the
>compiler crashes with the famous signal 11 internal compiler error.
>[...]
>---- sample code ----
> filename="sample.cpp"
>
>//
>// The file mainly looks like the following lines:
>//
>
>void ARM7_model::execute_program_block_005()
>{
> register long oldPC;
> switch(PC)
> {
> case 0x00001798: oldPC = PC; { ; { instruction_counter++; { ; { {
>[...]
Is it possible that you are generating a switch with too many cases for
the compiler to handle efficiently? A two-level switch might help?
--
No electrons were injured in the preparation of this message.
Michael Quinlan mq@maq.org http://www.maq.org
Return to the
comp.compilers page.
Search the
comp.compilers archives again.