PROJECT : 27th SEP
Agenda : Trace selection & collection
Codito TEchnologies, Pune.
1. Definition of a trace
- When it becomes hot.
- When it's not a hot code.
2. What is a hot code?
- exact definition of a hot code
3. How to handle procedure calls
- in linear sequential code
- in the hot codes
4. How to handle forward jumps
- in linear codes. ( As our earlier definition said : A linear sequential code is, a piece of code till we get a jump. )
- A solution ( if we get a forward jump ): we can just change the fetch address of the interpreter and proceed as usual till we get a call or a backward jump and also remove the forward jump from the buffer where the linear sequential code is collected for execution.
5. Over-lapping of the traces .
- finding out a strategy to decide, how to co-alias two fragments.
6.what optimizations to perform
- what optimization has to be carried out .
- what info is required for them.
- What they give
- what libdisasm provides and libfd doesn't or vice versa
7..how to handle the relocation of the addresses.
- a module, with its properties and behavior has to be decided.
8. find API provided from libopcodes.
9.find where we can piggy back the data structures returned by libopcodes.
- according to the requirements for optimization.
- Also, find out whether it is possible to convert it into an IR using some callback function at the time of disassembling.
Codito TEchnologies, Pune.
1. Definition of a trace
- When it becomes hot.
- When it's not a hot code.
2. What is a hot code?
- exact definition of a hot code
3. How to handle procedure calls
- in linear sequential code
- in the hot codes
4. How to handle forward jumps
- in linear codes. ( As our earlier definition said : A linear sequential code is, a piece of code till we get a jump. )
- A solution ( if we get a forward jump ): we can just change the fetch address of the interpreter and proceed as usual till we get a call or a backward jump and also remove the forward jump from the buffer where the linear sequential code is collected for execution.
5. Over-lapping of the traces .
- finding out a strategy to decide, how to co-alias two fragments.
6.what optimizations to perform
- what optimization has to be carried out .
- what info is required for them.
- What they give
- what libdisasm provides and libfd doesn't or vice versa
7..how to handle the relocation of the addresses.
- a module, with its properties and behavior has to be decided.
8. find API provided from libopcodes.
9.find where we can piggy back the data structures returned by libopcodes.
- according to the requirements for optimization.
- Also, find out whether it is possible to convert it into an IR using some callback function at the time of disassembling.


0 Comments:
Post a Comment
<< Home