huge object files. Expectable?

IainS developer@sandoe-acoustics.co.uk
Mon Mar 22 11:29:00 GMT 2010


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



More information about the Fortran mailing list