[fpc-devel] Re. z370 Cross Compilation, Pass 2 of ....
Mark Morgan Lloyd
markMLl.fpc-devel at telemetry.co.uk
Sun Sep 1 20:30:05 CEST 2013
Bernd Oppolzer wrote:
> Am 01.09.2013 18:01, schrieb Florian Klämpfl:
>> Am 01.09.2013 16:55, schrieb Bernd Oppolzer:
>>> No need to answer to that ... I understood in the meantime that FPC does
>>> NOT rely on
>>> PUSH and POP instructions. Instead the linear assembler representation
>>> is already fully
>>> CPU specific.
>>>
>>> (which makes porting a bigger effort)
>> Proof?
>>
> It's my opinion. If the compiler translates the source language
> to machine code for an abstract target machine that is not too complicated
> (but well suited to the needs of the source language), you only have to
> translate
> the operations of this abstract machine one by one to your real target
> machine,
> which seems to me to be an easier task.
The problem here is that compiler design has moved on a lot since
Wirth's day. It's not difficult to write a compiler using e.g. recursive
descent or Meta-II which emits instructions for an abstract stack-based
machine, and that might be a good match for a CPU with a small number of
general-purpose registers. However it can be extremely difficult to
optimise this for a modern CPU with a large register file, it's far more
effective to give the frontend a rough idea of how many registers the
backend has available to it and to warn it about known peculiarities.
> Optimization can occur already in the stages, which are target-independent,
> but later, too.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the fpc-devel
mailing list