Re: regeneration of files

2006-10-29 Thread FX Coudert

I commited the regenerated libgfortran files on mainline (rev. 118140):

2006-10-29  Francois-Xavier Coudert  <[EMAIL PROTECTED]>

* configure: Regenerate.
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.

Maybe you have an old version of libgfortran/config.h.in, because  
when I regenerate it there's nothing changed.


FX


Build failure in dwarf2out

2006-10-29 Thread Paul Thomas

I am being hit by this:

rf2out.c -o dwarf2out.o
../../trunk/gcc/dwarf2out.c: In function `file_name_acquire':
../../trunk/gcc/dwarf2out.c:7672: error: `files' undeclared (first use 
in this f

unction)
../../trunk/gcc/dwarf2out.c:7672: error: (Each undeclared identifier is 
reported

only once
../../trunk/gcc/dwarf2out.c:7672: error: for each function it appears in.)
../../trunk/gcc/dwarf2out.c:7672: error: `i' undeclared (first use in 
this funct

ion)
make[2]: *** [dwarf2out.o] Error 1
make[2]: Leaving directory `/svn/build/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/svn/build'
make: *** [all] Error 2

No matter how I configure the build on a system (Cygwin_NT/amd64) with 
which I have never had any problem before.


Can someone advise, please?

Paul


Re: Build failure in dwarf2out

2006-10-29 Thread Tim Prince

Paul Thomas wrote:

I am being hit by this:

rf2out.c -o dwarf2out.o
../../trunk/gcc/dwarf2out.c: In function `file_name_acquire':
../../trunk/gcc/dwarf2out.c:7672: error: `files' undeclared (first use 
in this f

