[fpc-devel] Enable LLVM?

Den cyraid at gmail.com
Tue Aug 4 00:42:27 CEST 2015


Good results! Thanks for keeping us updated, keep it up! :)

- Dennis Fehr

On 2015-07-30 11:58 AM, Jonas Maebe wrote:
> On 14/07/15 10:13, Jonas Maebe wrote:
>> No, just the svn commit log. The status right now is that the system
>> unit for Darwin/x86-64 can be mostly compiled and "assembled" (i.e., the
>> generated LLVM IR can be successfully parsed by llc -- although since it
>> doesn't get completely to the end, I may not have seen all errors for
>> code coming before that yet) other than
>> a) RTTI
> This has now been implemented as well. With some local hacks and a few
> manual changes to the generated code, the system unit for Darwin/x86-64
> can now be compiled and successfully assembled. Note that this is with
> all inline assembly code removed (and pure inline assembly functions
> just returning 0 or its equivalent, so a lot of code is wrongly
> optimised away by llvm based on that).
>
> Some results are interesting, like the lowercase(shortstring) function
> becoming a rather impressive vectorised jungle:
> http://pastebin.com/vpugp80e . The only other vectorised functions in
> the system unit are lowercase(shortstring),
> UCS4StringToUnicodeString/Widestring, ArrayStringToPPChar and the
> helpers to add/sub/mul/symdif large sets.
>
> On the other hand, it seems that loading an array as a plain value in
> llvm bitcode results in rather suboptimal code (this is with -O2):
> http://pastebin.com/krXhuEzF :)
>
>
> Jonas
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel




More information about the fpc-devel mailing list