En lisant divers articles sur LLVM et sa propre documentation, j'ai vu des références à une propriété que je trouve étrange concernant la rétrocompatibilité de son IR.Difficulté à comprendre l'asymétrie de compatibilité entre le texte LLVM IR et la représentation binaire entre versions
Une grande partie de la documentation concernant l'IR mentionne qu'elle est instable et peut se casser à peu près n'importe quand. Cependant, il a également souvent mentionné que le bitcode IR est plus rétrocompatible (comme dans «souvent valide sur plusieurs versions») que le texte IR pour une version LLVM spécifique donnée. D'après ce que je comprends, la transformation bytecode -> bitcode est à peu près un mappage direct. Sachant cela, pourquoi/comment le texte IR est-il moins compatible? Je n'arrive pas à trouver la documentation sur le mécanisme réel qui conduit ce comportement.
Un exemple d'une telle déclaration sur la compatibilité IR peut être trouvée ici: http://llvm.org/docs/DeveloperPolicy.html#ir-backwards-compatibility