OPコードフィルタで高速なアクセサ(というアイデア)

perl - no accessor; # だって遅いんだもん

最近流行のPL_checkハックで,$o->fooを$o->{foo}に書き換えるOPコードフィルタを作れないものかと思った。

$ perl -MO=Concise -e '$o->foo' # これが
7  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 1 -e:1) v:{ ->3
6     <1> entersub[t2] vKS/TARG ->7
3        <0> pushmark s ->4
-        <1> ex-rv2sv sKM/1 ->5
4           <#> gvsv[*o] s ->5
5        <$> method_named[PV "foo"] ->6
-e syntax OK
$ perl -MO=Concise -e '$o->{foo}' # こうなればいい
8  <@> leave[1 ref] vKP/REFC ->(end)
1     <0> enter ->2
2     <;> nextstate(main 1 -e:1) v:{ ->3
7     <2> helem vK/2 ->8
5        <1> rv2hv[t2] sKR/1 ->6
4           <1> rv2sv sKM/DREFHV,1 ->5
3              <#> gv[*o] s ->4
6        <$> const[PV "foo"] s/BARE ->7
-e syntax OK

OP_ENTERSUB以下のOP TreeをOP_HELEM以下のOP Treeに差し替えればいいような気がするが,よく分からない。perl -Dxやperl -MO=Terse等をみるともう少し詳しい構造が分かるが,それでも自力でOP Treeを組み立てるのはなかなか難しい。
PerlVM Hackerへの道のりは遠いようだ。