[pypy-dev] Just so you know...
Carl Friedrich Bolz
cfbolz at gmx.de
Sat May 14 01:13:23 CEST 2005
Hi Armin!
> Here is some (unreviewed) documentation about the new LowLevelType
> approach:
>
> http://codespeak.net/pypy/index.cgi?doc/translation.html#the-rpython-typer
>
Just some nitpicking/asking for clarification/remarks:
From translation.html:
When a block has been transformed in this way, all the links are
considered; if the concrete types of the Variables that exit do not
match the canonical low-level types expected by the target block,
conversions are inserted.
"Inserted" meaning that explicit cast operations are put append to the
operations of the basic block? If that's the case you have to be careful
in the presence of exception blocks because afterwards the cast is the
last operation in the block and will be checked for exceptions. I had to
do the same in genllvm and inserted "Cast Blocks" along the links, which
contain only casting operations.
And a more general note: I think that the whole low level/rpython typer
approach makes a lot of sense. I implemented some of the things that are
now redone by the new approach. So I was really doing too much work
since some of the things I did would have to be done for every (remotely
C-ish) backend which is obviously not a good solution. In addition all
the templating hacks I did started to get brittle -- I had to add more
and more code that did string manipulations on the template I used for
the implementation of RPython's lists in LLVM.
Regards,
Carl Friedrich
More information about the Pypy-dev
mailing list