Greetings All,
After doing some more research it seems that it may be time to remove
the garbage collector. I'm
aware of the linkage to precompiled headers but even them I think its
time due to two reasons:
1. The work related to multithreading gcc is working around the global
state of the collector which
makes scaling less likely in terms of threads. In addition it is
causing unnecessary compilations
in terms of workarounds in this project.
2. Memory usage may be decreased in certain passes due to being able to
implement memory allocation
at a pass or per pass type level with more knowledge than a generic
garbage collector. I'm aware this
is done for a lot of passes. However it could be done for the other
passes that are linked currently to the
garbage collector.
I'm not sure what memory allocation strategies we want to implement in
terms of replacing the garbage
collector but I think its time.
On another I'm looking into the issues with PHI nodes and operators as
to how to lock or decrease global
state there as this seems to be the biggest complication when I've time.
In addition as Jeff stated we
will also want to encapsulate SSA operands and other SSA related things
in a series of classes as part of
this.
Regards,
Nick