Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #25618

Re: RAFTS beyond basic blocks; handling phi

From "Alex McDonald" <blog@rivadpm.com>
Newsgroups comp.lang.forth
Subject Re: RAFTS beyond basic blocks; handling phi
Date 2013-09-11 11:35 +0100
Organization A noiseless patient Spider
Message-ID <l0ph20$biq$1@dont-email.me> (permalink)
References <l0neru$oj5$1@dont-email.me> <1l908fy.v82wwcgm7lykN%awegel@arcor.de>

Show all headers | View raw


on 10/09/2013 22:30:17,  wrote:
> Alex McDonald <blog@rivadpm.com> wrote:
> 
>> For example where ( xxx ) represents stack on entry and exit;
>>
>> : x 10 y @ if z ! else drop then ... ;
>>
>> Block 1  ( -- )   10 y @          ( a b )
>> Block 2  ( a b )  z !             ( -- )
>> Block 3  ( a b )  drop            ( a )
>> Block 4 has either ( -- ) or ( a ) on entry.
> 
> Ouch!
> The esoterics must have confused you..

:-)

One of the things I'm finding about stack based languages to SSA based
intermediate code is that a lot of the literature on compiler
construction just doesn't apply. The obvious one for Forth is parsing,
where classical texts devote much of their bulk to building abstract
syntax trees, but there are others that don't apply such as analysis for
dead code elimination. With a stack based approach, < 1 2 3 + + drop >
eliminates itself automatically. The same is true of phi placement;
conceptually, it's hugely simplified and doesn't appear to require the
complex algorithms I've been studying. 

Where the "esoteric" literature will help is in machine code generation
from SSA. I've still an SSA -> code (a BURG) and register allocation
pieces to research & write.

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-10 16:46 +0100
  Re: RAFTS beyond basic blocks; handling phi awegel@arcor.de (Alex Wegel) - 2013-09-10 23:30 +0200
    Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-11 11:35 +0100
      Re: RAFTS beyond basic blocks; handling phi Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-09-11 05:50 -0500
        Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-11 12:07 +0100
          Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-11 12:50 +0100
            Re: RAFTS beyond basic blocks; handling phi anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-09-11 14:27 +0000
  Re: RAFTS beyond basic blocks; handling phi anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-09-11 10:55 +0000
    Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-11 13:10 +0100
      Re: RAFTS beyond basic blocks; handling phi Bernd Paysan <bernd.paysan@gmx.de> - 2013-09-11 20:33 +0200
        Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-11 19:53 +0100
          Re: RAFTS beyond basic blocks; handling phi Bernd Paysan <bernd.paysan@gmx.de> - 2013-09-11 21:57 +0200
            Re: RAFTS beyond basic blocks; handling phi anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-09-13 13:14 +0000
        Re: RAFTS beyond basic blocks; handling phi albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-09-12 10:39 +0000
      Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-12 23:53 +0100
        Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-12 23:55 +0100
          Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-13 10:16 +0100
        Re: RAFTS beyond basic blocks; handling phi anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-09-13 13:19 +0000
          Re: RAFTS beyond basic blocks; handling phi "Alex McDonald" <blog@rivadpm.com> - 2013-09-15 20:34 +0100
      Re: RAFTS beyond basic blocks; handling phi anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-09-13 11:38 +0000

csiph-web