Re: For those who want to automatically generate predicates.md...

2005-03-19 Thread Bob Wilson
Kazu Hirata wrote:
I created a set of scripts that generates predicates.md based on
PREDICATE_CODES in tm.h.
Thank you!  I had been planning to do this for the Xtensa port, but your scripts 
motivated me to do it sooner.  I ended up rewriting most of the predicates in 
Lisp-style, but the scripts were still helpful.  I'll post the patch soon. 
Thanks again.

--Bob


Xtensa port maintainer

2008-11-18 Thread Bob Wilson
I am moving to a new job and will no longer be able to serve as the Xtensa port 
maintainer for GCC.  I would like to nominate Sterling Augustine to take my 
place.  Sterling has done a lot of work on the GNU assembler and recently worked 
on GCC with me to use DWARF unwinding for Xtensa.  I think he will do a good 
job.  Would the steering committee please consider that nomination?


I am working to hand over what I know to Sterling.  If there is anything in 
particular that I can do to help with the transition, please let me know.


It has been great to work with all of you.  Working on GCC has been a relatively 
small part of my job for the last few years, and I would have liked to do more. 
 I have really enjoyed seeing this team of developers from around the world 
collaborate so well.  Thanks to everyone who has helped me out with reviews and 
suggestions over the years.


Re: GCC 4.1.0 RC1

2006-02-23 Thread Bob Wilson

I ran the testsuite for an xtensa-elf target and it looks OK:

http://gcc.gnu.org/ml/gcc-testresults/2006-02/msg01243.html

There are a few failures but they are not regressions.

--Bob


Re: GCC 4.0.3 RC1

2006-03-06 Thread Bob Wilson

Looks OK for xtensa-elf:

http://gcc.gnu.org/ml/gcc-testresults/2006-03/msg00356.html

--Bob


Re: Register windows implementation in Xtensa backend

2006-08-03 Thread Bob Wilson

"kernel coder"  wrote:
> I'm trying to understand the register windows
> implementation in xtensa backend.I could not find much theory about
> register windows in extensa.I am trying to understand the register
> windows implementation by observing the assembly file generated by gcc
> for a simple c file.

This doesn't really have anything to do with GCC, so this list is not a good 
place to discuss how register windows work on Xtensa.  I will send you a brief 
description off-list.


--Bob


Re: help regarding suif

2005-02-14 Thread Bob Wilson
Vivek,
GCC and the GNU project have nothing to do with SUIF.  If you want to ask 
questions about SUIF, you should do so on a more appropriate mailing list.  I 
suggest you look here: http://www-suif.stanford.edu/mailman/listinfo/suif-talk/

Good luck.
--Bob


Re: GCC targets need updating for new register allocator

2008-08-27 Thread Bob Wilson

Joseph S. Myers wrote:
The new Integrated Register Allocator is now in GCC trunk, and the old 
allocator is scheduled for removal on or shortly after 25 September.  All 
GCC targets need updating for the new allocator; targets that have not 
been updated when the old allocator is removed will no longer work and 
will be added to the deprecation list for GCC 4.4.  (After that date 
target maintainers may remove their targets from the deprecation list as 
part of the patches updating them for the new allocator; any remaining 
unconverted targets will be removed from trunk after GCC 4.4 branches 
along with the other targets deprecated in 4.4.)


I have a patch for Xtensa but I'm still tracking down a problem related to the 
IRA code.  I'm sure I'll get it sorted out soon.


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


RFA: (dataflow?) testsuite regression since last week

2007-06-14 Thread Bob Wilson

I'm still seeing two testsuite regressions for Xtensa compared to last
Friday:

gcc.c-torture/execute/920501-6.c
gcc.c-torture/execute/930921-1.c

Both tests fail at -O3 with "internal compiler error: in get_biv_step,
at loop-iv.c:792".  Neither the Xtensa port nor the loop-iv.c code has
changed since last week in a way that obviously affects this. I'm
suspecting it is somehow related to the dataflow merge, but I don't see any 
obvious connections there, either.


I'm not very familiar with loop-iv.c so I would appreciate help
figuring out how to fix this.

Here is what appears to be happening for 930921-1.c.  The test program is:

