Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda