• [^] # Re: Suis-je médisant ?

    Posté par (site web personnel) . En réponse à la dépêche LLVM 3.0. Évalué à 3.

    Si le but est de tirer les trip à son compilateur, il y a à prendre en considération, le mot clef "restrict" pour qualifier les pointeurs et utiliser "const" le plus souvent possible, cela aide en cas de manipulation de pointeur en provenance du dehors du fichier .c.

    "static inline" peut aider pour diminuer la taille du code inutile si la fonction n'a pas vocation a être utiliser en dehors du fichier .c en cours. Même en cas de fonction inline, la fonction doit exister en temps que tel pour être appelé de l'extérieur, donc si il n'y en a pas besoin autant la virer ("static").

    Je n'ai pas encore beaucoup jouer avec les qualifier de fonction comme "pure" ou "const", j'imagine que cela doit jouer dans l'usage de tel fonction au milieu de boucle de calcul.

    Sinon, il y a aussi les fonctionnalités openMP à regarder. Cela permet de faire de la parallélisation avec des threads à pas chère. Il faudrait que je retrouve mes exemples, mais il suffit souvent de mettre le bon pragma, juste devant la boucle la plus externe pour qu'elle soit paralléliser. Par contre, il faut une indépendance totale entre élément traité (comme une fonction map en fonctionnel).

    http://rajorshi.net/blog/2009/05/programming-for-multicore-introduction-openmp-gcc/
    https://en.wikipedia.org/wiki/OpenMP

    "La première sécurité est la liberté"