On the 0x3CD day of Apache Harmony Simon Chow wrote: > I am studying OPT in jitrino. For understanding the process of building CFG, > I have read some code of JavaByteCodeTranslator. > In the constructor of JavaByteCodeTranslator, there is an additional pass > named JavaLabelPrepass, > I would like to ask what is the exact purpose of this pass?
the purpose is to mark basic blocks and inference stack variables and local variables with their types. This information goes to the input of JavaByteCodeTranslator, which in single pass goes through each bytecode instruction and converts it to operand-based representation from the stack-based in bytecode. The problem is a little tricky (with variable merging logic) and current design is poor. > Besides this, It is seems that the translator part will be refined, which I > saw in the wiki. Has it already been done in the current version? > Thanks! no, translator is not refined, low priority task. Why do you study the process of building CFG? If you want to do something with it, I would suggest to try some other place since all JIT people here will agree that debugging JavalabelPrepass is brain-damaging. -- Egor Pasko
