Re: POINTER_PLUS branch status?

2007-05-29 Thread Jeffrey Law
On Mon, 2007-05-28 at 15:29 -0700, Mark Mitchell wrote:
> Andrew --
> 
> I'm trying to firm up GCC 4.3 planning a bit.  One of the things I'm
> considering is whether or not the POINTER_PLUS branch should be merged
> as part of 4.3.  My understanding from looking at your emails is that
> the branch is in pretty good shape.
> 
> Would you please give me a summary of the status?  Are there regressions
> on major platforms?
> 
> Also, does anyone feel that this representation change is a bad thing?
> Are there any objections to merging this branch in principle, assuming
> that it's not causing regressions, either in generate code or at compile
> time?
No objections from me -- I'm just happy someone went through the 
trouble of fixing all the issues necessary to make PTR_PLUS work.
When I looked at what it would take to break out pointer arithmetic
from normal arithmetic it looked to be rather ugly.

I haven't followed PTR_PLUS development at all -- what specifically
spurred you to hack on this Andrew?

Jeff



Re: [testsuite gfortran] partial fix for secnds*.f

2007-05-29 Thread R. D. Flowers, Chattanooga TN USA



Rask Ingemann Lambertsen wrote:

On Mon, May 28, 2007 at 05:14:51PM +, R. D. Flowers, Chattanooga TN USA 
wrote:


I think we should use parentheses to enforce the order.


I could be missing something here, and it is almost separate statements, 
and might be ugly, but -- comma clauses?


foo=term1,foo+=term2,foo+=term3 ... ;



http://gcc.gnu.org/bugs.html#nonbugs_c>



The link you supplied points to potential problems if there are 
inadequate sequence points in the presence of side-effects. It doesn't 
mention comma clauses, does it?


