mich würde mal interessieren welche instruktionssätze der FPC erzeugen kann also z.b.(SSE,MMX)
und wie lange es im schnitt immer so gedauert hat bis neue unterstützt wurden
Frage zu den FPC erzeugten instruktionssätzen
-
- Beiträge: 1100
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Frage zu den FPC erzeugten instruktionssätzen
Gebe ein:
fpc -i
und:
fpc -i
und:
Free Pascal Compiler version 2.6.2
Compiler Date : 2013/02/12
Compiler CPU Target: i386
Supported targets:
GO32 V2 DOS extender
Linux for i386
OS/2
Win32 for i386
FreeBSD/ELF for i386
Solaris for i386 (under development)
Beos for i386 (under development)
NetBSD for i386 (under development)
Netware for i386(clib)
WDOSX DOS extender
OpenBSD for i386 (under development)
OS/2 via EMX
Watcom compatible DOS extenders
Netware for i386(libc)
WinCE for i386
Linux for x64_6432
Darwin for i386
Embedded
Symbian OS for i386
Haiku for i386 (under development)
Native NT for i386 (under development)
Darwin/iPhoneSim for i386
Supported CPU instruction sets:
80386
PENTIUM
PENTIUM2
PENTIUM3
PENTIUM4
PENTIUMM
Supported FPU instruction sets:
X87
SSE
SSE2
SSE3
Supported ABI targets:
DEFAULT
SYSV
AIX
EABI
ARMEB
Supported Optimizations:
REGVAR
UNCERTAIN
STACKFRAME
PEEPHOLE
ASMCSE
LOOPUNROLL
TAILREC
CSE
Supported Whole Program Optimizations:
All
DEVIRTCALLS
OPTVMTS
SYMBOLLIVENESS
-
- Beiträge: 1100
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Frage zu den FPC erzeugten instruktionssätzen
Und fuer 2.7.1 (trunk):
Es gibt keine Regel wie schnell etwas implementiert wird, das hängt davon ab ob es ein Freiwilligen gibt der darein arbeiten will (zb AVX Support in 2.7.1 ist meistens außerhalb des FPC core team implementiert).
Und das hängt wieder davon ab wie viel solche Optimization wirklich bringen (oft: nicht viel)
Free Pascal Compiler version 2.7.1
Compiler date : 2015/01/01
Compiler CPU target: i386
Supported targets (targets marked with '{*}' are under development):
Go32v2: GO32 V2 DOS extender
Linux: Linux for i386
OS2: OS/2
Win32: Win32 for i386
FreeBSD: FreeBSD/ELF for i386
solaris: Solaris for i386 {*}
Beos: Beos for i386 {*}
NetBSD: NetBSD for i386 {*}
Netware: Netware for i386(clib)
WDOSX: WDOSX DOS extender
OpenBSD: OpenBSD for i386 {*}
EMX: OS/2 via EMX
WATCOM: Watcom compatible DOS extenders
Netwlibc: Netware for i386(libc)
WinCE: WinCE for i386
Darwin: Darwin for i386
embedded: Embedded
Symbian: Symbian OS for i386
Haiku: Haiku for i386 {*}
NativeNT: Native NT for i386 {*}
iPhoneSim: Darwin/iPhoneSim for i386
Android: Android for i386
aros: AROS for i386
Supported CPU instruction sets:
80386,PENTIUM,PENTIUM2,PENTIUM3,PENTIUM4,PENTIUMM,COREI,COREAVX
COREAVX2
Supported FPU instruction sets:
X87,SSE,SSE2,SSE3,SSSE3,SSE41,SSE42,AVX,AVX2
Supported inline assembler modes:
STANDARD
ATT
INTEL
Recognized compiler and RTL features:
HEAP,INITFINAL,RTTI,CLASSES,EXCEPTIONS,EXITCODE,ANSISTRINGS,WIDESTRINGS
TEXTIO,CONSOLEIO,FILEIO,RANDOM,VARIANTS,OBJECTS,DYNARRAYS,THREADING
COMMANDARGS,PROCESSES,STACKCHECK,DYNLIBS,SOFTFPU,OBJECTIVEC1,RESOURCES
UNICODESTRINGS
Supported ABI targets:
DEFAULT
OLDWIN32GNU
Supported Optimizations:
REGVAR
UNCERTAIN
STACKFRAME
PEEPHOLE
ASMCSE
LOOPUNROLL
TAILREC
CSE
DFA
USEEBP
ORDERFIELDS
FASTMATH
REMOVEEMPTYPROCS
CONSTPROP
Supported Whole Program Optimizations:
All
DEVIRTCALLS
OPTVMTS
SYMBOLLIVENESS
Es gibt keine Regel wie schnell etwas implementiert wird, das hängt davon ab ob es ein Freiwilligen gibt der darein arbeiten will (zb AVX Support in 2.7.1 ist meistens außerhalb des FPC core team implementiert).
Und das hängt wieder davon ab wie viel solche Optimization wirklich bringen (oft: nicht viel)