EMVP
(1)
AndrewScholan
(1)
IMX31
(1)
Freescale
(1)
Followint
(1)
Windows
(1)
Corrisponds
(1)
BSQUARE
(1)

ARM compiler in Platform Builder 5.0

Asked By paolo patierno
20-Nov-09 09:18 AM
Hello,
I have a Freescale iMX31 (ARM11 Family). I know that ARM11 Famility
corrisponds to core ARMv6 but on Microsoft Documentation I read that the ARM
compiler support 4 and 5 (ARMv4 and ARMv5).
Followint the link :

http://msdn.microsoft.com/en-us/library/ms925478.aspx

So I am using a ARM11 processor with instruction set of ARM9 (ARMv4 - ARMv5).
In this manner, there is not and optiomization on compiled code.
Some comments ?

Thanks,
Paolo

ARM5).Yes, you are correct.

AndrewScholan[MCTS] replied to paolo patierno
20-Nov-09 10:44 AM
ARM
5).

Yes, you are correct. The compiler will generate only ARMV4/5 code and
all of the binary libraries supplied by Microsoft are compiled to use
ARMV4I instructions; none of the ARMV6 or NEON instructions are used,
and in CE 5.0 all floating point operations through the CRT are
emulated and the compiler never generates floating point instructions,
even if you have a processor with hardware VFP, like the i.MX31.
This does not mean that there is no optimisation, there is, but it
does not make use of the advanced instructions available in the newer
ARM cores.
If you use CE 6.0, it is possible to use the hardware VFP (see other
posts in this thread).
I believe that Microsoft are aware that the compiler for ARM is a
little out of date but do not plan to fix it for CE 6.0. They may
upgrade it with the next major release of CE.
Regards,
Andrew.

Why does not update the compiler ??

paolo patierno replied to AndrewScholan[MCTS]
20-Nov-09 11:52 AM
Why does not Microsoft update the compiler ??!

Thanks,
Paolo

Keep in mind that a large part of CE components are delivered prebuilt.

Dean Ramsier replied to paolo patierno
20-Nov-09 04:13 PM
Keep in mind that a large part of CE components are delivered prebuilt.
Since the newer instructions are not compatible with older cores they would
have to release/test multiple trees or drop support for older processors.

--
Dean Ramsier - eMVP
BSQUARE Corporation
I think that is better have multiple trees..
paolo patierno replied to Dean Ramsier
21-Nov-09 07:50 AM
I think that is better have multiple trees..
The actual situation is that the code generated by microsoft compiler is not
optimized for the ARMv6....it is not a good thing...I have alywas loved
Microsoft solution and products....but this is not good..I have to think about
this.

Thanks,
Paolo
'tboutoulds.sageyat-nde,s,it is not really the end of the world...
AndrewScholan[MCTS] replied to paolo patierno
23-Nov-09 12:26 PM
't
bout
ould
s.
sage
y
at
-
nd
e
,
s,

it is not really the end of the world... you are using CE5.0 which is
several years old now; you should consider moving to CE6.0 then you will
get the benefit of being able to use the hardware vector floating
point unit in the i.MX31 which is a big optimisation leap anyway. The
fact that your compiler cannot use some of the more sophisticated ARM
instructions is frustrating, I admit. We would all like to get the
best optimisation for our code but there is a backwards compatibility
that has to be maintained in the libraries, etc.

I do know that MS development team are aware of this issue. You could
log on to the next Windows CE online chat session that MS organise and
ask the development team directly....

Andrew.
Post Question To EggHeadCafe