30

Les optimisateurs parfaits n'existent pas.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

31

grmbl... les compilateurs parfaits non plus rage

bon, pourquoi tigcc me pond des trucs commeca?

muls.w %d7,%d0
ext.l %d0

ou encore:

swap %d0
ext.l %d0
move.w %d0,matrix

hmm? bang

pourtant j'essaye bien de l'aider avec des trucs du genre:

matrix[m11] = (short)(((((long)(cos_roll * cos_yaw) << 8) - (long)(srsp * sin_yaw))) >> 16);

(toutes les vars sont des short)
j'ai foutu un (short) devant tout le bloc, et il s'obstine quand meme a me foutre un ext.l avant d'envoyer le resultat dans la mem... grrrr
une suggestion? (ca fait pareil kan je fais des trucs comme (long)cos_roll * (long)cos_yaw)...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

32

bon, j'avais -Os en options de compilations, j'ai mis -O3 et ca a vire le ext.l apres les muls...

par contre le ext.l apres les swap y est tjrs... sad
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

33

ah non... il a vire le ext.l apres le muls, mais maintenant ca donne:

muls.w %d6,%d2
move.w %d2,%a0
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

34

Ca revient au même.

GCC est un très mauvais compilateur (tout est relatif cependant : y'a plus mauvais encore).
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

35

et comment je fais alors? bang
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

36

Normal:
matrix[m11] = (short)(((((long)(cos_roll * cos_yaw) << 8) - (long)(srsp * sin_yaw))) >> 16);

ça, ça fait un muls et un ext.l. Regarde où tu as mis ton transtypage! Le calcul a déjà été fait en short quand tu le transtypes en long!

Correct:
matrix[m11] = (short)((((((long)cos_roll * (long)cos_yaw) << 8) - ((long)srsp * (long)sin_yaw))) >> 16);
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

37

Thibaut a écrit :
Ca revient au même.
GCC est un très mauvais compilateur (tout est relatif cependant : y'a plus mauvais encore).

rage Ce n'est pas de la faute de GCC si sBibi met les transtypages au mauvais endroit! rage
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

38

Kevin Kofler a écrit :
rage Ce n'est pas de la faute de GCC si sBibi met les transtypages au mauvais endroit! rage


tout a fait, d'accord, sauf que la syntaxe que t'as mise, je l'ai deja essayee, et ca foire pareil

(dans le doute, je v kan mm reessayer grin)
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

39

et hopla!

move.l %a2,%d0
swap %d0
ext.l %d0

et comment on fait pour que tigcc mette un ASL et pas d'un LSL?
muls.w %d5,%d3
lsl.l #8,%d3
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

40

LOL ! ça n'empêche pas qu'il sorte tout plein d'horreurs à côté de ça.
GCC est mauvais, on le sait tous smile

Un exemple parmis PLEIN d'autres :
structure.bit0= 1;
structure.bit2= 1;


Donne :
move.w structure,d0
or.w #%00000001,d0
or.w #%00000100,d0
move.w d0,structure



roll
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

41

sBibi a écrit :
et hopla!

move.l %a2,%d0
swap %d0 ext.l %d0

As-tu bien déclaré matrix[] en short?
et comment on fait pour que tigcc mette un ASL et pas d'un LSL?
muls.w %d5,%d3 lsl.l #8,%d3

C'est la même chose. Il n'y a que pour asr et lsr qu'il y a une différence.
Thibaut a écrit :
LOL ! ça n'empêche pas qu'il sorte tout plein d'horreurs à côté de ça.
GCC est mauvais, on le sait tous smile

Un exemple parmis PLEIN d'autres :
structure.bit0= 1;
structure.bit2= 1;


Donne :
move.w structure,d0
or.w #%00000001,d0
or.w #%00000100,d0
move.w d0,structure



roll

Tu ne l'aurais pas par hasard déclarée en volatile? Ou compilé sans optimisations?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

42

heuu... par contre la, ou est le pbl ? confus ca allume bien le premier et le 3eme bit nan?
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

43

sBibi a écrit :
heuu... par contre la, ou est le pbl ? confus ca allume bien le premier et le 3eme bit nan?

Oui, mais or.w #%00000101,structure suffirait...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

44

ah ok... mais ca marche quand meme, alors que les pbl que j'ai, bas ca marche pas du tout
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

45

Kevin Kofler a écrit :
As-tu bien déclaré matrix[] en short?


oui!!
C'est la même chose. Il n'y a que pour asr et lsr qu'il y a une différence.


possible, je me souviens plus de tout, ca va faire 3 mois ke g plus touche a l'asm...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

46

Kevin : non-volatile, optimisations -O2.

Ce n'était qu'un exemple parmi beaucoup d'autres. GCC est mauvais, c'est pas nouveau !
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

47

oué mais c le seul compilo C gratuit ...

48

Faux wink Borland propose des compilateurs gratuits.

GCC est le seul compilo open-source.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

49

y'a pas que Borland mais je parlais des compilo qui pouvaient générer du code asm68k ... sinon, en gratuit, y'en a d'autres roll

50

Thibaut
a écrit : Ce n'était qu'un exemple parmi beaucoup d'autres. GCC est mauvais, c'est pas nouveau !

Tu es libre d'en programmer un meilleur. grin
(Je voudrais voir les horreurs qu'on arrive à faire sortir à Azur. grin)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

51

Je savais qu'on me sortirait cette vanne grin

Je n'en ai pas les capacités. Mais ça ne doit pas m'interdire d'être objectif : GCC produit un code sale parfois.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

52

Mon avis, c'est qu'on ne gueule pas sur les programmes des autres si on ne sait pas faire mieux...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

53

Je n'ai pas gueulé. J'ai dit objectivement que GCC optimise mal. C'est vrai. Donc seul M$ a le droit de dire sur les forum "GCC optimise mal" ? Ton avis me paraît absurde.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

54

puis y'a tres certainement des meilleurs compilo C genre le compilo C de motorola ...

55

Le payant ?
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

56

Thibaut:
Je trouve étonnant que tu ne mentionnes pas le fait que le compilateur utilisé par TI dans le SDK fasse encore bien pire (qui a réussi à faire compiler des triples swaps à TIGCC ?)...

De plus, ton exemple:
structure.bit0= 1;
structure.bit2= 1;
n'est pas excellent.
On peut faire comme SYM_ENTRY:
typedef struct {
char name[8];
unsigned short compat;
union {
unsigned short flags_n;
struct {
unsigned short busy : 1, local : 1, flag1_5 : 1, flag1_4 : 1, collapsed : 1, twin : 1, archived : 1, in_view : 1;
unsigned short folder : 1, overwritten : 1, checked : 1, hidden : 1, locked : 1, statvar : 1, graph_ref_1 : 1, graph_ref_0 : 1;
} bits;
} flags;
HANDLE handle;
} SYM_ENTRY;

dans ces cas-là. C'est à la portée de n'importe qui, c'est un des trucs d'optimisation que j'ai faits dans tthdex: gain de 100 octets environ...


Bien sûr, il reste que GCC n'est pas parfait. Cela n'empêche pas qu'il est très utilisé. ll a pour avantages d'être gratuit et open-source...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

57

Miles
a écrit : Le payant ?


la seule version que j'ai vu sur leur site n'était pas gratuite ...

58

bah y tjs une alternative : l'asm grin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

59

wink

60

ouais, mais bon...
pour ti ça change réellement que chose, mais sur PC la faute n'est pas à GCC mais à tous les langages de merde genre C++,delphi ou java qui ne devraient servir qu'à faire des protos...
je pense que si tous les progs etaient progrmmés en C assez optimisé, les PC iraient bcp + vite...

vu que le 68k à 12Mhz est obsolète et u'il est préférable de programmer en asm dessus, je ne vois pas l'interet qu'on les dev de gcc à optimiser pour ce genre d'architectures...


et puis vivement OpenWatcom
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay