À partir de la version 6, il y a du C backend. Et donc, je vais dire une probable bêtise, mais, à partir de la version 6, en C backend, l'optimization de code est incontournable.
C backend = compilation en C
Pour vérifier si tu es en C backend, tu tapes :
C'est une instruction ASM, et je ne crois pas qu'elle signifie quelquechose en C.
Donc si tu es en C backend, cette ligne de code va générer une erreur.
Tandis qu'en ASM backend, ça ne fera rien (No OPeration).
Le choix du compilateur est dans les options du compilateur. Et les 2 compilateurs sont dans un combo, donc il n'y a rien à taper, juste à cliquer pour basculer d'un compilateur à l'autre.
En C backend, l'assembleur x86/x64 est encore disponible mais est lourd en syntaxe. On doit l'invoquer en C sous une forme grosso modo comme ceci :
Tout ton ASM se trouve sur une seule ligne. Tu dois déclarer les entrées et les sorties de données entre C et ASM toujours sur la même ligne. C'est assez fastidieux mais possible.
L'avantage du C c'est que l'asm x86/x64 n'est plus obligatoire, et en tant que programme pureBasic, on n'a pas trop à se soucier. C'est le compilateur C qui va vérifier sur quelle machine il est et compiler en code machine (ASM) selon le CPU.
Traduction : pureBasic peut être compilé en ASM X86/X64 comme en ASM ARM.
L'option d'optimisation du code est valable pour tous les processeurs. Donc une optimisation va optimiser avec les instructions existantes sur la machine en question.
Autrement dit, certains codes vont être plus rapides pour certaines opérations sur une machine x86/x64 et sur d'autres opérations sur une machine ARM.
Le X86/x64 est plus rapide sur certaines opérations : calculs logiques, maths et transferts.
Mais l'ARM va être plus rapide avec le traitement des listes et des maps.
Toutes ces vitesses qui diffèrent sont gérées automatiquement par l'optimiseur.
Espérant ne pas trop dire de cabrioles...