Temporary information obtained by parsing a block (bbl) of instructions, such as IR-level leaders and auxiliary information about an instruction-level basic block. This information is necessary to construct a (IR-level) CFG. Normally, a single instruction-level bbl represents a single IR-level basic block, but if there exist intra-instruction control flows, it can have multiple intra blocks.
Record Field | Description |
Full Usage:
HasExplicitTerminator
Field type: bool
|
Flag indicating that IEMark statement follows a terminatinig statment, such as SideEffect. Although our IR optimizer will remove such IEMarks in most cases, there is one exception, though. If there is a SideEffect statement immediately followed by an IEMark, our optmizer will not remove the IEMark because we cannot assume that the SideEffect statement will advance the PC. In fact, the SideEffect statement does not necessarily know the size of the corresponding machine instruction. Thus, it is not natural to remove such IEMarks.
|
|
|
|
|
|
|
|
|
|
Next events to consume. Since BBLManager parses only a single BBL, other events need to be consumed later.
|
Static member | Description |
Full Usage:
TempInfo.FindLabelSymbol(tmpInfo) (myPp)
Parameters:
TempInfo
myPp : ProgramPoint
Returns: Symbol
|
|
Full Usage:
TempInfo.Init(initialLeader) (evts)
Parameters:
ProgramPoint
evts : CFGEvents
Returns: TempInfo
|
|