Section courante

A propos

Section administrative du site

Voici la liste des instructions reconnu par le LLVM :

Nom Description
add Cette instruction permet de retourner la somme de ses 2 opérandes.
addrspacecast ... to Cette instruction permet de convertir la valeur du pointeur spécifié dans l'espace adresse spécifié en type spécifié dans l'espace adresse spécifié.
alloca Cette instruction permet d'allouer de la mémoire dans le cadre de la pile de la fonction en cours d'exécution, étant automatiquement libérée lorsque cette fonction reviendra à son appelant.
and Cette instruction permet de retourner un «Et binaire» de ses 2 opérandes.
ashr Cette instruction permet de retourner le premier opérande décalé à droite d'un nombre spécifié de bits avec extension de signe.
atomicrmw Cette instruction permet de modifier de manière atomique la mémoire.
bitcast ... to Cette instruction permet de convertir la valeur en type spécifié sans changer aucun bit.
br Cette instruction permet de transférer le flux de commande vers un bloc de base différent dans la fonction courante.
call Cette instruction permet de faire un simple appel de fonction.
callbr Cette instruction permet de provoquer le transfert du contrôle vers une fonction spécifiée, avec possibilité de transfert du flux de contrôle vers l'étiquette normal ou l'un des other.
cleanupret Cette instruction permet d'effectuer une terminaison ayant un successeur facultatif.
catchpad Cette instruction permet d'effectuer un traitement des exceptions de LLVM pour spécifier qu'un bloc de base commence un gestionnaire de catch - un programme dans lequel une routine personnalisé tente de transférer le contrôle pour intercepter une exception.
catchret Cette instruction permet de terminer une exception existante (en vol) dont le déroulement a été interrompu par une instruction catchpad.
cmpxchg Cette instruction permet de modifier la mémoire de manière atomique.
catchswitch Cette instruction permet de transférer le contrôle à l'un des successeurs des gestionnaires, le cas échéant, ou continue à se dérouler via l'étiquette de déroulement, le cas échéant.
cleanuppad Cette instruction permet d'effectuer le traitement des exceptions de LLVM pour spécifier qu'un bloc de base est un bloc de nettoyage - un programme dans lequel une routine personnalisé tente de transférer le contrôle pour exécuter des actions de nettoyage.
extractelement Cette instruction permet d'extraire un élément scalaire unique d'un vecteur à un index spécifié.
extractvalue Cette instruction permet d'extraire la valeur d'un champ membre d'une valeur d'agrégat.
fadd Cette instruction permet de retourner la somme de ses 2 opérandes.
fcmp Cette instruction permet de retourner une valeur booléenne ou un vecteur de valeurs booléennes basé sur la comparaison de ses opérandes.
fdiv Cette instruction permet de retourner le quotient de ses 2 opérandes réel (à virgule flottante).
fence Cette instruction permet d'introduire le frontale «se passe avant» entre les opérations.
fmul Cette instruction permet de retourner le produit de ses 2 opérandes.
fneg Cette instruction permet de retourner la négation de son opérande.
fpext ... to Cette instruction permet d'étendre une valeur à virgule flottante à une plus grande valeur à virgule flottante.
fptosi ... to Cette fonction permet de convertir une valeur en virgule flottante en type spécifié.
fptoui ... to Cette fonction permet de convertir une valeur à virgule flottante en son équivalent entier non signé de type spécifié.
fptrunc ... to Cette instruction permet de tronquer la valeur au type spécifié.
frem Cette instruction permet de retourner le reste de la division de ses 2 opérandes.
fsub Cette instruction permet de retourner la différence entre ses 2 opérandes.
getelementptr Cette instruction permet de demander l'adresse d'un sous-élément d'une structure de données d'agrégat.
icmp Cette instruction permet de retourner une valeur booléenne ou un vecteur de valeurs booléennes basé sur la comparaison de ses 2 opérandes entier, vecteur entier, pointeur ou vecteur de pointeur.
indirectbr Cette instruction permet d'intégrer une branche indirecte d'une étiquette dans la fonction en cours, avec l'adresse spécifiée.
insertelement Cette instruction permet d'insérer un élément scalaire dans un vecteur situé à un index spécifié.
insertvalue Cette instruction permet d'insérer une valeur dans un champ membre d'une valeur d'agrégat.
inttoptr ... to Cette instruction permet de convertir une valeur entière en un type de pointeur spécifié.
invoke Cette instruction permet d'appeler le transfert du contrôle vers une fonction spécifiée, avec possibilité de transfert du flux de contrôle vers l'étiquette normal ou exception.
landingpad Cette instruction permet d'effectuer le traitement des exceptions de LLVM pour spécifier qu'un bloc de base est un pad cible - une exception où la cible et correspond au code trouvé dans la partie catch d'une séquence try/catch.
load Cette instruction permet d'effectuer la lecture de la mémoire.
lshr Cette instruction permet de retourner le premier opérande décalé à droite d'un nombre spécifié de bits à remplissage de 0.
mul Cette instruction permet de retourner le produit de ses 2 opérandes.
or Cette instruction permet de retourner un «Ou inclusif binaire» de ses 2 opérandes.
phi Cette instruction permet d'intégrer un noeud φ dans le graphe SSA représentant la fonction.
ptrtoint ... to Cette instruction permet de convertir le pointeur ou un vecteur de pointeurs en un type entier (ou un vecteur d'entiers) spécifié.
resume Cette instruction permet d'effectuer une terminaison n'ayant pas de successeur.
ret Cette instruction permet de retourner le flux de contrôle (et éventuellement une valeur) d'une fonction à l'appelant.
sdiv Cette instruction permet de retourner le quotient de ses 2 opérandes signé.
sext ... to Cette instruction permet d'étendre le signe de la valeur au type spécifié.
select Cette instruction permet de choisir une valeur en fonction d'une condition, sans ramification au niveau IR.
shl Cette instruction permet de retourner le premier opérande décalé à gauche d'un nombre spécifié de bits.
shufflevector Cette instruction permet de construire une permutation d'éléments à partir de 2 vecteurs d'entrée, renvoyant un vecteur ayant le même type d'élément que l'entrée et une longueur identique à celle du masque de mélange.
sitofp ... to Cette instruction permet de considérer la valeur comme un entier signé et de la convertir au type spécifié.
srem Cette instruction permet de retourner le reste de la division signée de ses deux paramètres.
sub Cette instruction permet de retourner la différence entre ses 2 opérandes.
store Cette instruction permet d'effectuer l'écriture vers la mémoire.
switch Cette instruction permet de transférer le flux de contrôle vers plusieurs emplacements différents.
trunc ... to Cette instruction permet de tronquer son opérande au type spécifié.
udiv Cette instruction permet de retourner le quotient de ses 2 opérandes non-signé.
uitofp ... to Cette instruction permet de considérer la valeur comme un entier non signé et de convertir cette valeur en type spécifié.
unreachable Cette instruction permet d'informer l'optimiseur qu'une partie particulière du code n'est pas accessible.
urem Cette instruction permet de retourner le reste de la division non signée de ses deux paramètres.
va_arg Cette instruction permet d'accéder aux paramètres passés dans la zone «argument variable» d'un appel de fonction.
xor Cette instruction permet de retourner un «Ou exclusif binaire» de ses 2 opérandes.
zext ... to Cette instruction permet d'étendre le zéro de son opérande au type spécifié.


Dernière mise à jour : Jeudi, le 13 juin 2019