BiHi Le 02/01/2003 à 15:50 Mais on le sait très bien où elles sont ces options, mais personnellement, je dois chaque fois ouvrir la doc pour mettre les defines pour avoir un executable qui fasse moins de 100 octets. J'aimerais bien moi aussi qu'il existe une page pour choisir les options.
De plus le choix des options par défaut est plus que discutable, en particulier pour le support des exit. Enfin voilà...

;)
>C'est vraiment débile de votre part de les inclure par défaut, de ne pas laisser le programmeur les choisir dans l'assistant de création de projets.
Qui t'empêche de mettre ça dans l'assistant toi-même ? Il me semble que tu as dis que tu connaissais le langage Delphi: vas-y, fais la modification toi-même. Ca sera sympa pour tout le monde...
on va peut-être dire que je manque d'originalité...
Mais on le sait très bien où elles sont ces options, mais personnellement, je dois chaque fois ouvrir la doc pour mettre les defines pour avoir un executable qui fasse moins de 100 octets. J'aimerais bien moi aussi qu'il existe une page pour choisir les options.
De plus le choix des options par défaut est plus que discutable, en particulier pour le support des exit
ma foi, qd on bosse sur des gros projets, c pas tous les jours qu'on crée un projet...
Pourquoi l'option OPTIMIZE_ROM_CALLS n'est pas active par défaut ?
Parce que ça ne marche pas avec les fonctions callback. (Il faut rajouter:
void *olda5=__jmp_tbl;
__jmp_tbl=*(void**)0xc8;
au début de ces callbacks et:
__jmp_tbl=olda5;
à la fin pour que ça marche.)
Pourrais-tu préciser ce que c'est qu'un "auto optimize ROM_CALLs" ?
A mon avis, c'est un peu bête (parce que l'utilisateur peut ne pas vouloir OPTIMIZE_ROM_CALLS).
> parce que l'utilisateur peut ne pas vouloir OPTIMIZE_ROM_CALLS
Ah oui, et pkoi? (ne me parle d'incompatibilité avec les callback puisqu'il n'y a pas de méthode gore de stockage comme dans TI-GCC)
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
... mais a5 reste disponible pour les fonctions qui ont besoin de bcp de registres ...
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Son OPTIMIZE_ROM_CALLS n'est pas un vrai OPTIMIZE_ROM_CALLS, c'est juste une optimisation locale qui devrait être traîtée par une optimisation plus générale (common subexpression elimination), pas par un cas particulier pour les ROM_CALLs.
je n'ai pas essayé avec GCC 3.3, mais il me semble que GCC ne le fait pas?
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Je viens de vérifier: GCC est tout à fait capable de mettre la table des ROM_CALLs en un registre parmi a2-a6 automatiquement, et il le fait automatiquement s'il le juge utile. Ça n'a strictement rien à voir avec OPTIMIZE_ROM_CALLS. Si tu as dû mettre un cas particulier pour les ROM_CALLs, c'est un workaround pour une déficience générale de ton optimiseur.
Au fait (et je demande ça surtout par pure curiosité): il fonctionne comment, l'optimiseur de GTC? Par "peepholes" (c'est-à-dire remplacement d'expressions régulières dans le code assembleur, ou quelque chose d'équivalent sur une représentation interne) uniquement? Ou y a-t'il des optimisations plus évoluées, de style common subexpression elimination, constant propagation, copy propagation etc.?
> Je viens de vérifier: GCC est tout à fait capable de mettre la table des ROM_CALLs en un registre parmi a2-a6 automatiquement, et il le fait automatiquement s'il le juge utile.
Autant pour moi. J'avais du regarder une vieille version.
> Si tu as dû mettre un cas particulier pour les ROM_CALLs, c'est un workaround pour une déficience générale de ton optimiseur.
Non.
> Au fait (et je demande ça surtout par pure curiosité): il fonctionne comment, l'optimiseur de GTC? Par "peepholes" (c'est-à-dire remplacement d'expressions régulières dans le code assembleur, ou quelque chose d'équivalent sur une représentation interne) uniquement? Ou y a-t'il des optimisations plus évoluées, de style common subexpression elimination, constant propagation, copy propagation etc.?
Il y a le peephole et le CSE, et d'autres (follow branches par exemple). Je ne sais pas ce que tu entends par "constant propagation" ou "copy propagation".
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Aussi, je me demandais, est-ce GCC convertit le code récursif en itératif équivalent où non ?
> est-ce GCC convertit le code récursif en itératif équivalent ou non ?
Tu veux dire dérouler les boucles, ou transformer les fonctions récursives ?
Moi ça me parait dément de passer le récursif en itératif!

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Pour faire du récursif, il faut que ça en vaille la peine. Le récursif, c'est bien pour le quicksort, entre autres; mais il faut être *bizarre* pour faire du récursif pour calculer une factorielle, par exemple.
(jackiechan, je ne critique pas ton exemple; je donne mon avis sur le fait d'utiliser du récursif ou de l'itératif).
oui, mais c'est quand même à celui qui code de choisir et non au compilo.

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.