Re: Anyone/anything still using CVS on gcc.gnu.org?

2008-07-21 Thread Richard Guenther
On Mon, Jul 21, 2008 at 6:09 AM, Kaveh R. GHAZI <[EMAIL PROTECTED]> wrote:
> On Sun, 20 Jul 2008, Richard Guenther wrote:
>
>> > The mailing list webpage still refers to CVS:
>> > http://gcc.gnu.org/lists.html
>> >
>> > Can we rename these lists (perhaps preserving an alias for the old names)
>> > so that they reflect reality?
>>
>> I don't see a reason to rename the list.
>> Richard.
>
> We don't use cvs, so "[EMAIL PROTECTED]" is misleading.

Who cares?

Richard.


http://gcc.gnu.org/projects/optimize.html Why is the biggest problem missing from this page.

2008-07-21 Thread Peter Dolding
Biggest problem is that gimple only works in source code to object.
Not with a stack of objects to exe.   This has major downsides for
static building.  To the point a lot of static builders end up sending
all .c files into gcc at once so they get cross object optimised.

One possible solution could be to cut gcc and gimple into to separate
parts.  So the build order of gcc binutils changes.  To gimple
binutils gcc.   Reason binutils and gcc both using the same
optimisation engine.  LD then gets the means when building exe's to
run all the gimple optimisations again looking for new dead code and
new predictable code produced across objects.

Binutils and Gcc both have to have optimisation engines.  If binutils
optimisation engine is poor it pulled gcc down with it.  Some way of
running equal quality optimisation on the linking stage has to be
found.

This problem need to be investigated.  Reason this effects everything
built with gcc and binutils.

Peter Dolding


RE: http://gcc.gnu.org/projects/optimize.html Why is the biggest problem missing from this page.

2008-07-21 Thread Dave Korn
Peter Dolding wrote on 21 July 2008 12:12:

> Biggest problem is that gimple only works in source code to object.
> Not with a stack of objects to exe.

  We're on the case.  You're looking for the LTO project.

http://gcc.gnu.org/wiki/LinkTimeOptimization

cheers,
  DaveK
-- 
Can't think of a witty .sigline today



Re: [RFH][tuples] Make Ada work

2008-07-21 Thread Diego Novillo

On 7/20/08 1:43 PM, Richard Guenther wrote:


--- 2318,2326 
for (i = 0; i < gimple_num_ops (s); i++)
if (TREE_SIDE_EFFECTS (gimple_op (s, i)))
  {
!   /* FIXME tuples.  This assign is over-eager at least
!  for Ada.
!   gcc_assert (gimple_has_volatile_ops (s)); */


I can't parse the comment.  What do you mean by 'This assign is over-eager'?


Diego.



Re: [RFH][tuples] Make Ada work

2008-07-21 Thread Richard Guenther
On Mon, 21 Jul 2008, Diego Novillo wrote:

> On 7/20/08 1:43 PM, Richard Guenther wrote:
> 
> > --- 2318,2326 
> > for (i = 0; i < gimple_num_ops (s); i++)
> > if (TREE_SIDE_EFFECTS (gimple_op (s, i)))
> >   {
> > !   /* FIXME tuples.  This assign is over-eager at least
> > !  for Ada.
> > !   gcc_assert (gimple_has_volatile_ops (s)); */
> 
> I can't parse the comment.  What do you mean by 'This assign is over-eager'?

I fixed the real cause of the asserts triggering.  See

http://gcc.gnu.org/ml/gcc-patches/2008-07/msg01545.html

Richard.


Re: Anyone/anything still using CVS on gcc.gnu.org?

2008-07-21 Thread David Edelsohn
> Kaveh R GHAZI writes:

Kaveh> On Sun, 20 Jul 2008, Richard Guenther wrote:
>> > The mailing list webpage still refers to CVS:
>> > http://gcc.gnu.org/lists.html
>> >
>> > Can we rename these lists (perhaps preserving an alias for the old names)
>> > so that they reflect reality?
>> 
>> I don't see a reason to rename the list.
>> Richard.

Kaveh> We don't use cvs, so "[EMAIL PROTECTED]" is misleading.

So?  That's life.  There are plenty of historical artifacts in GCC
development and on the website.

I agree that there is no reason to rename these lists at this late
date.

David



Porting gcc 4.x on tangent A4

2008-07-21 Thread Giuseppe Monteleone

Hi all

I have need to compile code for an old ARC tangent A4 core.

1) Gcc 3.x does support ARC Tangent-A4
2) Gcc 4.x dose support ARC Tangent-A4

