Lines Matching refs:code
17 do not move code across basic-block boundaries.
26 The reoptimizer maintains a map between machine-code basic blocks and
28 first machine-code basic block of the hot loop region.
33 1) Do a DFS from the first machine-code basic block of the hot loop
36 2) Do a DFS from the last machine-code basic block of the hot loop
87 When we finally generate an optimized trace we first copy the code
88 into the trace cache. This leaves us with 3 copies of the code: the
89 original code, the instrumented code, and the optimized trace. The
90 optimized trace does not have instrumentation. The original code and
91 the instrumented code are modified to have a branch to the trace
94 We copy the code from the original to the instrumentation version
95 by tracing the LLVM-to-Machine code basic block map and then copying
96 each machine code basic block we think is in the hot region into the
97 trace cache. Then we instrument that code. The process is similar for
99 because we might need to put in fixup code for exit BBs.
105 original code, trace, and instrumented code. So we have to keep the
106 code copies in memory near the original code (they can't be far enough
112 overwrite with trace-cache code. The trace manager keeps track of
121 the beginning of the original code to the beginning of the optimized
133 trace caches. We keep the instrumented code around because you don't