[pypy-dev] Just so you know...
Armin Rigo
arigo at tunes.org
Sat May 14 21:51:04 CEST 2005
Hi Carl,
On Sat, May 14, 2005 at 01:13:23AM +0200, Carl Friedrich Bolz wrote:
> 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?
No, there is a new block inserted along the link; the conversions are
only interesting for a single exit of the block, the other exits may
need different ones. (This idea was stolen from genllvm -- I remembered
you described it to me before I wrote the translator/typer.py.)
> 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.
Good to hear. Yes, I was quite afraid we were about to run into exactly
the same troubles in genc. BTW genllvm is a nice source for inspiration
which we're using freely to reorganize genc now :-)
A bientot,
Armin.
More information about the pypy-dev
mailing list