Paulo, it seems to me that if none of the line-based passes can remove anything from a 750 KB test case, there is something weird going on.

My rough guess is that there is a memory corruption problem in the compiler and the ICE is a secondary effect of a very coincidental set of circumstances. It is possible that C-Reduce simply cannot help you very much here.

So how about this: rather than doing this reduction, just run the compiler using valgrind (using the --follow-children=yes option of course) and see if there any any smoking guns.

John



On 10/03/2013 07:35 AM, Paulo Matos wrote:
Hi,

Just to let you guys know of the following: After getting c-reduce git HEAD, 
and running it on the same example I see pass_lines 0 reducing one byte at a 
time starting from ~751000 bytes. Since this would take the rest of my life to 
reduce I decided to remove pass_lines 0 from creduce.in and make install as per 
John's suggestion. Now I see:

pmatos@poseidon:~/tmp/builds/creduce-build/creduce$ ./creduce
./min.sh  PsdInfo_6cpe.i
===< 10766 >===
running 4 interestingness test(s) in parallel
===< pass_blank :: 0 >===
===< pass_clang_binsrch :: replace-function-def-with-decl >===
===< pass_clang_binsrch :: remove-unused-function >===
(0.0 %, 751215 bytes)
(0.1 %, 750836 bytes)
===< pass_lines :: 1 >===
(-1.7 %, 764127 bytes)
===< pass_lines :: 1 >===
(-3.5 %, 777418 bytes)
===< pass_lines :: 1 >===
(-5.2 %, 790709 bytes)
===< pass_lines :: 2 >===
(-7.0 %, 804073 bytes)
===< pass_lines :: 2 >===
(-8.8 %, 817437 bytes)
===< pass_lines :: 2 >===
(-10.6 %, 830801 bytes)

Will try to remove all pass lines and see what happens.

Paulo Matos


-----Original Message-----
From: creduce-dev-boun...@flux.utah.edu [mailto:creduce-dev-
boun...@flux.utah.edu] On Behalf Of John Regehr
Sent: 02 October 2013 15:09
To: creduce-dev@flux.utah.edu
Subject: Re: [creduce-dev] Increase of size during reduction process

Hi Paulo,

This is odd behavior, I haven't seen it happen where a temporary size
increase keeps going.

You can easily disable individual passes that aren't being helpful: just
modify creduce.in and then "make install" again.

C-Reduce is deterministic so it doesn't take any kind of seed.

John


On 10/02/2013 08:02 AM, Paulo Matos wrote:

-----Original Message-----
From: Eitan Adler [mailto:li...@eitanadler.com]
Sent: 02 October 2013 14:55
To: Paulo Matos
Cc: creduce-dev@flux.utah.edu
Subject: Re: [creduce-dev] Increase of size during reduction process

On Wed, Oct 2, 2013 at 5:41 AM, Paulo Matos <pma...@broadcom.com> wrote:
Hi,

Shouldn't size increase be dismissed?

It is possible to get into local minimums which are not global minimums.



This testcase I am trying is driving me nuts.
It's currently at
(-3.3 %, 473260 bytes)

Each time a pass_blank starts it increases the size more than it decreases
during its process, therefore even though the testcase started with
===< pass_blank :: 0 >===
(0.0 %, 458340 bytes)
it is now way larger.

Is there a way to set a seed to creduce, so that I can try to avoid those
local minimums?
Maybe if I can set a seed, I can set up multiple parallel creduce and grab
the one that generates the smallest example.

Paulo Matos


Reply via email to