Firm Logo

Firm By Example

Attention: The following graph snippets are for the latest revision in the git repository. The last stable release may require slightly different graphs.

Basic Operations

Simple Arithmetic with Constants

5 + 3
simpleadd.svg

Load, Arithmetic, Multiple Users

x*x - 2
load_mul.svg

Calls, Sequencing with Memory Value

print_int(7);
print_int(4);
twocalls.svg

Compound Member access

x.z
member.svg

Control Flow

Jump

goto a;
a:
jump.svg

Comparison / Conditional Jump

if (1 == 0) {
        return 4;
} else {
        return 7;
}
condjump.svg

Conditional Jump / Phi

int x;
if (7 > 4) {
        x = 9;
} else {
        x = 3;
}
return x;
phi.svg

Simple Loop

int i = 0;
do {
        i = i + 1;
} while (i < 100);
loop.svg

Function Begin/Return

Start + Return + End

void empty(void)
{
}
start_return.svg

Parameters

int add(int x, int y)
{
        return x + y;
}
params.svg