nitgs: optimize compile_class_to_c for dead methods

Signed-off-by: Jean Privat <jean@pryen.org>
nitge: optimize compile_class_to_c for dead classes

Classes that are dead (interface and abstract) do not need the full
class structure (VFT an cie). Only fields for typing are keept.

Signed-off-by: Jean Privat <jean@pryen.org>
nitge: learn to use RTA if --rta is given

A new option `--rta` activate RTA optimization and
enable the use of some semi-global ones (like --direct-call-monomorph).

Signed-off-by: Jean Privat <jean@pryen.org>
sepcomp: add --skip-dead-methods

This avoid the generation and the C-compilation of dead methods

Signed-off-by: Jean Privat <jean@pryen.org>
sepcomp: add --semi-global to activate all semi-global optimizations

Some numbers:

Note that `user` is the bootstrapped time, therefore we measure both the
compilation time and the execution time.
I suspect this is stupid from the point-of-view of any scientific methodology;
but, anyway, it is numbers and people like numbers.

~~~
$ nitg --separate nitg.nit
user	0m11.228s

$ nitg --separate --semi-global nitg.nit
user	0m9.736s

$ nitg --erasure nitg.nit
user	0m7.800s

$ nitg --erasure --rta nitg.nit
user	0m8.280s

$ nitg --erasure --rta --semi-global nitg.nit
user	0m7.648s
~~~

Signed-off-by: Jean Privat <jean@pryen.org>
sepcomp: do not colorize dead methods

When RTA is available, dead methods do not need to be colored.

Signed-off-by: Jean Privat <jean@pryen.org>
nitgs: add --no-colo-dead-methods to explicitely disable coloring of dead methods

Because of coloring bug #375 ; having less useless entries in tables
increase the likeness of the bug.

Signed-off-by: Jean Privat <jean@pryen.org>
Merge: Nitgs semiglobal

The series add some optimizations on nitg-s and nitg-e engines

Some numbers with nitg

~~~
$ nitg nitg.nit
$ time nitg nitg.nit
user	0m12.424s

$ nitg --erasure --inline-coloring-numbers nitg.nit
$ time nitg nitg.nit
user	0m11.672s

$ nitg --erasure --rta --semi-global nitg.nit
$ time nitg nitg.nit
user	0m10.004s
~~~

Pull-Request: #425
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>