ScEpTIC.AST.transformations.ratchet package

Submodules

ScEpTIC.AST.transformations.ratchet.checkpoint_placer module

class ScEpTIC.AST.transformations.ratchet.checkpoint_placer.CheckpointPlacer(functions, functions_with_outside_frame_accesses, checkpoint_function_name)

Bases: object

place_checkpoints()

Places checkpoints in each function

print_slices()

Prints all the slices

ScEpTIC.AST.transformations.ratchet.checkpoint_registers_optimization module

class ScEpTIC.AST.transformations.ratchet.checkpoint_registers_optimization.RegisterSavingOptimization(checkpoint_placer)

Bases: object

Identifies the minimum set of registes that each checkpoint need to save

set_checkpoints_registers()

Identifies and sets the registers that each checkpoints need to save

ScEpTIC.AST.transformations.ratchet.memory_tags_identifier module

class ScEpTIC.AST.transformations.ratchet.memory_tags_identifier.MemoryTagsIdentifier(functions)

Bases: object

A memory tag is a virtual representation of an accessed memory location, which captures also the access pattern. A memory tag is associated to each LoadOperation and StoreOperation. This class contains a collection of methods for parsing the AST and identifying the memory tag of each operation.

resolve_memory_tags()

Populates the memory tags of the instructions in each function

Module contents

ScEpTIC.AST.transformations.ratchet.apply_transformation(functions, vmstate)