unction)
../../trunk/gcc/dwarf2out.c:7672: error: (Each undeclared identifier is 
reported

only once
../../trunk/gcc/dwarf2out.c:7672: error: for each function it appears in.)
../../trunk/gcc/dwarf2out.c:7672: error: `i' undeclared (first use in 
this funct

ion)


My guess is that the #define activating that region of code is 
erroneously triggered.  I am running the 2-day (on cygwin with a 
substandard BIOS) testsuite now.


Splay Tree

2006-10-29 Thread Ian Blanes


Could this patch be applied now?
http://gcc.gnu.org/ml/gcc/2006-07/msg00210.html

Discussion starts here:
http://gcc.gnu.org/ml/gcc/2006-07/msg00147.html (benchmarks are wrong)

Original patch posted by Brian Makin here:
http://gcc.gnu.org/ml/gcc-patches/2005-10/msg00762.html

Quote:

I've been recently looking at the splay tree implementation. I've noticed 
that this revision http://gcc.gnu.org/viewcvs?view=rev&revision=106584
does a strange splaying. It does a bottom up splaying but starting at the 
root (not the same that top down). It works but performs worst. One 
example of this is that while in the implementation described in 
http://www.cs.cmu.edu/~sleator/papers/self-adjusting.pdf the root node 
ends at most two levels down, in the current implementation it can end at 
an arbiratry depth (example attached). So the property of keeping recently 
used nodes up doesn't work.


ian


Re: Build failure in dwarf2out

2006-10-29 Thread Paul Thomas

Tim,
My guess is that the #define activating that region of code is 
erroneously triggered.  I am running the 2-day (on cygwin with a 
substandard BIOS) testsuite now.
I decided to set it to #if 0 just as I saw your mail - it is now 
building just fine; I haven't tested it yet but I guess, since it got 
past stage 2, all is well.


Nathan,

dwarf2 is throughly foreign territory for me - however, I notice your 
ChangeLog entry of 2006-10-24.  I suppose the patch must have included:


#if defined (DIR_SEPARATOR_2)
 {
   char *g = strrchr (files[i].path, DIR_SEPARATOR_2);

   if (g != NULL)
 {
   if (f == NULL || f < g)
 f = g;
 }
 }
#endif

This is breaks Cygwin_NT (CYGWIN_NT-5.2-WOW64 NONE-X6EIN5I8FN 
1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin)/amd64 build for any 
configuration that I have been able to dream up.


Cheers

Paul


Bug? Exceptions and implicit constructors.

2006-10-29 Thread Brendon Costa
Hi all,

Is this a bug in GCC or does the code below incorrectly use exceptions
and virtual inheritance?


I expect the code below to display:

Constructing child2.
Caught exception: 3

However it causes an abort after displaying the first line. Looking
further into this i found that when GCC creates the implicit default
constructor for the GrandChild class, it gives it a no-throw specifier:
throw()



Usually when GCC creates an implicit default constructor it gives it a
no-throw specifier if that class and all its parents only construct
primitive data without calling on user defined constructors. In the case
below GCC seems to ignore that it uses a user defined constructor
defined in Child2() I assume because of the virtual inheritance.

To work around the problem, it is a simple matter of defining a default
constructor in GandChild OR even adding an attribute to the GandChild
class that has complex construction like std::string. E.g. Change
GrandChild class to look like:

class GrandChild : public Child1, public Child2
{
public:
   std::string  s;
};

Thanks,
Brendon.





class Parent
{
public:
   int data;
};

class Child1 : public virtual Parent
{
};

class Child2 : public virtual Parent
{
public:
   Child2()
   {
  std::cout << "Constructing child2." << std::endl;
  throw 3;
   }
};

class GrandChild : public Child1, public Child2
{
};

int main()
{
   try
   {
  GrandChild c;
   }
   catch(int i)
   {
  std::cout << "Caught exception: " << i << std::endl;
   }
   return 0;
}



Povray benchmark results

2006-10-29 Thread Uros Bizjak

Hello!

Following are the results of povray 3.6.1 official benchmark 
(benchmark.ini) on:


vendor_id   : AuthenticAMD
cpu family  : 15
model   : 47
model name  : AMD Athlon(tm) 64 Processor 3000+
stepping: 2
cpu MHz : 1809.278
cache size  : 512 KB

Base compile flags of "gcc version 4.3.0 20061029" were set to:
-O3 -msse3 -ffast-math -march=k8 -mtune=k8 -minline-all-stringops

Different -mpfmath selections were benchmarked:

a) -mfpmath=sse
user27m33.848s

b) -mfpmath=387
user27m42.136s

c) -mfpmath=sse,387
user26m0.312s

These results were obtained with Richard's SSE rounding functions, top 
of ChangeLog was:

2006-10-29  Richard Guenther  <[EMAIL PROTECTED]>
   * config/i386/i386-protos.h (ix86_expand_trunc): Declare.

Nice to see that there is life in -mfpmath=sse,387 ;) It was faster than 
a) and b) by some 6%.


Uros.



Re: submitting patches before copyright assignment fully done?

2006-10-29 Thread Ian Lance Taylor
Basile STARYNKEVITCH <[EMAIL PROTECTED]> writes:

> My copyright assignment is not yet signed, but I am pretty confident that it
> will be signed (hopefully soon, and surely in 2006 ie before Christmas).
> 
> Can I submit patches (to gcc-patches@) which are not trivial (ie more than
> 10 lines of code), or should I wait till the copyriight assigment has been
> recieved by the FSF (signed by my employing organisation and by FSF?

The safest approach for all is to wait until the copyright assignment
has been received.  Thanks, and sorry for the inconvenience.

Ian


Re: wiki topics wish (configuration related)

2006-10-29 Thread Ben Elliston
> 0. I am not sure to understand exactly the steps (and commands to
> run) when touching to a configure.ac file... I made an educated
> guess which happens to work most of the time. (In particular it
> seems that autconf2.60 works even if 2.59 is required)

If you only modify `configure.ac', then it is sufficient to run
autoconf.  However, if you aren't sure about what you're doing, it is
better to configure your build tree with --enable-maintainer-mode and
then the Makefiles will take care of regenerating files for you.

Ben


Re: regeneration of files

2006-10-29 Thread Tom Tromey
> "Mike" == Mike Stump <[EMAIL PROTECTED]> writes:

Mike> I found quite a few files out of date...

[...]
Mike> libjava/configure

I updated (svn trunk) and re-ran autoconf here, and didn't see any
change.

What version of autoconf are you using?  I'm using the 2.59 that comes
with FC5.

