Il progetto LLVM non distingue tra numeri interi con e senza segno, come descritto here. Esistono situazioni in cui è necessario sapere se una particolare variabile deve essere interpretata come firmata o come non firmata, ad esempio quando è estesa di dimensioni o quando viene utilizzata in una divisione. La mia soluzione a questo è di mantenere un tipo di informazione separata per ogni variabile che descrive se si tratta di un intero o di un tipo cardinale.Come distinguere firmato e intero senza segno LLVM
Tuttavia, mi chiedo, non c'è un modo per "attributo" un tipo in LLVM quel modo? Stavo cercando una sorta di "dati utente" che potrebbero essere aggiunti a un tipo ma sembra non esserci nulla. Ciò dovrebbe accadere in qualche modo quando il tipo viene creato poiché i tipi uguali vengono generati una sola volta in LLVM.
La mia domanda quindi è:
C'è un modo per monitorare se una variabile intera deve essere interpretata come con o senza segno all'interno dell'infrastruttura LLVM, o è l'unico modo infatti per mantenere informazioni separate come faccio io?
Grazie
Se state scrivendo un compilatore, si tratta in genere informazioni che desideri mantenere se stessi nel frontend, indipendentemente dalla LLVM. –