I do not see the problem when providing adequate sequence points ( what 
AFAIK is the sole purpose of comma's in a statement -- comma clauses ), 
and when the terms are constants or simple expressions (so no side-effects).


Am I missing something embarassingly obvious ( comma got removed from 
the C standard or something )?


Re: Compatibility between object code of gcc versions

2007-05-29 Thread Andrew Haley
Lu

Re: [testsuite gfortran] partial fix for secnds*.f

2007-05-29 Thread Rask Ingemann Lambertsen
On Tue, May 29, 2007 at 03:10:57AM +, R. D. Flowers, Chattanooga TN USA 
wrote:
> 
> Rask Ingemann Lambertsen wrote:
> >On Mon, May 28, 2007 at 05:14:51PM +, R. D. Flowers, Chattanooga TN 
> >USA wrote:
> >
> >>foo=term1,foo+=term2,foo+=term3 ... ;
> >
> >http://gcc.gnu.org/bugs.html#nonbugs_c>

> Am I missing something embarassingly obvious ( comma got removed from 
> the C standard or something )?

   No, I misread your suggested code, I don't think the link applies to this
case.

-- 
Rask Ingemann Lambertsen


Different classes for base registers

2007-05-29 Thread Tal Agmon
Hi,

I'm working on a new target port in which there are different base
registers 
allowed depending on the offset:
r0-r7 are allowed as base register only when the offset is zero.
r6-r7 are allowed as base register for every offset.

I'm wondering if gcc is prepared for such scenario, examine the code in 
find_reloads_address(), for the architecture I'm working on, it seems
the 
condition here should be true, because it might not be valid because the
base reg isn't r6-r7, not only because the disp is too large.
Yet it fails because of REG_MODE_OK_FOR_BASE_P (XEXP (ad, 0), mode).


  /* If we have address of a stack slot but it's not valid because the
 displacement is too large, compute the sum in a register.
 Handle all base registers here, not just fp/ap/sp, because on some
 targets (namely SH) we can also get too large displacements from
 big-endian corrections.  */
  else if (GET_CODE (ad) == PLUS
 && REG_P (XEXP (ad, 0))
 && REGNO (XEXP (ad, 0)) < FIRST_PSEUDO_REGISTER
 && REG_MODE_OK_FOR_BASE_P (XEXP (ad, 0), mode)
 && GET_CODE (XEXP (ad, 1)) == CONST_INT)
{
  /* Unshare the MEM rtx so we can safely alter it.  */
  if (memrefloc)
  {
*memrefloc = copy_rtx (*memrefloc);
loc = &XEXP (*memrefloc, 0);

if (removed_and)
  loc = &XEXP (*loc, 0);
  }
...
 
Is there any way to get along by defining r0-r7 as legal base regs and
deal 
with r6-r7 in GO_IF_LEGITIMATE_ADDRESS and in the constraint
definitions, 
or am I right with my assumption that gcc doesn't support that?

Does someone knows if there's a target with a similar behavior?

Thanks in advance,

Tal Agmon.


Interpreting LSDA information

2007-05-29 Thread Yaakov Yaari

Hi,
LSDA (Language Specific Data Area) is used to store exception handling
information at the exception catch site, see
http://www.codesourcery.com/cxx-abi/exceptions.pdf.

For various kinds of binary analyzers (translators, optimizers) it is
useful to be able to interpret the LSDA of a given C++ function. So, once
the LSDA extent is identified, are there any tools, scripts, code snippets,
that can analyze and interpret this LSDA  in a raw byte form and produce a
textual interpretation of it?

Thanks,
---
Yaakov  Yaari
IBM Haifa Research Lab



Re: Different classes for base registers

2007-05-29 Thread Rask Ingemann Lambertsen
On Tue, May 29, 2007 at 03:56:38PM +0300, Tal Agmon wrote:
> Hi,
> 
> I'm working on a new target port in which there are different base
> registers 
> allowed depending on the offset:
> r0-r7 are allowed as base register only when the offset is zero.
> r6-r7 are allowed as base register for every offset.

   I think a new macro along the lines of MODE_CODE_BASE_REG_CLASS might do
the trick.

   Perhaps this family of macros needs to be cleaned up, so you have:

RTX_BASE_REG_CLASS(x)
RTX_INDEX_REG_CLASS(x)

where x is the address expression as an RTX.

-- 
Rask Ingemann Lambertsen


Re: Target Hook not getting recognized - GCC 4.1.1

2007-05-29 Thread Ian Lance Taylor
"Rohit Arul Raj" <[EMAIL PROTECTED]> writes:

> I have defined a target hook TARGET_EXPAND_BUILTIN_SAVEREGS (GCC
> 4.1.1) as an alternative to TARGET_SETUP_INCOMING_VARARGS so as to
> code ___builtin_saveregs as per my target. But this target hook is not
> getting recognized.
> 
> Is there anything else this target hook depends on?

What do you mean by "is not getting recognized?"

That target hook should always be used for code which calls
__builtin_saveregs.  It's not clear to me that there is any normal
case in which that function will be called.

Ian


Re: POINTER_PLUS branch status?

2007-05-29 Thread Bob Wilson

Andrew Pinski wrote:

I cleaned up the code today so it basically ready to be merged, some
(most?) of the target headers still need to be fixed for the change.
The list of targets which need to be changed is:
alpha   ia64  mips   pa
s390sparcstormy16xtensa

I don't have access to any of those targets (and I have not built a
sim based compiler yet).  I would like help converting those last 8,
the patch should mirror what was done for rs6000, spu or sh.


I'm happy to fix up the Xtensa port for this, but I might not get to it right 
away.  Please don't let me hold you up.  Go ahead and merge it whenever it's 
ready and I'll fix up the Xtensa port after the merge.


--Bob


Re: Interpreting LSDA information

2007-05-29 Thread Ian Lance Taylor
Yaakov Yaari <[EMAIL PROTECTED]> writes:

> LSDA (Language Specific Data Area) is used to store exception handling
> information at the exception catch site, see
> http://www.codesourcery.com/cxx-abi/exceptions.pdf.
> 
> For various kinds of binary analyzers (translators, optimizers) it is
> useful to be able to interpret the LSDA of a given C++ function. So, once
> the LSDA extent is identified, are there any tools, scripts, code snippets,
> that can analyze and interpret this LSDA  in a raw byte form and produce a
> textual interpretation of it?

It's probably rather more simple minded than you want, but you can get
a dump of sorts by using readelf --debug-dump=frames.

Ian


Re: Bugzilla wishes (Was: Volunteer for bug summaries?)

2007-05-29 Thread Joe Buck
On Mon, May 28, 2007 at 07:29:33AM -0400, Daniel Berlin wrote:
> On 5/28/07, Rask Ingemann Lambertsen <[EMAIL PROTECTED]> wrote:
> >On Wed, May 23, 2007 at 02:06:21PM -0400, Daniel Berlin wrote:
> >
> >> I have to look into bugzilla 3.0 migration first though.  Bugzilla 3.0
> >> introduces a custom fields mechanism, and i'd rather at least store
> >> our data using that, than editing the schema wholesale like we do now
> >> (which is *much* harder to port between versions of bugzilla, and one
> >> of the reason we've had trouble keeping up).
> >
> >   Bug reports have build, host and target fields. Search results show just
> >the host field, which is rarely of any use. I think it would be great if
> >instead the target field were shown. Build system maintainers might want to
> >see the build field instead.
> 
> You can customize what fields are shown on the search results, if you like.
> It used to be the target field, but it was requested to change it to
> the the host field.

The problem is that people don't fill in these fields on a
consistent basis, or, for a native compiler, they pick one of the
three to fill in and leave the others blank, but they make different
choices.

I suppose that the form could ask whether it's a native, cross, or
Canadian cross, and then expose the extra fields, but that might be too
painful and it doesn't fix the existing data.




Re: Fixed-point branch?

2007-05-29 Thread Nigel Stephens



Mark Mitchell wrote:

Chao-Ying, I'm also interested in whether or not these changes have any
impact on C++.  With your changes, does GNU C++ now accept any
fixed-point constructs? 


Chao-ying's on vacation this week. AFAIK Chao-ying's code does nothing explicit 
to support, or not support, C++. The front-end code was based on the Decimal 
floating point extension, so should currently behave in a similar fashion to 
that with regards C++.



 If so, are you aware of any effort to
standardize any of this functionality in C++?  


Annex F (page 96) of the N1169 spec 
(http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1169.pdf) does give some 
"guidelines" for C++ usage, but only a very hand-wavy couple of paragraphs. I 
guess we can ask the committee members if there is any work going on in this area.



(I think that my
preference, in the short term, would be to disable this functionality in
C++ -- although, of course, we will eventually want to turn it on so
that GNU C++ is as much as possible a superset of GNU C.)

  


OK

Nigel


Re: special keyword for silent wrong-code bugs

2007-05-29 Thread Joern Rennecke
> If we segfault for printf("%d\n", 2+2), the bug would not be in this
> category.  If we printed 5, it would be.

So what if the printf statement is executed only once every leap year?
What if it segfaults only if you have one out of several thousand
address space randomization patterns?

Your distinction has no practical value when considering miscompilations of
single translation units, since the triggering of the bug depends on the
miscompiled function being called, and being called with just the right
preconditions to trigger the bug.


[tuples] mainline merged into branch

2007-05-29 Thread Aldy Hernandez
...as of rev 125166.

No surprises.

Aldy


.eh_frame section

2007-05-29 Thread sfora dim

Hello,

I read that the eh_frame is for exceptions support,
for languages like C++ for instance.

I wonder why when I compile standard C programs using "gcc -v simple.c"
I can see that the linker adds the "--eh-frame-hdr" parameter ?

After all there is no use for the eh section when we don't support
exceptions, no ?

thank you
sfora


Re: Volunteer for bug summaries?

2007-05-29 Thread Mark Mitchell
Daniel Berlin wrote:

>> 1. Add a field to bugzilla for the SVN revision at which a particular
>> regression was introduced.  Display that in bugzilla as a link to the
>> online SVN history browser so that clicking on a link takes us from the
>> PR straight to the checkin.  This field value ought to be the most
>> recent revision to the GCC trunk such that the bug did not occur in the
>> previous revision, but does occur in all subsequent revisions.
>>
>> Danny B., would you be willing to do this?
> 
> Sure.

Thanks!

There was some subsequent discussion about exactly what ought to be
stored.  FWIW, I agree that storing a range might be useful, but I think
it's important that we impose enough structure that we can easily run
queries without having to do a lot of parsing on the field.  Just my two
cents, though.

> I have to look into bugzilla 3.0 migration first though.

Understood.

Thanks,

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: .eh_frame section

2007-05-29 Thread Ian Lance Taylor
"sfora dim" <[EMAIL PROTECTED]> writes:

> I read that the eh_frame is for exceptions support,
> for languages like C++ for instance.

Yes.

> I wonder why when I compile standard C programs using "gcc -v simple.c"
> I can see that the linker adds the "--eh-frame-hdr" parameter ?

That option is always used if the linker supports it.

> After all there is no use for the eh section when we don't support
> exceptions, no ?

Ideally the linker would not generate an EH header if there is no
exception frame information.

It is possible to use gcc to link C++ code, and it is desirable to
always create an EH header if there is any exception frame
information, so if there is a problem here I think it should be fixed
in the linker.

Ian


Re: POINTER_PLUS branch status?

2007-05-29 Thread Andrew Pinski

On 5/29/07, Jeffrey Law <[EMAIL PROTECTED]> wrote:

I haven't followed PTR_PLUS development at all -- what specifically
spurred you to hack on this Andrew?


For spu-elf, good alignment information is needed for each load/store
as each load/store is only done on 128bit alignment.  Since we lose a
lot of alignment in 4.0 after
http://gcc.gnu.org/ml/gcc-patches/2004-06/msg00020.html
Which actually mention you were working on this before (but it looks
it was dropped by you).

The next step is to see if that patch is no longer needed for hppa
(well and fixing the hppa back-end).
And this improvement alignment information should improve the code
size for spu-elf (which is important to me as we are only playing with
256k of memory).

Thanks,
Andrew Pinski


Re: Bribing a reviewer

2007-05-29 Thread Mike Stump

On May 25, 2007, at 12:26 PM, Thomas Neumann wrote:

Unfortunately reviewing as been, ahem, a bit slow.


:-(  I'd ask if the SC has had any luck finding suitable reviewers  
yet...  I do think Fortran has about the right number judging from the  
latency on patch review.  They have about 1 reviewer per 26k lines of  
code.  C++ has about 63K per reviewer.  And, the rest of the compiler,  
well, lets just say that if we compare the number of reviewers with  
the numbers of lines, it goes up from there I bet.  If we compare with  
the number of actual recent reviewers instead of the theoretic maximal  
number of reviewers, I think the numbers go up even further.  I think  
the SC doesn't want more global people, then, I think we should farm  
out the bits that are suffering from review bandwidth into new groups  
that may be easier to find maintainers for.


Re: Bugzilla wishes (Was: Volunteer for bug summaries?)

2007-05-29 Thread Daniel Berlin

On 5/29/07, Joe Buck <[EMAIL PROTECTED]> wrote:

On Mon, May 28, 2007 at 07:29:33AM -0400, Daniel Berlin wrote:
> On 5/28/07, Rask Ingemann Lambertsen <[EMAIL PROTECTED]> wrote:
> >On Wed, May 23, 2007 at 02:06:21PM -0400, Daniel Berlin wrote:
> >

.

>
> You can customize what fields are shown on the search results, if you like.
> It used to be the target field, but it was requested to change it to
> the the host field.

The problem is that people don't fill in these fields on a
consistent basis, or, for a native compiler, they pick one of the
three to fill in and leave the others blank, but they make different
choices.

I suppose that the form could ask whether it's a native, cross, or
Canadian cross, and then expose the extra fields, but that might be too
painful and it doesn't fix the existing data.



We have these fields not because we necessarily decided they were
useful, but because they were in gnats.

I have no aversion to removing/replacing/whatevering any/all of them
with something better.

I'm also happy to write converters for our current data into whatever
we decide is more useful.


fixinclude, math.h and Darwin???

2007-05-29 Thread Jack Howarth
   Can anyone explain exactly how and when the file...

gcc/fixincludes/tests/base/architecture/ppc/math.h

is used when building gcc on Darwin PPC? I ask because I
just noticed that it contains the remapping of the long
double math calls to use the appended $LDBL128 suffix.
I am wondering if it is possible that our problem with
these long double calls in gfortran on Darwin PPC could
be as simple as gfortran not using this fixed math header
on Darwin PPC. Thanks in advance for any clarifications.
  Jack


Dorit, Richi and Zdenek appointed Auto-Vectorizer maintainers

2007-05-29 Thread David Edelsohn
I am pleased to announce that the GCC Steering Committee has
appointed Dorit Nuzman, Richard Guenther, and Zdenek Dvorak as
Auto-Vectorizer maintainers.

Please join me in congratulating Dorit, Richard, and Zdenek on their
new role.  Please update your listings in the MAINTAINERS file.

Happy hacking!
David



Re: .eh_frame section

2007-05-29 Thread sfora dim

On 29 May 2007 15:27:43 -0700, Ian Lance Taylor <[EMAIL PROTECTED]> wrote:

> I wonder why when I compile standard C programs using "gcc -v simple.c"
> I can see that the linker adds the "--eh-frame-hdr" parameter ?

That option is always used if the linker supports it.

> After all there is no use for the eh section when we don't support
> exceptions, no ?

Ideally the linker would not generate an EH header if there is no
exception frame information.

It is possible to use gcc to link C++ code, and it is desirable to
always create an EH header if there is any exception frame
information, so if there is a problem here I think it should be fixed
in the linker.


I don't know if it is a problem. If it's a pure C program, and we're giving
the linker the "--eh-frame-hdr" - does it still generate the EH header ?
if so - does it waste memory ?
if yes, maybe the gcc driver should pass that parameter to the linker only
when there really is exception frame information ?

thank you
sfora


Ian