[gecode-users] compiler memory problem

Patrik Haslum patrik.haslum at anu.edu.au
Fri Nov 21 06:21:47 CET 2008


I tried adding various combinations of the additional flags on your 
commandline, and none made a difference. But after an upgrade to a more 
recent version of the compiler (g++ 4.3.2) it works fine. So this seems 
to have been a compiler-specific issue.

			/P at trik

Tias Guns wrote:
> Hey,
> I'm running gcc 4.1.3 and the code provided compiles and runs without 
> problems. Maybe check the compile flags used (like -finline-limit=3000), 
> those are the same flags as used for the examples (at least in version 
> 2.0.1).
> Greetings,
> Tias
> [tias at demerzel]test make
> g++ /home/tias/local/src/gecode-2.2.0/examples/support/options.o 
> /home/tias/local/src/gecode-2.2.0/examples/support/example.o -L. 
> -L/home/tias/local/src/gecode-2.2.0 -I. 
> -I/home/tias/local/src/gecode-2.2.0 -DNDEBUG -fvisibility=hidden -fPIC 
> -Wextra -Wall -pipe -ggdb -O3 -fno-strict-aliasing -finline-limit=3000 
> -ffast-math -mtune=i686 -lgecodesearch -lgecodeint -lgecodekernel 
> -lgecodesupport -lgecodegist     test.cc   -o test
> test.cc:51: warning: unused parameter ‘home’
> test.cc:51: warning: unused parameter ‘med’
> test.cc:87: warning: unused parameter ‘argc’
> test.cc:87: warning: unused parameter ‘argv’
> [tias at demerzel]test ls
> Makefile  test*  test.cc
> [tias at demerzel]test ./test
> 1
> [tias at demerzel]test gcc -v
> Using built-in specs.
> Target: i486-linux-gnu
> Configured with: ../src/configure -v 
> --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr 
> --enable-shared --with-system-zlib --libexecdir=/usr/lib 
> --without-included-gettext --enable-threads=posix --enable-nls 
> --with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1 
> --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug 
> --enable-mpfr --enable-checking=release i486-linux-gnu
> Thread model: posix
> gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
> [tias at demerzel]test
> On Thu, 20 Nov 2008 09:45:25 +0100, Christian Schulte <cschulte at kth.se> 
> wrote:
>> Hi Patrik,
>> Going by your example code, this should very definitely not pose any 
>> problem, Gecode itself uses way more elaborate constructions with 
>> patterns.
>> One reason for the problem could be the part you do not tell us: if 
>> you have code that uses a lot of inlining, then that could be a problem.
>> Otherwise, that particular version of gcc might be at fault. As I do 
>> not use gcc that much I don't know whether this version is a bad one.
>> Cheers
>> Christian
>> -- 
>> Christian Schulte, www.ict.kth.se/~cschulte/
>> -----Original Message-----
>> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On 
>> Behalf Of Patrik Haslum
>> Sent: Thursday, November 20, 2008 9:26 AM
>> To: users at gecode.org
>> Subject: [gecode-users] compiler memory problem
>> Hi,
>> I've written a custom propagator. It is based on one of the existing 
>> templates, Gecode:BinaryPropagator, with an array of boolean views as 
>> the template argument. It works, but the compiler (g++ 4.1.2) is 
>> having serious trouble with the code: if I try to use any compiler 
>> optimisation (that is, anything other than -O0), the compiler eats up 
>> all memory (including swap) and never finishes. I know that using many 
>> and/or nested templates tends to increase compiler memory use, but 
>> this case is worse than anything I've encountered before. Is this a 
>> known problem?
>> (perhaps fixed in some more recent g++ compiler). Is there some way to 
>> work around it? (other than disabling compiler optimisation, because 
>> that *really* slows down the solver). The only other option I can 
>> think of is to write the propagator from scratch, without relying on 
>> any base template.
>> Attached is a simplified version of the code (it doesn't contain any 
>> actual functionality, just the minimum that is needed to cause the 
>> compiler to behave this way).
>> Thanks,
>>             /P at trik
>> _______________________________________________
>> Gecode users mailing list
>> users at gecode.org
>> https://www.gecode.org/mailman/listinfo/gecode-users

More information about the gecode-users mailing list