Hi,
Here the first comparison of FPC and MSElang produced code:
Source:
"
program test1;
function test(p1: int32): int32;
var
i1: int32;
begin
i1:= p1;
result:= p1+i1;
end;
begin
exitcode:= test(123);
end.
"
MSElang with LLVM backend with -O3:
"
.file "test-opt.ll"
.text
.globl main
.align 16, 0x90
.type main,@function
main: # @main
# BB#0:
movl $246, %eax
ret
.Ltmp0:
.size main, .Ltmp0-main
.section ".note.GNU-stack","",@progbits
"
FPC fixes_2_6 with -O3:
"
.file "test1.pas"
[...]
.globl P$TEST1_TEST$LONGINT$$LONGINT
.type P$TEST1_TEST$LONGINT$$LONGINT,@function
P$TEST1_TEST$LONGINT$$LONGINT:
# Temps allocated between esp+0 and esp+0
# Var p1 located in register edx
# Var $result located in register eax
# Var i1 located in register eax
# [test1.pas]
# [6] begin
movl %eax,%edx
# [7] i1:= p1;
movl %edx,%eax
# [8] result:= p1+i1;
addl %edx,%eax
# [9] end;
ret
[...]
.globl main
.type main,@function
main:
# Temps allocated between esp+0 and esp+0
# [11] begin
call FPC_INITIALIZEUNITS
# [12] exitcode:= test(123);
movl $123,%eax
call P$TEST1_TEST$LONGINT$$LONGINT
movl %eax,operatingsystem_result
# [13] end.
call FPC_DO_EXIT
ret
[...]
"
;-)
Martin
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
mseide-msegui-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk