Y at-il un équivalent à size_t dans llvm

Certaines bibliothèques système telles que malloc strlen veulent ou retournent size_t en tant que paramètre.

  • Quel est le bon choix dans LLVM IR pour interagir avec ces fonctions?
  • La sélection est-elle la tâche du compilateur?
  • Est-ce que LLVM IR a un type size_t?

Au niveau de la LLVM, size_t n’existe pas. C’est une construction au bénéfice du développeur qui est typé au format natif. Les types natifs ont une taille fixe pour l’architecture cible et c’est ainsi que le compilateur les représente dans le code à bits LLVM. Ainsi, sur x86, size_t peut être considéré par le serveur frontal comme non signé long, qu’il écrit ensuite sur LLVM comme étant i32 (l’assembly de LLVM n’ayant pas de type non signé).

Vous pouvez utiliser size_t dans llvm, il s’agit d’un type valide à utiliser normalement.