[fpc-devel] data alignment

Florian Klaempfl florian at freepascal.org
Sat Aug 13 10:58:22 CEST 2005


Jan Ruzicka wrote:

> Hi Rostya and Florian
> 
> Is there a way to align code? (specially in loops.)
> A Profiler is complaining about an unaligned loop.
> It gives following suggestion:
> "... With gcc, use the -falign-loops=16 compiler flag (broken in gcc
> 3.1; gcc 3.3 or later should be used)."

You can use -OaLOOP=16 with fpc. However, at least on my machines
(mostly AMDs) I never saw an effect of this except in very synthetic
benchmarks compared with the standard value 4.

> I am using Shark on OSX 10.3.9 .
> 
> Is there any way to pass parameters to an assembler and/or linker ?

Assembler: no
Linker: -k

> 
> Jan
> 
> On Aug 12, 2005, at 03:39, Florian Klaempfl wrote:
> 
>> Ростислав Окулов wrote:
>>
>>> How I can aligh data in FPC like in C?
>>>
>>> struct __declspec(align(16)) VECTOR4F
>>> {
>>>     float x;
>>>     float y;
>>>     float z;
>>>     float w;
>>> };
>>
>>
>> FPC can align local data only up to 4 byte boundaries. Aligning to 16
>> byte
>> boundaries done by the compiler requires too much extra code because
>> at every
>> procedure entry the stack must be realigned so causing often a slow down.
>>
>> _______________________________________________
>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>>
> 
> 
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel





More information about the fpc-devel mailing list