if answer is 'not' for both question i will try to introduce code in 
arc.md and arc.c files to compile code for ARC Tangent-A4. Is this an 
hard task ?


Thanks
Ing Giuseppe 'Geppo'  Monteleone


Scratch register in "jump" instruction ?

2008-07-21 Thread Stelian Pop
Hi,

(I finally resumed the work on my microcontroller I posted about 3
months ago...)

I have a problem with the jump instructions: my direct jumps are very
limited in displacements, and I want to always generate indirect jumps
instead.

So I wrote this:

(define_insn "jump"
  [(set (pc)
(label_ref (match_operand 0 "" "")))
   (clobber (match_scratch:QI 1 "=w"))]
  ""  
  "ldih %1,hi(%l0)\n\tldil %1,lo(%l0)\n\tijmp (%1)"
  [(set_attr "cc" "none")]
)

gcc and libgcc get compiled ok, but several testsuite tests fail because
gcc is eating all the virtual memory when compiling the file. One of
those is for example gcc.c-torture/compile/2120-2.c .

The problem is coming from the usage of 'match_scratch' here, because
removing it makes the problem go away.

Before going deeper and trying to see if I'm hitting a bug in gcc, can
someone please advice whether my define_insn is correct ? I'm using
gcc-4.3.1.

A stack trace from gdb seems to show that gcc is looping around here:

#0  0x080f70df in df_insn_rescan (insn=0x80951c08)
at /wip/src/gcc-4.3.1/gcc/df-scan.c:1078
#1  0x0811b5ad in add_insn_after (insn=0x80951c08, after=0x80951be0, 
bb=0xb7c17924)
at /wip/src/gcc-4.3.1/gcc/emit-rtl.c:3495
#2  0x0811b870 in emit_jump_insn_after_noloc (x=0x80950c58,
after=0x80951be0)
at /wip/src/gcc-4.3.1/gcc/emit-rtl.c:4085
#3  0x080da84c in try_redirect_by_replacing_jump (e=0xb7c26460, 
target=0xb7c179d8, in_cfglayout=0 '\0')
at /wip/src/gcc-4.3.1/gcc/cfgrtl.c:822
#4  0x08360a08 in cleanup_cfg (mode=1)
[...]

Thanks,

-- 
Stelian Pop <[EMAIL PROTECTED]>



ICE in flow.c - Gcc 4.1.2 private port

2008-07-21 Thread Mohamed Shafi
Hello all,

For the target that i am porting if support for partial argument
passing is enabled i get the following error:
error: Attempt to delete prologue/epilogue insn:
internal compiler error: in propagate_one_insn, at flow.c:1699

This is 16bit target with 4 argument registers. FRAME_POINTER_REQUIRED
is defined to 0.
The code that is being complied is :

f(float a[],int b[],int c,float d)
{
}

>>
>From *.c.00.expand

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

(insn 6 15 7 0 (set (reg/v/f:HI 24 [ a ])
(reg:HI 0 R0 [ a ])) -1 (nil)
(nil))

(insn 7 6 8 0 (set (reg/v/f:HI 25 [ b ])
(reg:HI 1 R1 [ b ])) -1 (nil)
(nil))

(insn 8 7 9 0 (set (reg/v:HI 26 [ c ])
(reg:HI 2 R2 [ c ])) -1 (nil)
(nil))

(insn 9 8 12 0 (set (mem/c/i:HI (reg/f:HI 18 virtual-incoming-args) [0
d+0 S2 A16])
(reg:HI 3 R3)) -1 (nil)
(nil))

(insn 12 9 10 0 (clobber (reg/v:SF 27 [ d ])) -1 (nil)
(nil))

(insn 10 12 11 0 (set (subreg:HI (reg/v:SF 27 [ d ]) 0)
(mem/c/i:HI (reg/f:HI 18 virtual-incoming-args) [0 d+0 S2
A16])) -1 (nil)
(nil))

(insn 11 10 13 0 (set (subreg:HI (reg/v:SF 27 [ d ]) 2)
(mem/c/i:HI (plus:HI (reg/f:HI 18 virtual-incoming-args)
(const_int 2 [0x2])) [0 d+2 S2 A16])) -1 (nil)
(nil))

