Forum unknown
· Programming
#C Compilers
9 messages in this thread
Check out AZLAT.DOC in DL8. Aztec is *much* faster at compile/link than
Lattice (5 to 6 times faster). Aztec modules are usually half the size of
Lattice modules (executable modules, that is). Aztec floating point is 10
times faster than Lattice (due to Aztec's use of the Motorola FFP library).
Aztec won't let you do printer device drivers at this time… thats the only
problem I've had with it. Rick Schaeffer
Rick…Does Aztec has all of the libraries Intuition,Graphics that are in the
Lattice compiler and if I have Lattice source files can Aztec compile them
and viceversa. I wrote a loop from 0 to 125000 and it takes a second for
Lattice to do it I know is a simple test BUT how many times a sec can a Aztec
do it 500,000 a sec if so and has all the libraries I am going to Aztex I
have the Developers kit but what the heck…! Eduardo-
Eduardo, the Aztec compiler does indeed have all the libraries, include
files, etc. that you need to do developement. I mentioned that it cannot be
used to develop print drivers…although they are supposed to fix that
problem in the next release. As to the benchmark you mentioned, it is much
too simple…both compilers would certainly generate nearly identical code.
Where Aztec really picks up it's gain is in it's linker…which has much
finer granularity than Alink.
In pointer handling and floating point calculations Aztec seems to generate
significantly faster code. In a pure integer benchmark such as you suggest,
Aztec would surely be faster because it uses 16 bit integers where Lattice
uses 32 bit integers…but it wouldn't be 5 times faster! In COMPILE time
and LINK time, Aztec *is* 5 times faster. In floating point, Aztec was
actually almost 10 times faster due to it's use of the Motorola Fast Floating
Point Library.
As to compatibility with Lattice, I've had very few problems in that area.
Most programs just compile and run…but you do have to watch out for
integer/pointer puns. Lattice uses 32 bit integers and 32 bit pointers so
it's possible to get away with not declaring a function as returning a
pointer. Aztec's default mode is 16 bit integers and 32 bit pointers… which
can cause problems if you haven't declared properly.
All Amiga library functions expect 32 bit integers, too, so you have to be
careful to pass Aztec Longs sometimes. Aztec does have a compile time option
to generate 32 bit ints…which takes care of the above problems but slightly
enlarges and slows your program. I usually get 'em running using the 32 bit
option…and then convert to 16 bits for speed. Rick Schaeffer
When compiling to Ram: and linking using the "faster" option, Lattice really
isn't that much slower. Slower, yes; five times slower, no.
When compiling to Ram: and linking using the "faster" option, Lattice really
isn't that much slower. Slower, yes; five times slower, no.
Eduardo, the Aztec compiler does indeed have all the libraries, include
files, etc. that you need to do developement. I mentioned that it cannot be
used to develop print drivers…although they are supposed to fix that
problem in the next release. As to the benchmark you mentioned, it is much
too simple…both compilers would certainly generate nearly identical code.
Where Aztec really picks up it's gain is in it's linker…which has much
finer granularity than Alink.
In pointer handling and floating point calculations Aztec seems to generate
significantly faster code. In a pure integer benchmark such as you suggest,
Aztec would surely be faster because it uses 16 bit integers where Lattice
uses 32 bit integers…but it wouldn't be 5 times faster! In COMPILE time
and LINK time, Aztec *is* 5 times faster. In floating point, Aztec was
actually almost 10 times faster due to it's use of the Motorola Fast Floating
Point Library.
As to compatibility with Lattice, I've had very few problems in that area.
Most programs just compile and run…but you do have to watch out for
integer/pointer puns. Lattice uses 32 bit integers and 32 bit pointers so
it's possible to get away with not declaring a function as returning a
pointer. Aztec's default mode is 16 bit integers and 32 bit pointers… which
can cause problems if you haven't declared properly.
All Amiga library functions expect 32 bit integers, too, so you have to be
careful to pass Aztec Longs sometimes. Aztec does have a compile time option
to generate 32 bit ints…which takes care of the above problems but slightly
enlarges and slows your program. I usually get 'em running using the 32 bit
option…and then convert to 16 bits for speed. Rick Schaeffer
Aztec has acess to all the libraries, and is a bit more efficient at acessing
them because of it's register allocation ( register A6 is a scratch register
under Aztec, and thus does not have to be saved whemn calling library funcs )
. Did you use register variables in that Lattice example? Under Lattice,
register variables can save a lot in both code space and execution speed.
Aztec has acess to all the libraries, and is a bit more efficient at acessing
them because of it's register allocation ( register A6 is a scratch register
under Aztec, and thus does not have to be saved whemn calling library funcs )
. Did you use register variables in that Lattice example? Under Lattice,
register variables can save a lot in both code space and execution speed.
Rick…Does Aztec has all of the libraries Intuition,Graphics that are in the
Lattice compiler and if I have Lattice source files can Aztec compile them
and viceversa. I wrote a loop from 0 to 125000 and it takes a second for
Lattice to do it I know is a simple test BUT how many times a sec can a Aztec
do it 500,000 a sec if so and has all the libraries I am going to Aztex I
have the Developers kit but what the heck…! Eduardo-