From ff94248978e228789d8efb210684420f97668728 Mon Sep 17 00:00:00 2001
From: clc5q <clc5q@git.zephyr-software.com>
Date: Wed, 26 Mar 2008 21:58:01 +0000
Subject: [PATCH] Add memory region type refinements for POINTER type.

---
 SMPDataFlowAnalysis.h | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/SMPDataFlowAnalysis.h b/SMPDataFlowAnalysis.h
index d552cb14..aede6eb2 100644
--- a/SMPDataFlowAnalysis.h
+++ b/SMPDataFlowAnalysis.h
@@ -118,10 +118,14 @@ enum SMPitype {
 //  at all, which is even better. In order to emit these annotations, we
 //  will track all operands in a function as to their basic SMP types.
 enum SMPOperandType { // What type is a given register or memory operand?
-	UNINIT,      // Operand type not yet analyzed
+	UNINIT,      // Operand type not yet analyzed; type lattice top
 	NUMERIC,     // Definitely holds non-pointer value (char, int, etc.)
-	POINTER,     // Definitely holds an address
-	UNKNOWN      // Might hold an address, might not (Bad!)
+	CODEPTR,     // Definitely holds a code address
+	POINTER,     // Definitely holds a data address
+	STACKPTR,    // Definitely holds a stack data address (refinement of POINTER)
+	GLOBALPTR,   // Definitely holds a global static data address (refinement of POINTER)
+	HEAPPTR,     // Definitely holds a heap data address (refinement of POINTER)
+	UNKNOWN      // Might hold an address, might not (Bad!); type lattice bottom
 };
 
 class DefOrUse {
-- 
GitLab