aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-12-03 12:54:58 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-07 21:05:27 -0700
commit422bd24978f19c2ffd3b3f88ac4a083eea4389b3 (patch)
treec8d9d07fb2e9d30598d12dfa48b7f49edb545360 /linearize.h
parentExpose "show_pseudo()" to the world. (diff)
downloadsparse-422bd24978f19c2ffd3b3f88ac4a083eea4389b3.tar.gz
sparse-422bd24978f19c2ffd3b3f88ac4a083eea4389b3.tar.bz2
sparse-422bd24978f19c2ffd3b3f88ac4a083eea4389b3.zip
Make the "entrypoint" be a special OP_ENTRY instruction instead of
a special basic block. This removes a lot of special cases, since now flow doesn't have any special BB to worry about. It also gives a clear definition point for argument pseudos, and thus makes liveness tracking lose a special case.
Diffstat (limited to 'linearize.h')
-rw-r--r--linearize.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/linearize.h b/linearize.h
index d67de8d..c67065a 100644
--- a/linearize.h
+++ b/linearize.h
@@ -88,6 +88,10 @@ struct instruction {
enum opcode {
OP_BADOP,
+
+ /* Entry */
+ OP_ENTRY,
+
/* Terminator */
OP_TERMINATOR,
OP_RET = OP_TERMINATOR,
@@ -252,7 +256,7 @@ struct entrypoint {
struct symbol_list *accesses;
struct basic_block_list *bbs;
struct basic_block *active;
- struct basic_block *entry;
+ struct instruction *entry;
};
extern void insert_select(struct basic_block *bb, struct instruction *br, struct instruction *phi, pseudo_t true, pseudo_t false);