summary refs log tree commit diff
path: root/lisc/lisc.h
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-11-13 13:12:22 -0500
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-11-13 13:12:22 -0500
commit291c39565fb3b4e688dce2bfedbdd781ed71e87d (patch)
tree92ec7f068607a2ce34cec5d857c9302708b2047f /lisc/lisc.h
parent681fc07defc8902d5b3d827bac50eedc748f8664 (diff)
downloadroux-291c39565fb3b4e688dce2bfedbdd781ed71e87d.tar.gz
store the use locations for temporaries
Diffstat (limited to 'lisc/lisc.h')
-rw-r--r--lisc/lisc.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h
index 5748587..3643e48 100644
--- a/lisc/lisc.h
+++ b/lisc/lisc.h
@@ -14,6 +14,7 @@ typedef struct OpDesc OpDesc;
 typedef struct Ins Ins;
 typedef struct Phi Phi;
 typedef struct Blk Blk;
+typedef struct Use Use;
 typedef struct Tmp Tmp;
 typedef struct Con Con;
 typedef struct Addr Mem;
@@ -247,8 +248,23 @@ struct Blk {
 	char name[NString];
 };
 
+struct Use {
+	enum {
+		UXXX,
+		UPhi,
+		UIns,
+		UJmp,
+	} type;
+	int bid;
+	union {
+		int ins;
+		Ref phi;
+	} u;
+};
+
 struct Tmp {
 	char name[NString];
+	Use *use;
 	uint ndef, nuse;
 	uint cost;
 	short slot;