microprobe.code.benchmark.Benchmark

class Benchmark[source]

Bases: BuildingBlock

Class to represent a benchmark (highest level building block).

__init__()[source]

Methods

__init__()

add_fini(finis)

Appends the specified list of instructions to the finalization list

add_info(message)

Add an information message to the building block.

add_init(inits[, prepend])

Appends the specified list of instructions to initialization list

add_instructions(instrs[, after, before])

Adds the given instruction to the building block.

add_pass_info(message)

Add an pass information message to the building block.

add_requirement(message)

Add an requirement message to the building block.

add_warning(message)

Add a warning message to the building block.

register_var(var, context)

Registers the given variable as a global variable.

registered_global_vars()

Returns the list of registered global variables.

rm_init(inits)

Removes from the initialization list the specified instructions.

set_cfg(cfg)

Sets the benchmarks control flow graph.

set_context(context)

Set the execution context of the building block.

set_current_thread(idx)

set_var_displacement(displacement)

Attributes

cfg

Returns the benchmark control flow graph.

code_size

Return benchmark's size

context

Return benchmark's context

fini

Finalization instructions (list of Instruction)

info

List of information messages of the building block (list of str)

init

Initialization instructions

labels

Return the a list of the current defined labels and symbols

pass_info

List of information pass messages of the building block (list of str)

requirements

List of requirement messages of the building block (list of str)

warnings

List of warnings of the building block




property init

Initialization instructions

Initialization instructions (list of Instruction)

add_init(inits: List[Instruction], prepend: bool = False)[source]

Appends the specified list of instructions to initialization list

Parameters:

inits (list of Instruction) – List of instructions to be added

rm_init(inits: List[Instruction])[source]

Removes from the initialization list the specified instructions.

Parameters:

inits (list of Instruction) – List of instructions to be removed

add_fini(finis: List[Instruction])[source]

Appends the specified list of instructions to the finalization list

Parameters:

finis (list of Instruction) – List of instructions to be added

property fini

Finalization instructions (list of Instruction)

property cfg

Returns the benchmark control flow graph.

set_cfg(cfg: Cfg)[source]

Sets the benchmarks control flow graph.

Parameters:

cfg (Cfg) – Control flow graph

registered_global_vars()[source]

Returns the list of registered global variables.

set_var_displacement(displacement: int)[source]
register_var(var: Variable, context: Context)[source]

Registers the given variable as a global variable.

Parameters:

var (Variable) – Variable to register

set_context(context: Context)[source]

Set the execution context of the building block.

Parameters:

context (Context) – Execution context

property context

Return benchmark’s context

add_instructions(instrs: List[Instruction], after: Instruction | None = None, before: Instruction | None = None)[source]

Adds the given instruction to the building block.

Adds the given instructions right after the specified instruction and before the specified one. If the condition can not be fulfilled an specification exception is raised.

Parameters:
  • instrs (list of Instruction) – Instruction to add

  • after (Instruction) – Instruction after which to add the new instruction (Default value = None)

  • before (Instruction) – Instruction before which to add the new instruction (Default value = None)

property code_size

Return benchmark’s size

property labels

Return the a list of the current defined labels and symbols

set_current_thread(idx: int)[source]
add_info(message: str)

Add an information message to the building block.

Parameters:

message (str) – Information message

add_pass_info(message: str)

Add an pass information message to the building block.

Parameters:

message (str) – Information pass message

add_requirement(message: str)

Add an requirement message to the building block.

Parameters:

message (str) – Requirement message

add_warning(message: str)

Add a warning message to the building block.

Parameters:

message (str) – Warning message

property info

List of information messages of the building block (list of str)

property pass_info

List of information pass messages of the building block (list of str)

property requirements

List of requirement messages of the building block (list of str)

property warnings

List of warnings of the building block

List of warnings of the building block (list of str)