(note 13 11 14 0 NOTE_INSN_FUNCTION_BEG)

>
from *.c.37.lreg

(note 2 0 15 NOTE_INSN_DELETED)

;; Start of basic block 0, registers live: 3 [R3] 12 [R12]
(note 15 2 9 0 [bb 0] NOTE_INSN_BASIC_BLOCK)

(insn 9 15 13 0 (set (mem/c/i:HI (reg/f:HI 12 R12) [0 d+0 S2 A16])
(reg:HI 3 R3)) 1 {movhi_internal} (nil)
(nil))

(note 13 9 17 0 NOTE_INSN_FUNCTION_BEG)


>
from *.c.40.flow2

(note 15 2 31 0 [bb 0] NOTE_INSN_BASIC_BLOCK)

(insn/f 31 15 32 0 (set (reg/f:HI 12 R12)
(minus:HI (reg/f:HI 12 R12)
(const_int 2 [0x2]))) -1 (nil)
(nil))

(insn/f 32 31 33 0 (set (mem:HI (reg/f:HI 12 R12) [0 S2 A16])
(reg:HI 3 R3)) -1 (nil)
(nil))

(note 33 32 9 0 NOTE_INSN_PROLOGUE_END)

(insn 9 33 13 0 (set (mem/c/i:HI (reg/f:HI 12 R12) [0 d+0 S2 A16])
(reg:HI 3 R3)) 1 {movhi_internal} (nil)
(nil))

(note 13 9 17 0 NOTE_INSN_FUNCTION_BEG)

>

When argument is passed partially then
'current_function_pretend_args_size' is initialized and prologue will
set stack space accordingly. Based on the live information
'propagate_one_insn()'  is trying to delete the insn from the
prologue. My question is is gcc suppose to delete insn 9, even before
prologue generation ?
If its not the case where am i going wrong?

Regards,
Shafi


RE: Anyone/anything still using CVS on gcc.gnu.org?

2008-07-21 Thread Dave Korn
David Edelsohn wrote on 21 July 2008 13:33:

>> Kaveh R GHAZI writes:
> 
> Kaveh> On Sun, 20 Jul 2008, Richard Guenther wrote:
 The mailing list webpage still refers to CVS:
 http://gcc.gnu.org/lists.html
 
 Can we rename these lists (perhaps preserving an alias for the old
 names) so that they reflect reality?
>>> 
>>> I don't see a reason to rename the list.
>>> Richard.
> 
> Kaveh> We don't use cvs, so "[EMAIL PROTECTED]" is misleading.
> 
>   So?  That's life.  There are plenty of historical artifacts in GCC
> development and on the website.
> 
>   I agree that there is no reason to rename these lists at this late
> date.
> 
> David


  Hear, hear.  The name of the list is an arbitrary label, not instructions
on what kind of client to use to access the repository; why, just for the
sake of making it "correct" in some non-functional sense of the word should
everyone in the world have to adjust their
whitelists/forwards/spamfilters/webarchives/etc.?

  There should be a fairly clear benefit before asking all those people to
do all that work.

cheers,
  DaveK
-- 
Can't think of a witty .sigline today



Re: Porting gcc 4.x on tangent A4

2008-07-21 Thread Joern Rennecke
> I have need to compile code for an old ARC tangent A4 core.

> 1) Gcc 3.x does support ARC Tangent-A4
> 2) Gcc 4.x dose support ARC Tangent-A4

Both contain a port which in principle targets the ARCtangent-A4.
I don't know if it actually works, it might be subject to bitrot.

We at ARC have a more up-to-date that we want to contribute once the
Copyright assignemt is on file.  However, our focus is on the more
modern cores ARC600 and ARC700; we don't test the ARCtangent-A4 support
and intend to remove it at some point, so again that functionality
might be bitrotted.

Your best bet is probably to get the toolchain that has been provided
by Codito (they have renamed itself in the meantime to Celunite and
then Azingo, but the website for this toolchain is still named after codito)
You can find it at http://www.codito.com/arc/download.html .


Re: [WWW] Updating GCC Links and Selected Readings

2008-07-21 Thread Gerald Pfeifer
On Sun, 20 Jul 2008, Arnaud Charlet wrote:
> Yes, the suggested changes are good.

Thanks for the review, Arnaud, and thanks again for the patch, Santiago!

