"hello world" - IR enter($0) : f main [int function ( ) ] t1 [int] = call printf [int function ( char * ) ] return($0) : f_end main [int function ( ) ] Broken down - in this small example hard to see the improvement over AST really, but since it's so small.