diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-01-03 15:35:48 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-06-13 05:49:23 +0200 |
| commit | 9d04727b5aa5309b46a40f69756ec8bc8e376e6c (patch) | |
| tree | ec6a08929a0a37cc8dd75ec8b308119347abb465 /example.c | |
| parent | 0c96862dde0ffd63c8c7837094d0d319f060d4a6 (diff) | |
| download | sparse-dev-9d04727b5aa5309b46a40f69756ec8bc8e376e6c.tar.gz | |
ptrlist: make explicit when tagged pointers are used.
Only a few places need list recursions on tagged pointers but currently
they use the same macros as the common case where no tag is used.
Make this very explicit by adding using the macro FOR_EACH_PTR_TAG()
for these few cases.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'example.c')
| -rw-r--r-- | example.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -383,7 +383,7 @@ static void flush_reg(struct bb_state *state, struct hardreg *reg) return; reg->dead = 0; reg->used = 1; - FOR_EACH_PTR(reg->contains, pseudo) { + FOR_EACH_PTR_TAG(reg->contains, pseudo) { if (CURRENT_TAG(pseudo) & TAG_DEAD) continue; if (!(CURRENT_TAG(pseudo) & TAG_DIRTY)) @@ -436,7 +436,7 @@ static void mark_reg_dead(struct bb_state *state, pseudo_t pseudo, struct hardre { pseudo_t p; - FOR_EACH_PTR(reg->contains, p) { + FOR_EACH_PTR_TAG(reg->contains, p) { if (p != pseudo) continue; if (CURRENT_TAG(p) & TAG_DEAD) @@ -521,7 +521,7 @@ static struct hardreg *find_in_reg(struct bb_state *state, pseudo_t pseudo) pseudo_t p; reg = hardregs + i; - FOR_EACH_PTR(reg->contains, p) { + FOR_EACH_PTR_TAG(reg->contains, p) { if (p == pseudo) { last_reg = i; output_comment(state, "found pseudo %s in reg %s (busy=%d)", show_pseudo(pseudo), reg->name, reg->busy); @@ -861,7 +861,7 @@ static void kill_dead_reg(struct hardreg *reg) if (reg->dead) { pseudo_t p; - FOR_EACH_PTR(reg->contains, p) { + FOR_EACH_PTR_TAG(reg->contains, p) { if (CURRENT_TAG(p) & TAG_DEAD) { DELETE_CURRENT_PTR(p); reg->dead--; @@ -901,7 +901,7 @@ static void generate_binop(struct bb_state *state, struct instruction *insn) static int is_dead_reg(struct bb_state *state, pseudo_t pseudo, struct hardreg *reg) { pseudo_t p; - FOR_EACH_PTR(reg->contains, p) { + FOR_EACH_PTR_TAG(reg->contains, p) { if (p == pseudo) return CURRENT_TAG(p) & TAG_DEAD; } END_FOR_EACH_PTR(p); @@ -996,7 +996,7 @@ static void kill_pseudo(struct bb_state *state, pseudo_t pseudo) pseudo_t p; reg = hardregs + i; - FOR_EACH_PTR(reg->contains, p) { + FOR_EACH_PTR_TAG(reg->contains, p) { if (p != pseudo) continue; if (CURRENT_TAG(p) & TAG_DEAD) @@ -1533,7 +1533,7 @@ static void fill_output(struct bb_state *state, pseudo_t pseudo, struct storage struct hardreg *reg = hardregs + i; pseudo_t p; - FOR_EACH_PTR(reg->contains, p) { + FOR_EACH_PTR_TAG(reg->contains, p) { if (p == pseudo) { write_reg_to_storage(state, reg, pseudo, out); return; @@ -1641,7 +1641,7 @@ static void generate_output_storage(struct bb_state *state) int flushme = 0; reg->busy = REG_FIXED; - FOR_EACH_PTR(reg->contains, p) { + FOR_EACH_PTR_TAG(reg->contains, p) { if (p == entry->pseudo) { flushme = -100; continue; |