Mike> I noticed quite a variety in the options for aclocal.  :-(

This isn't a necessarily a problem -- e.g. the libjava ACLOCAL_AMFLAGS
includes '-I .' to pick up local .m4 files, and this is ok as a
difference from, say, the boehm-gc value.

Offhand libffi's looks incorrect, it should probably include
../config.  zlib should probably have this setting too (though I
didn't look to see whether this makes a difference).

Tom



Re: Abt RTL expression - Optimization

2006-10-29 Thread Rohit Arul Raj

Hi all,

The problem due to which the below mentioned program was not working
is because of CODE HOISTING pass. I just masked the code hoisting step
and the program worked fine.

1. The instruction no's 11, 12, 13 are removed when -Os optimization
is enabled (it considers n, h as dead). Is there any way to emit RTL
Instruction such that it can be neglected by Code Hoisting pass.

; Start of basic block 0, registers live: (nil)
(note 9 6 11 0 [bb 0] NOTE_INSN_BASIC_BLOCK)

(insn 11 9 12 0 (parallel [
   (set (reg/f:SI 28)
   (symbol_ref:SI ("n") [flags 0x2] ))
   (clobber (reg:CC 21 cc))
   ]) 22 {movsi_long_const} (nil)
   (nil))

(insn 12 11 13 0 (set (reg:SI 29 [ n ])
   (mem/c/i:SI (reg/f:SI 28) [2 n+0 S4 A32])) 15 {movsi_load} (nil)
   (expr_list:REG_EQUAL (mem/c/i:SI (symbol_ref:SI ("n") [flags 0x2]
) [2 n+0 S4 A32])
   (nil)))

(insn 13 12 50 0 (set (reg:CC 21 cc)
   (compare:CC (reg:SI 29 [ n ])
   (const_int 30 [0x1e]))) 68 {*cmpsi_internal} (nil)
   (nil))

2. Any documentation on Code Hoisting Algorithm used by GCC 4.1.1?


Regards,
Rohit

On 26 Oct 2006 22:30:43 -0700, Ian Lance Taylor <[EMAIL PROTECTED]> wrote:

"Rohit Arul Raj" <[EMAIL PROTECTED]> writes:

> > > This small bit of code worked fine with all optimization except Os.


   unsigned int p;

> > > unsigned int n = 30;
> > > void x ()
> > > {
> > >  unsigned int h;
> > >  h = n <= 30;   // Line 1
> > >  if (h)
> > >p = 1;
> > >  else
> > >p = 0;
> > > }
> > >
> > > when we tried to debug the emitted RTL instruction for Os, it was
> > > found that RTL instruction for Line #1 (Compare and gtu) were not at
> > > all emitted. i.e. there is no reference with respect to "h or n". For
> > > the same optimization Os, if we declare the identifier "h" as global,
> > > it generates the instructions properly.
> >
> > That small bit of code won't compile, since 'p' is undeclared.  If 'p'
> > is a global variable, then this certainly seems to be a bug.  But you
> > should be aware that -Os changes inlining behaviour, and different
> > inlining may cause different behaviour here depending on how 'p' is
> > used.
>
> p is a global variable. But the problem is not with p, but with
> codegeneration for h, n.

Sure.  But the most likely reason that the test of 'h' is being
removed is that the compiler thinks that there is no need to store to
'p'.  And once the test of 'h' is removed, there is no need to test
'n'.

> In the RTL dump after cse2 pass, i do have the code for h, n. But in
> the RTL dump after life analysis, that part of code is missing.
> Is this output of cse2 pass used for life analysis?

If I understand the question correctly, then the answer is yes.  The
compiler works by creating an intermediate representation (IR) and
then manipulating it.  The cse2 pass runs on the IR, then the life1
pass runs on the IR.  The .cse2 file contains a dump of the IR after
the cse2 pass is complete.


> > > 3. What are the probable causes for the elimination of RTL code's
> > > (Compare & gtu) between the above mentioned passes?
> >
> > The probable cause is that 'p' appears to be unused, and the
> > assignment to 'p' is dead.
> >
> since p is a global variable, it can be used in other functions. Any
> other causes?

I can't think of any.


> 4. If i disable gcse optimization pass, (i.e. -Os -fno-gcse), the code
> is generated properly for h , n and the program works fine (it failed
> for -Os). How does gcse affect code generation at .life1 pass.

The gcse pass can change the IR significantly, and thus affects the
life1 pass in many different ways which are difficult to characterize.

You really have to look at what exactly is going on.

ian