diff --git a/SMPDataFlowAnalysis.h b/SMPDataFlowAnalysis.h index d552cb1463facefd0157eb3634e84d90c9e04534..aede6eb2267264a56d740abc3e2170df48b459ec 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 {