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