Наскоро ми казаха да погледна как функциите на C се компилират в байткод на LLVM и след това как байткодът на LLVM се превежда в x86 ASM. Като редовен потребител на GNU/gcc имам някои въпроси относно това. Меко казано.
GNU/gcc компилира ли се и в байт код? Може ли? Останах с впечатлението, че gcc се компилира директно в ASM. Ако не, има ли начин да видите посредника на байт кода, както е с командата clang?
~$ clang ~/prog_name.c -S -emit-llvm -o -
‹== ще покаже байт код за prog_name.c.
Освен това намирам байт кода за доста византийски. За разлика от това, той прави асемблерния език да изглежда като леко четиво. С други думи: имам малка представа какво казва.
Някой има ли съвет или препратки за неясно дешифриране на информацията, която дава байт кодът? В момента сравнявам и контрастирам с действителния ASM, така че да кажа, че работи бавно, е комплимент.
Може би всичко това е комично наивно, но намирам за доста предизвикателство да пробия през повърхността на това.
gcc -fdump-tree-ssa
- person SK-logic   schedule 20.03.2013gcc -fdump-tree-ssa program.c -o program.ssa
, ноnano program.ssa
изглежда като wingdings... или така трябва да изглежда? - person d0rmLife   schedule 20.03.2013program.c
. - person SK-logic   schedule 20.03.2013