This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [S/390]


On Sunday 16 May 2004 01:48, Ulrich Weigand wrote:
> Steven Bosscher wrote:
> > 	* config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
> > 	s390_expand_cmpmem): Do not use expand_start_loop and
> > 	expand_end_loop, instead build the loop manually.
>
> This is OK, but please ...
>
> > !       do_pending_stack_adjust ();
> > !       emit_queue ();
>
> ... don't add calls to these routines, they're not needed on s390.
> Just the labels and jumps should be enough.

OK.

> B.t.w. will these (or future) changes cause those hand-constructed
> loops to be no longer optimized?  In particular unrolling in the
> case of constant iteration counts is something we're counting on
> to happen ...

These changes should not make any difference, I basically just
hand-inlined the relevant parts of the expand_{start,end}_loop
functions.  Previously these functions gave you the loop notes
and it would update the expand stack in stmt.c.  But we don't
need loop notes from the expanders anymore.  Because we already
have all loops lowered at the tree level, we have to insert the
loop notes later, in rest_of_compilation (see create_loop_notes).
And the expand stack is also pretty useless now because we have
already flattened the function tree during lowering  (In fact I
think we can get rid of that stack completely).

As for unrolling, well I suppose we'll still need unrolling on
RTL for various other things, but Zdenek probably has better
ideas about that.

Gr.
Steven



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]