f (x)
 unsigned x;
{
  return (unsigned) (((unsigned long long) x * 0xAAAB) >> 32) >> 1;
}

main ()
{
  unsigned i;

  for (i = 0; i < 1; i++)
if (f (i) != i / 3)
  abort ();
  exit (0);
}

At -O3, function f is inlined into main and "x * 0xAAAB" is recognized as
a DImode induction variable.  I'm pretty sure the problem is related
to the lack of an adddi3 pattern in xtensa.md.  We rely on optabs.c to
expand DImode addition.  If I dump the RTL file, the induction
variable increment looks like:

;; ivtmp$55 = ivtmp$55 + 0x0aaab
(insn 26 25 27 930921-1.c:4 (set (reg:DI 50)
(mem/u/c/i:DI (symbol_ref/u:SI ("*.LC1") [flags 0x2]) [2 S8 A64])) -1 
(expr_list:REG_EQUAL (const_double -1431655765 [0xaaab] 0 [0x0] 0 [0x0] 0 
[0x0] 0 [0x0] 0 [0x0])

(nil)))

(insn 27 26 28 930921-1.c:4 (clobber (reg:DI 51)) -1 (nil))

(insn 28 27 29 930921-1.c:4 (set (subreg:SI (reg:DI 51) 4)
(plus:SI (subreg:SI (reg:DI 45 [ ivtmp$55 ]) 4)
(subreg:SI (reg:DI 50) 4))) -1 (nil))

(insn 29 28 30 930921-1.c:4 (set (reg:SI 52)
(const_int 1 [0x1])) -1 (nil))

(jump_insn 30 29 31 930921-1.c:4 (set (pc)
(if_then_else (ltu (subreg:SI (reg:DI 51) 4)
(subreg:SI (reg:DI 45 [ ivtmp$55 ]) 4))
(label_ref 32)
(pc))) -1 (nil))

(insn 31 30 32 930921-1.c:4 (set (reg:SI 52)
(const_int 0 [0x0])) -1 (nil))

(code_label 32 31 33 6 "" [0 uses])

(insn 33 32 34 930921-1.c:4 (set (subreg:SI (reg:DI 51) 0)
(plus:SI (subreg:SI (reg:DI 45 [ ivtmp$55 ]) 0)
(subreg:SI (reg:DI 50) 0))) -1 (nil))

(insn 34 33 35 930921-1.c:4 (set (reg:SI 53)
(plus:SI (reg:SI 52)
(subreg:SI (reg:DI 51) 0))) -1 (nil))

(insn 35 34 36 930921-1.c:4 (set (subreg:SI (reg:DI 51) 0)
(reg:SI 53)) -1 (nil))

(insn 36 35 0 930921-1.c:4 (set (reg:DI 45 [ ivtmp$55 ])
(reg:DI 51)) -1 (expr_list:REG_EQUAL (plus:DI (reg:DI 45 [ ivtmp$55 ])
(reg:DI 50))
(nil)))

The failing assertion in get_biv_step() is:

  gcc_assert ((*inner_mode == *outer_mode) != (*extend != UNKNOWN));

The outer_mode is DImode; the inner_mode is SImode; and extend is
UNKNOWN, since there are no SIGN_EXTEND or ZERO_EXTEND operations
involved here.  Is this code intended to work for DImode IVs when
the machine doesn't directly support DImode operations?  I don't know
if the problem is in this loop-iv.c code or whether it ought not
recognize the DImode induction variable in the first place.

Help?


Re: GCC 4.2 Branch Status: Slush

2007-09-13 Thread Bob Wilson

Mark Mitchell wrote:

When I sent out the notice about GCC 4.2.2 RC1, I failed to note the GCC
4.2 branch should now be considered slushy; please get my explicit
approval before check-in.  Obviously, there was no way anyone could have
known that, so if things have been checked in since the announcement
that's fine; I'll review what's happened and decide what to do.


Sorry -- I didn't see your message until after I had applied a few 
Xtensa-specific patches on the branch yesterday.  Anyway, I hope these patches 
can make it into 4.2.2; if you have concerns or questions about them, let me 
know if I can help by providing more information.


--Bob