IR simplificerer verden. Forestil dig, at du laver et nyt sprog (lad os kalde det Pimp).
Du vil så have gcc (Gnu Compiler Collection) til at understøtte det. Det eneste du skal gøre er at lave en frontend, som ganske rigtigt består af en scanner og parser samt det løse. Den omdanner din Pimp kode til gcc IR (som vistnok hedder Gimple). That's it!
Nu hvor din kode er omdannet til IR får du al den lir, som gcc består af. Først en masse optimeringer, hvor døde code paths bliver fjernet, loops kan rulles ud, tail recursion kan omskrives, aritmetik kan simplificeres, beregninger i loops kan flyttes ud, osv.
Resultatet af dette skridt bliver så sendt til en backend, som omdanner IR til Intel 64 bit maskinkode, eller 32 bit, eller Arm, eller MIPS, eller...osv.
Du kommer med andre ord til at understøtte alle de arkitekturer, som gcc understøtter alene ved at lave en frontend til gcc.
Makes sense?
Indlæg senest redigeret d. 29.05.2016 21:01 af Bruger #2695