summaryrefslogtreecommitdiff
path: root/src/lj_jit.h
diff options
context:
space:
mode:
authorMike Pall <mike>2010-03-15 16:23:02 +0100
committerMike Pall <mike>2010-03-15 16:23:02 +0100
commit24402ede0421876b3e681b153c5355e206376799 (patch)
tree1ba3d5b0c463a8afebfc587161a0a8e8e166f21b /src/lj_jit.h
parenta25a717089679b629b6f028ede736a52f3c17ade (diff)
downloadluajit-24402ede0421876b3e681b153c5355e206376799.tar.gz
luajit-24402ede0421876b3e681b153c5355e206376799.tar.bz2
luajit-24402ede0421876b3e681b153c5355e206376799.zip
Reorganize scalar evolution analysis.
Diffstat (limited to 'src/lj_jit.h')
-rw-r--r--src/lj_jit.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lj_jit.h b/src/lj_jit.h
index 3201baf0..bd7c7577 100644
--- a/src/lj_jit.h
+++ b/src/lj_jit.h
@@ -201,6 +201,16 @@ typedef struct BPropEntry {
201/* Number of slots for the backpropagation cache. Must be a power of 2. */ 201/* Number of slots for the backpropagation cache. Must be a power of 2. */
202#define BPROP_SLOTS 16 202#define BPROP_SLOTS 16
203 203
204/* Scalar evolution analysis cache. */
205typedef struct ScEvEntry {
206 IRRef1 idx; /* Index reference. */
207 IRRef1 start; /* Constant start reference. */
208 IRRef1 stop; /* Constant stop reference. */
209 IRRef1 step; /* Constant step reference. */
210 IRType1 t; /* Scalar type. */
211 uint8_t dir; /* Direction. 0: +, 1: -. */
212} ScEvEntry;
213
204/* 128 bit SIMD constants. */ 214/* 128 bit SIMD constants. */
205enum { 215enum {
206 LJ_KSIMD_ABS, 216 LJ_KSIMD_ABS,
@@ -283,6 +293,8 @@ typedef struct jit_State {
283 BPropEntry bpropcache[BPROP_SLOTS]; /* Backpropagation cache slots. */ 293 BPropEntry bpropcache[BPROP_SLOTS]; /* Backpropagation cache slots. */
284 uint32_t bpropslot; /* Round-robin index into bpropcache slots. */ 294 uint32_t bpropslot; /* Round-robin index into bpropcache slots. */
285 295
296 ScEvEntry scev; /* Scalar evolution analysis cache slots. */
297
286 const BCIns *startpc; /* Bytecode PC of starting instruction. */ 298 const BCIns *startpc; /* Bytecode PC of starting instruction. */
287 TraceNo parent; /* Parent of current side trace (0 for root traces). */ 299 TraceNo parent; /* Parent of current side trace (0 for root traces). */
288 ExitNo exitno; /* Exit number in parent of current side trace. */ 300 ExitNo exitno; /* Exit number in parent of current side trace. */