[fpc-devel] Blackfin support
florian at freepascal.org
Tue Jul 13 10:02:20 CEST 2010
Hans-Peter Diettrich schrieb:
>> For me, a much higher priority when doing rewrites might be
>> multithreading nf the compiler itself.
> That's questionable, depending on the real bottlenecks in compiler
> operation. I suspect that disk I/O is the narrowest bottleneck, that can
> not be widened by parallel processing.
Memory throughput is a bottleneck, I/O not really. So multithreading has
a real advantage on NUMA systems and systems where different cores have
dedicated caches. One or two years ago, I did some experiments with
asynchronous assembler calls and it already improved significantly
compilation times on platforms using an external assembler. The problem
is that the whole compiler is not designed to do so. This could be
solved by an approach we want to implement for years: split the
compilation process into tasks (like parse unit X, load unit Y, code gen
unit X) with dependencies. This should also solve the fundamental
problems with unit loading/compilation causing sometimes internal
errors. The first step would be to do this without multithreading, later
it could be tried to execute several tasks in parallel.
More information about the fpc-devel