PageRenderTime 263ms CodeModel.GetById 141ms app.highlight 0ms RepoModel.GetById 120ms app.codeStats 1ms

/opengles/src/codegen/todo.txt

http://ftk.googlecode.com/
Plain Text | 44 lines | 31 code | 13 blank | 0 comment | 0 complexity | fefc68ff073d1aa7293e542491c6f42c MD5 | raw file
 1Ideas on how to improve JIT:
 2----------------------------
 3
 4
 5- Register targeting: 
 6
 7Mainly for function calls: If next use of a register is for
 8a function call, calcualte value directly into target register. 
 9	
10Issue: Can this lead to premature and unnecessary stores?
11	
12- Increase cache performance:
13
14Allocate actual storage offsets for registers only after we
15have identified, which different values actually need to be persisted.
16	
17- Read only parameters are copy onto stack:
18
19Alternatives: Move all parameters onto stack, so we can use
20direct frame pointer access
21Or: Convert function to a method, and have a second pointer
22(this->ptr) available for
23direct adressing of parameter values.
24Or: Implement reference variables (could lead to cascaded
25load instructions in inner loops)
26	
27- Remove stalls in execution pipeline:
28
29Register loads: Have cg_codegen_emit_simple_inst look for
30register values that need to/could be
31preloaded for following instruction. If those exist, and
32registers are available, emit
33pre-load instruction before actual instruction to be
34scheduled at this point. This will
35ensure that data will be available (given it resides in
36on-chip cache).
37	
38Multiplications: Rewrite fixed point multiplies as
39instructions that can be scheduled individually
40	
41Have general instruction scheduling on intermediate code: 
42Assuming all data is available, just take instuction
43execution cycles and next use into consideration.
44