diff options
author | Ash Wolf <ninji@wuffs.org> | 2023-01-10 11:05:21 +0000 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2023-01-10 11:05:21 +0000 |
commit | aec1b8dddc68ecb8288ec6132932e4c7b4bca09f (patch) | |
tree | 8138328fe43bcc5fff690dc60caac79aa570ab2b /includes/compiler/IroLoop.h | |
parent | fcfbafff31869ed808bff0639532db1828660e92 (diff) | |
download | MWCC-aec1b8dddc68ecb8288ec6132932e4c7b4bca09f.tar.gz MWCC-aec1b8dddc68ecb8288ec6132932e4c7b4bca09f.zip |
getting close to done
Diffstat (limited to 'includes/compiler/IroLoop.h')
-rw-r--r-- | includes/compiler/IroLoop.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/includes/compiler/IroLoop.h b/includes/compiler/IroLoop.h index 8357830..0c60589 100644 --- a/includes/compiler/IroLoop.h +++ b/includes/compiler/IroLoop.h @@ -5,32 +5,32 @@ #include "compiler/BitVector.h" typedef enum IROLoopIndFlags { - LoopInd_1 = 1, - LoopInd_2 = 2, + LoopInd_HasMod = 1, + LoopInd_HasDiv = 2, LoopInd_4 = 4, LoopInd_8 = 8 } IROLoopIndFlags; typedef enum IROLoopFlags { - LoopFlags_1 = 1, + LoopFlags_1 = 1, // LP_INDUCTION_AT_LEFT LP_LOOP_HAS_CALLS = 2, LP_LOOP_HAS_CNTRLFLOW = 4, - LoopFlags_8 = 8, + LoopFlags_8 = 8, // LP_HAS_NONASSIGN LP_INDUCTION_NOT_FOUND = 0x10, LP_IFEXPR_NON_CANONICAL = 0x20, LP_HAS_MULTIPLE_INDUCTIONS = 0x40, LP_LOOP_HDR_HAS_SIDEEFFECTS = 0x80, - LoopFlags_100 = 0x100, - LoopFlags_200 = 0x200, + LP_LOOP_STEP_ISADD = 0x100, + LoopFlags_200 = 0x200, // LP_HEADER_FOLLOWS_UPDATE? LP_LOOP_STEP_ISPOS = 0x400, - LoopFlags_800 = 0x800, - LoopFlags_1000 = 0x1000, - LoopFlags_2000 = 0x2000, + LoopFlags_800 = 0x800, // LP_IND_USED_IN_LOOP + LoopFlags_1000 = 0x1000, // LP_HAS_MULTIPLE_EXITS + LoopFlags_2000 = 0x2000, // inverse of LP_LOOP_STEP_ISADD? LP_LOOP_STEP_ISNEG = 0x4000, LP_LOOP_HAS_ASM = 0x8000, - LoopFlags_10000 = 0x10000, - LoopFlags_20000 = 0x20000, - LoopFlags_40000 = 0x40000 + LoopFlags_10000 = 0x10000, // LP_WHILE_LOOP + LoopFlags_20000 = 0x20000, // maybe LP_RECURSIVE_LOOP? + LoopFlags_40000 = 0x40000 // LP_IS_REDUCTION_CAND } IROLoopFlags; #ifdef __MWERKS__ @@ -50,10 +50,10 @@ struct IROLoop { SInt32 flags; IRONode *fnode; int x8; - int xC; - int x10; + IRONode *xC; + IRONode *x10; IROLinear *nd14; // assignment expression that sets the initial value of induction - IROLinear *nd18; + IROLinear *nd18; // ifexpr? IROLoopInd *induction; int index20; int index24; |