Friday, November 18, 2005

PROJECT : 9th SEP

Agenda : Detailed discussion of the Dynamic optimization system
Codito Technologies, Pune.

----------------------------------------------------------------

crt0: overwrite text mprotect
-----------------------------

preloaded+bootstrapper:
-----------------------
- loads all other modules
- mprotect
- changes the text section (_start contents)

startup module:
---------------
- ctrl comes in from crt0
- page allocated for storing reg contents, sind stack
- register state saved
- sind_sp var set to the virtual stack
- j to interpreter

interpreter:
------------
(e.g. valgrind, bochs, plex86, vdebug0
- allocate page for app execution
- finds hot region and give the IR of that
- in: address of main
- find sequential code till the first jump
- copy the seq code into a trace/code region
- detect back-edges for identifying hot regions
- check that the back edges are in the cached address space
- Copy the hot code and reg state to the dispatcher
- no machine emulator

dispatcher
----------

- communicates betn all modules
- input: IR

fragment cache manager
-----------------------------

- put optimized hot regions into the cache
- heuristic for cache and trace replacement

prologues/epilogue instrumenter:
----------------------------------
- add pro/epilog
- xfer saved reg state back into hard regs
- save reg state back, retrun address into the interpreter,
to the pt in app address space
- thread the return stmts to the epilog


Data Structures:
--------------------
1. start of trace, end of trace, count, address in fragment cache,
if already present (for jumping the next time)
2. cache table (need heuristic for replacement here)
3. trace table (need heuristic for replacement here)


Deliverables:
----------------
- Detailed meeting minutes: Monday 12 Sep 2005
- Schedule (first cut) : Wednesday 14 Sep 2005

0 Comments:

Post a Comment

<< Home