New code is adapted from Deparse. It processes the PCG in the normal way, but instead of (re)generating the Perl source code, it generates a LLVM IF "copy" of the PCG it is given. Let's call that the LLCGThis is the bit I don't currently get. take a piece of code like
$m = ($s =~ /foo/);
Which is compiled to an optree that looks like:
In general terms, what would the IR look like that you would convert that into?7 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 p:3) v:{ ->3 6 <2> sassign vKS/2 ->7 4 </> match(/"foo"/) sKPS/RTIME ->5 - <1> ex-rv2sv sK/1 ->4 3 <#> gvsv[*s] s ->4 - <1> ex-rv2sv sKRM*/1 ->6 5 <#> gvsv[*m] s ->6
Dave.
In reply to Re^3: Perl 5 Optimizing Compiler, Part 5: A Vague Outline Emerges
by dave_the_m
in thread Perl 5 Optimizing Compiler, Part 5: A Vague Outline Emerges
by Will_the_Chill
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |