Loading...

fortran@gcc.gnu.org

[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: huge object files. Expectable? Jerry DeLisle Mon Mar 22 07:00:32 2010

On 03/22/2010 04:29 AM, IainS wrote:

On 22 Mar 2010, at 07:39, IainS wrote:

looking at this ... the darwin assembler has :

----
.zerofill
SYNOPSIS

.zerofill segname , sectname [ , symbolname , size [ ,
align_expression ]]
The .zerofill directive causes symbolname to be created as
uninitialized data in the section given by segname and sectname, with
a size in bytes given by size. A power of 2 between 0 and 15 may be
given for align_expression to indicate what alignment should be forced
on symbolname, which is placed on the next expression boundary having
the given alignment. See “.align” for details.

-----

if I have a chance later - I might try to hand-edit the .s files to
see if the .zerofill directive would produce an improved result in the
specific case.

simplified testcase, clipped from the .s file generated by Andrew's
testcase :

space.s:
.machine ppc7400
.globl ___pmdata_MOD_accrate
.data
.align 3
___pmdata_MOD_accrate:
.space 16
.globl ___pmdata_MOD_angl

#replacing this....
# .align 3
#___pmdata_MOD_angl:
# .space 16000000

# with this....
.zerofill DATA, data, ___pmdata_MOD_angl, 16000000, 3

===

with the .space directive the object is 15Mb
with the .zerofill the object is 476 bytes...

I'll have to do a little more research as to whether this is always a
legitimate substitution for the zero case - and, if so, where it needs
to be done.


Iain
Probably need to open a tracking PR somewhere. A missed optimization. Who generates the .s file. ?

;)

Jerry