Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

216
Views
¿Es LLVM IR un lenguaje independiente de la máquina?

Cuando estaba leyendo el código LLVM IR (transformado de C), vi una instrucción como esta:

 %div = sdiv i32 %add, %32

El código C de esta instrucción puede ser así:

 a = c / b;

Podemos ver que hay un tipo i32 en esta instrucción. Esto se debe al tipo de variables a, b, c son int . Y mi computadora es x86.

Ahora, si tengo una máquina donde el número entero es de aproximadamente 8 bits y escribo el código C igual que el anterior y transformo C en LLVM IR en esta máquina, la instrucción LLVM IR podría ser %div = sdiv i8 %add, %32 .

¿Es esto correcto? En caso afirmativo, ¿cómo podemos decir que LLVM IR es un lenguaje independiente de la máquina ?

Pensé que si una pieza de código está en un lenguaje independiente de la máquina, entonces este código puede ejecutarse en cualquier máquina en este mundo, y cuando el código se ejecuta, la máquina virtual u otras cosas manejarán las diferencias entre arquitecturas.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Sí, LLVM IR es un lenguaje independiente de la máquina.

Pero el código IR no se podía ejecutar directamente en hardware real. Para ejecutar el código IR, se necesita un proceso de reorientación. Durante el 'retarget', el código IR independiente de la máquina se traduce a un código dependiente de la máquina para el objetivo (x86, MIPS, aarch, chip de 8 bits, etc.).

over 4 years ago · Santiago Trujillo Report

0

LLVM IR es un lenguaje independiente de la máquina, pero eso no es suficiente para los programas independientes de la máquina. Los programas requieren algo más que un idioma. LLVM tiene clases llamadas TargetMachine y DataLayout, por ejemplo, que recopilan detalles específicos del objetivo, como cómo se distribuyen las estructuras en la memoria y si los punteros a direcciones impares son legales. A menudo verá código en ese lenguaje independiente de la máquina usando números dependientes del objetivo. En esta plataforma el código suma 4, en esa otra, 8.

Pero en ambos casos, el lenguaje es el mismo y la instrucción de add es la misma, lo que simplifica la vida de los mantenedores del compilador.

over 4 years ago · Santiago Trujillo Report

0

¿Es LLVM IR un lenguaje independiente de la máquina?

Si compila el código fuente que se escribió en lenguaje ensamblador (por ejemplo, ensamblador en línea), no puede ser independiente de la máquina.

Por lo tanto, LLVM es independiente de la máquina (para la mayoría de las cosas) y también dependiente de la máquina (para el lenguaje ensamblador).

Tenga en cuenta que si observa la referencia de LLVM (por ejemplo, http://web.cs.ucla.edu/classes/spring08/cs259/llvm-2.2/docs/LangRef.html#inlineasm ) verá que el lenguaje ensamblador se convierte principalmente en /sigue siendo texto sin formato (no código de bytes, no código de máquina). Es el contenido del texto sin formato lo que depende de la máquina (para las instrucciones mismas y las restricciones, etc.).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!