Pin
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Macros | Typedefs | Enumerations | Functions | Variables
ins_reuse_ia32.cpp File Reference
#include "level_base_with_ia32_ins.H"
#include "level_core_with_ia32_ins.H"
#include <vector>
#include <map>

Macros

#define LOG_INS_REUSE(message)   QMESSAGE(MessageTypeLogInsReuse, string("insReuse: ") + message)
 

Typedefs

typedef vector< ADDRINT > LEVEL_CORE::INS_REUSER_ID_VEC
 
typedef ADDRINT LEVEL_CORE::INS_REUSER_HANDLE
 
typedef ADDRINT LEVEL_CORE::INS_REUSER_STORE_HANDLE
 

Enumerations

enum  INS_REUSER_TYPE {
  INS_REUSER_TYPE_FIRST,
  INS_REUSER_TYPE_YMM_INSERT_OP = INS_REUSER_TYPE_FIRST,
  INS_REUSER_TYPE_LOAD_MEM_OP,
  INS_REUSER_TYPE_STORE_MEM_OP,
  INS_REUSER_TYPE_REG_REG_OP,
  INS_REUSER_TYPE_REG_IMM_OP,
  INS_REUSER_TYPE_REG_OP,
  INS_REUSER_TYPE_SDISP_OP,
  INS_REUSER_TYPE_IMM_OP,
  INS_REUSER_TYPE_NO_REG_OP,
  INS_REUSER_TYPE_VZEROUPPER,
  INS_REUSER_TYPE_MEM_IMM_OP,
  INS_REUSER_TYPE_CHANGE_TO_IMM_OP,
  INS_REUSER_TYPE_SIZED_NOP,
  INS_REUSER_TYPE_MM_LOAD,
  INS_REUSER_TYPE_MM_STORE,
  INS_REUSER_TYPE_MM_REG_REG_OP,
  INS_REUSER_TYPE_YMM_REG_OP,
  INS_REUSER_TYPE_YMM_REG_REG_REG_OP,
  INS_REUSER_TYPE_RET_IMM,
  INS_REUSER_TYPE_WIDTH_REG_IMM_OP,
  INS_REUSER_TYPE_REG_WORD_REG_BYTE_OP,
  INS_REUSER_TYPE_REG_WIDTH_REG_OP,
  INS_REUSER_TYPE_LAST
}
 

Functions

LOCALVAR MESSAGE_TYPE LEVEL_CORE::MessageTypeLogInsReuse ("log_ins_reuse","", false, false, false, false, LOGTYPE_LOGFILE,"pin log: ins_reusing")
 
INS_REUSERS_MANAGER & LEVEL_CORE::InsReusersManager ()
 
KNOB< BOOL > LEVEL_CORE::KnobUseInsReusing (KNOB_MODE_WRITEONCE,"supported:regalloc","ins_reusing", KNOB_ONLY_OFF_MIC,"Enable ins reusing")
 
LOCALVAR STAT_NORM LEVEL_CORE::StatInReusingStoreBytes ("mem","bytes","ins_reusing","",&StatRawMmapBytes)
 

Variables

LOCALVAR string LEVEL_CORE::reuserTypeStr []
 

Detailed Description

Contains the management of ins reuse - i.e. the reuse of already created inss when a new ins is generated. This functionality is used in the base INS_Init* functions in ins_initis_api_xed_ia32.cpp.