aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linearize.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-10-22 18:20:39 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-07 21:03:37 -0700
commit93f1ca29e4cfc460836c487d81368c991772abe1 (patch)
treedc9ec138c9e924812a1b645b3d5bddf5e6b80ecc /linearize.h
parenta154193c75f37423db0d3b3e2f34a87a41ddfcdd (diff)
downloadsparse-93f1ca29e4cfc460836c487d81368c991772abe1.tar.gz
Add an internal sparse "context" statement type.
It just ends up propagating the expression to the linearizer, which creates an internal "context" instruction for it.
Diffstat (limited to 'linearize.h')
-rw-r--r--linearize.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/linearize.h b/linearize.h
index a92280a3..bc4aacde 100644
--- a/linearize.h
+++ b/linearize.h
@@ -65,6 +65,9 @@ struct instruction {
pseudo_t func;
struct pseudo_list *arguments;
};
+ struct /* context */ {
+ int increment;
+ };
};
};
@@ -136,6 +139,9 @@ enum opcode {
OP_VANEXT,
OP_VAARG,
OP_SLICE,
+
+ /* Sparse tagging (line numbers, context, whatever) */
+ OP_CONTEXT,
};
struct basic_block_list;
@@ -150,6 +156,7 @@ struct instruction_list;
struct basic_block {
unsigned long flags; /* BB status flags */
+ int context;
struct basic_block_list *parents; /* sources */
struct instruction_list *insns; /* Linear list of instructions */
};