-Os vs move_moveables
Andrew Pinski
pinskia@physics.uc.edu
Mon Dec 9 22:13:00 GMT 2002
Dale,
The original discussion of the matter and why it is turned off for
optimize_size:
http://gcc.gnu.org/ml/gcc/1998-04/msg00995.html
The message which commented the patch:
http://gcc.gnu.org/ml/gcc/1998-05/msg00495.html
When it was done:
Revision 1.50 / (download) - annotate - [select for diffs] , Thu May
14 00:50:07 1998 UTC (4 years, 6 months ago) by law
Branch: MAIN
Changes since 1.49: +7 -3 lines
Diff to previous 1.49 (colored)
* loop.c (scan_loop): Don't call move_moveables for
optimize_size.
On Monday, Dec 9, 2002, at 11:36 US/Pacific, Dale Johannesen wrote:
> Currently the loop optimizer disables pulling things out of loops with
> -Os:
>
>> /* Now consider each movable insn to decide whether it is worth
>> moving.
>> Store 0 in regs->array[I].set_in_loop for each reg I that is
>> moved.
>>
>> Generally this increases code size, so do not move moveables when
>> optimizing for code size. */
>>
>> if (! optimize_size)
>> {
>> move_movables (loop, movables, threshold, insn_count);
>
> This was true in 2.95 as well. Can somebody explain why it's doing
> this?
> I don't believe the comment is correct in general, at least for RISCs.
> If you're going to compute something into a register, it is no bulkier
> to
> do it outside the loop. I do see that pulling things out increases
> register
> lifetimes and makes spilling more likely, but that consideration is
> not specific
> to -Os.
>
>
More information about the Gcc
mailing list