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.
_______________________________________________
[email protected]
http://codespeak.net/mailman/listinfo/pypy-dev

Reply via email to