El trabajo de backend en el compilador generalmente se trata de admitir nuevas arquitecturas de computadora. En general, esto implica escribir código que reduce el IR / DAG a las instrucciones de la máquina. Esto debe hacerse de manera eficiente para que el código se ejecute rápidamente en la arquitectura de destino. Algunos compiladores como LLVM empujan transformaciones de código específicas de arquitectura al backend. Entonces, cosas como la programación, la formación de paquetes VLIW se manejan en el back-end. Para esto, el ingeniero del compilador de back-end tiene que estar muy familiarizado con la microarquitectura.
Las áreas específicas de un contexto llvm son
1) Tabla de patrones / código de generación para convertir IR a código de ensamblaje.
2) Programación de instrucciones. Tiene más sentido para los procesadores VLIW / DSP. Puede tratarse de programación de software / programación de módulos o una simple programación basada en listas.
Los dominios posibles donde puedes trabajar son
1) GPU
2) Procesadores VLIW: Aquí el backend del compilador juega un papel muy importante, determina cómo formar paquetes vliw, cómo programar instrucciones, etc.
3) Síntesis de C a RTL: aquí el compilador back-end es el rey, determina cuántos recursos crear y utilizar, el ciclo de ciclo de operaciones, etc.
- ¿Existe alguna posibilidad de que las computadoras sean conscientes o al menos posean algún nivel de conciencia?
- ¿Alguien puede ayudarme a solucionar el problema con mi computadora?
- Cómo saber todo en computadora
- ¿Quién es el fundador de la computadora?
- ¿Cómo debería AMD ganar impulso con Ryzen?