I committed this with minor formatting changes and fixed some markup 
issues directly afterwards.

Gerald


Re: Anyone/anything still using CVS on gcc.gnu.org?

2008-07-21 Thread Kaveh R. Ghazi

From: "Dave Korn" <[EMAIL PROTECTED]>

 Hear, hear.  The name of the list is an arbitrary label, not instructions
on what kind of client to use to access the repository; why, just for the
sake of making it "correct" in some non-functional sense of the word
should
everyone in the world have to adjust their
whitelists/forwards/spamfilters/webarchives/etc.?

 There should be a fairly clear benefit before asking all those people to
do all that work.



Jeez, I didn't realize people felt so viscerally against this.  I thought
the impact on users would be small.  I.e. I'm curious who actually
subscribes to the gcc-cvs list.  Is it a large list?  (I don't know.)

I don't think humans post to it either, it only gets machine generated
messages from checkins.  So it's not like address books would have to be
updated.  (Personally I only access it from the website if I'm looking for
something specific).  But seems like you think I'm wrong on how difficult
this change would be for users.

Okay, no big deal.  A comment on the webpage I mentioned could be another
way to address my point about the name being misleading...



Re: Anyone/anything still using CVS on gcc.gnu.org?

2008-07-21 Thread Joe Buck
On Mon, Jul 21, 2008 at 11:50:43AM -0700, Kaveh R. Ghazi wrote:
> Jeez, I didn't realize people felt so viscerally against this.  I thought
> the impact on users would be small.  I.e. I'm curious who actually
> subscribes to the gcc-cvs list.  Is it a large list?  (I don't know.)

Just come up with a backronym or something, the same way we painlessly
renamed gcc (from GNU C Compiler to GNU Compiler Collection).



Re: Anyone/anything still using CVS on gcc.gnu.org?

2008-07-21 Thread Ian Lance Taylor
"Kaveh R. Ghazi" <[EMAIL PROTECTED]> writes:

> Jeez, I didn't realize people felt so viscerally against this.  I thought
> the impact on users would be small.  I.e. I'm curious who actually
> subscribes to the gcc-cvs list.  Is it a large list?  (I don't know.)

There are 105 subscribers to the gcc-cvs mailing list.  A few of the
subscribers appear to be mailing lists themselves.

Let's just call it the gcc "Commits to Versioned Sources" list.

Ian


RE: Anyone/anything still using CVS on gcc.gnu.org?

2008-07-21 Thread Dave Korn
Kaveh R. Ghazi wrote on 21 July 2008 19:51:

> From: "Dave Korn" <[EMAIL PROTECTED]>
>>  Hear, hear.  The name of the list is an arbitrary label, not
>> instructions on what kind of client to use to access the repository;
>> why, just for the sake of making it "correct" in some non-functional
>> sense of the word should everyone in the world have to adjust their
>> whitelists/forwards/spamfilters/webarchives/etc.?
>> 
>>  There should be a fairly clear benefit before asking all those people to
>> do all that work.
> 
> 
> Jeez, I didn't realize people felt so viscerally against this.

  "Visceral" is too strong a word for how I feel about it; sorry if I was a
bit hyperbolic there!

> I don't think humans post to it either, it only gets machine generated
> messages from checkins.  So it's not like address books would have to be
> updated.  (Personally I only access it from the website if I'm looking for
> something specific).  But seems like you think I'm wrong on how difficult
> this change would be for users.

  I'm thinking mostly of the independent external ML archives like MARC,
nabble, archives.free.net, archivum.info, gmane they'd all have to
adjust their setups and/or break indexing across the name change.
"Viscerally against" is too strong, but it seemed to me that the costs,
although not huge, could outweigh the benefits, which seemed very very
minor.

> Okay, no big deal.  A comment on the webpage I mentioned could be another
> way to address my point about the name being misleading...

  It's pretty obvious the moment you read the content of any of the posts
that it can't be cvs and has to be svn, even more so if you follow one of
the viewvc links... but it couldn't hurt to make it explicit, I'm sure.

cheers,
  DaveK
-- 
Can't think of a witty .sigline today



Re: How to determine if a decl is a class member in GCC

2008-07-21 Thread Le-Chun Wu
Hi,

I haven't heard anything back on my questions. Can any of C++ frontend
maintainers please shed some light (or comment on my proposed patch)?
Thanks a lot.

Le-chun

On Fri, Jul 18, 2008 at 10:22 AM, Le-Chun Wu <[EMAIL PROTECTED]> wrote:
> Hi,
>
> In my attribute handlers that handle the new thread-safety attributes
> (in c-common.c), I need to check if a decl is a class member. How do
> people do that? My original code was checking if a decl is a
> FIELD_DECL but that doesn't work for static members. I also tried to
> use DECL_CONTEXT but it is not set (in the C++ front-end) for data
> members. (I was able to use DECL_CONTEXT for member functions,
> though.) Is there any other way that I should use?
>
> BTW, as an experiment, I went ahead and made the following change in
> C++ front-end to set the DECL_CONTEXT of class data members. The patch
> appears to work and doesn't seem to break any g++ and gcc regression
> tests. (I will be running gdb testsuite later.) I think there must be
> a reason why the DECL_CONTEXT of data members wasn't set in the
> front-end, but it's not clear to my why. Can someone kindly explain
> why that is and whether the patch is OK?
>
> Thanks,
>
> Le-chun
>
>
> Index: cp/decl.c
> ===
> --- cp/decl.c   (revision 137849)
> +++ cp/decl.c   (working copy)
> @@ -9074,6 +9074,11 @@ grokdeclarator (const cp_declarator *dec
>
>   if (thread_p)
> DECL_TLS_MODEL (decl) = decl_default_tls_model (decl);
> +
> +/* Since a static class data member is a VAR_DECL (instead of
> +   a FIELD_DECL), setting the decl_context here allows us to
> +   tell if it is a class member.  */
> +DECL_CONTEXT (decl) = ctype ? ctype : current_class_type;
> }
>   else
> {
>


real machine

2008-07-21 Thread Jason mclaughlin
- Moving pairs

Given something like a checkers board, moving pairs would be checkers
paired together and arranged on the board

Given something like a checkers board, moving pairs are checker pieces
said to be paired.
The pairs don't have to be next to eachother.

Any way arranged is fair for how this works, but it matters for how they work.

There's no such thing as an empty space.

They are the idea of how they move, and the problem with finding how
to move them.

- Moving a pair

Find the pair to be what doesn't have any way to move.

Each of the pair is to move together at the same time.

A pair can only move to another pair.

A pair moves to another pair, and each of the pair becomes paired with
each of the other pair. So now both pairs are new pairs, with a
pair that moved to a pair not being a pair anymore, but both a pair
with the pair that moved to another pair.

A pair moves to another pair, but the other pair is what moves away at
the same time.

A pair moves to another pair, the pair it moves to has to move at the
same time to another pair, and left to move as a pair
but became the new pair with the pair that goes where it's leaving from.

You can't know what any pair's first move is until you know it's last move.

There's nowhere to think in the way moving pairs can move how it has
any inbetween to stop moving. It's always that a pair moving is making
another pair move, and is having a pair move it.

For any pair there's always one way to move it.

To think of pairs in the middle of moving is to think of needing to
know the end and beginning at the same time.

When a pair moves it's what is moving away from what had to move it,
and is moving what needs to move at the same time for whre it's going.

Each time a pair is moved, all the pairs involved in moving are
alternated as new pairs.

You can't know how a pair moves, it's to figure out as the problem
they have. The last pair to move has to be discovered before the first
pair to move has a place to move.

The answer to how to make a pair move is to find how to move the pair,
that goes to another pair and becomes a new pair, and carries on until
a pair goes back where the first pair left.  That's to even know the
first place a pair can move.

All the pairs have a way to move, but may involve more or less of the
other pairs to move at the same time.

- Moving pairs are a machine

They can be arranged in any way so that the movement of a few pairs
makes for the movement of a few other in any way.

Pairs can store how to associate any letter with any number by having
it so some pairs say a letter and other pairs say a number, so how you
move some pairs to say which letter is for some other pairs to move to
say which number.

Any pair that is moved can make it so other pairs to move have another
answer to how they move.

Pairs that work in moving together can be close or far apart, so they
extend across the idea of how it's a machine as much as can make sense
for any way to have a machine work.

- Machine diagram

See each pair for how it can be moved with the other pairs that move together.

Draw pairs that move together with a line, or say one piece moves to
another piece.

Say for each group of pairs that move together.

- The trick

See the machine diagram? Make a pair move then see the machine diagram again.

How did the machine move?

Enjoy :)