ISPRAS Logo
Compiler Technologies Team
Intro Background Projects Offers Publications Downloads Staff
ISPRAS Description Logo
Home   R&D Groups   Projects   Grants   Publications   Downloads

Short description of available functions

       The following menus are available from the main window of the IRE:

File
New C file Opens a new empty text window, where you may type in a new C-program.
Open Pops up file selection dialog, then opens either a C program, or a program in the MIF representation.
Open trace Pops up file selection dialog, then opens a trace file (information about basic blocks executed in a particular program runs).
Save Saves the contents of the current C window.
Save as... Saves the contents of the current C window under a different name.
Quit Quits the IRE.
Analyze
Make MIF Converts the C program from the current window into MIF representation.
Mark basic block Identifies beginnings of each basic blocks of each functions, for each basic block calculates its successors and predecessors.
Convert to SSA Converts the current MIF program into Static Single Assignment (SSA) form.
Convert from SSA Converts the current SSA-MIF program back into plain MIF form (i. e. removes PHI functions).
Mark dead code Identifies instructions, which are executed, but have no effect (dead code). The dead instructions are marked with `D' mark in the first position of the MIF listing.
Graph coloring Identifies the variables, which may be put into one `register'. Prints the classes of variables. Each variable class occupies its own `register'.
Optimize
Copy propagation Performs copy propagation optimization.
Simple constant folding Performs local constant folding (calculates constant expressions in the range of one basic block).
Constant propagation Performs constant propagation optimization (operates over SSA-MIF).
Pipehole optimization Performs simple jump optimizations.
Eliminate dead code Identifies dead code and removes it from the program.
Eliminate redundant assignments Removes redundant assignments based on the results of graph coloring.
Transform
Duplicate MIF Creates a new window with a copy of the current MIF.
Edge splitting Performs edge splitting.
Remove INCR Transforms `i++' into `i = i + 1' (needed by MIF -> SSA-MIF conversion).
Remove dead code Removes all the instructions marked dead.
Clean up unused objects Removes unused types and variables.
Remove generations Converts variables with generations into plain variable names (required after SSA-MIF -> MIF conversion).
Rename variables Names all the variables in the function uniformly `v1', `v2', etc.
Obfuscate
Plain dispatcher Performs simple obfuscating control-flow transformation.
Generate
Generate C Generates a C program by the current MIF program.
Generate instrumented C Generates a C program and inserts instrumentation instructions.
Visualize
Show dominator tree Shows function dominator tree. Each rectangle stands for one basic block.
Show reverse dominator tree Shows function post-dominator tree. Each rectangle stands for one basic block.
Show flow graph Shows function flow graph diagram. Each rectangle stands for one basic block.
Show instruction dominator tree Shows function dominator tree. Each rectangle stands for one instruction.
Show instruction flow graph Shows function flow graph diagram. Each rectangle stands for one instruction.
Show trace flow graph Shows the program flow graph according to the traces.
Traces
Make MIF Removes all the instructions, which were not appeared in the trace.
Make plain MIF Unrolls the program according to the trace.
Options
Compiler Allows setting path to the system C compiler and to C->MIF converter.
Windows
Compilation log Pops-up a text window with compiler messages.
List windows Pops-up a dialog, which lists all the windows and allows choosing one.
Help
About Displays a window about authors of the system and copying conditions.

 


Copyright © 2002 ISP RAS