diff options
Diffstat (limited to 'source/xi')
-rw-r--r-- | source/xi/plugin_manager.ml | 11 | ||||
-rw-r--r-- | source/xi/xi.ml | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/source/xi/plugin_manager.ml b/source/xi/plugin_manager.ml index 3c6cdf0..7b1c8db 100644 --- a/source/xi/plugin_manager.ml +++ b/source/xi/plugin_manager.ml @@ -95,6 +95,13 @@ module Getters = struct | Some x -> Some (name, Plugin.version, x) | None -> None + let make_register_coalescing (name, plugin) = + let module Plugin = (val plugin : Plugin.PLUGIN) in + match Plugin.make_register_coalescing with + | Some x -> Some (name, Plugin.version, x) + | None -> None + + let make_dead_code_elimination (name, plugin) = let module Plugin = (val plugin : Plugin.PLUGIN) in match Plugin.make_dead_code_elimination with @@ -169,6 +176,8 @@ module Resolver = struct let make_register_allocator = find_module "MakeRegisterAllocator" Getters.make_register_allocator + let make_register_coalescing = find_module "MakeRegisterCoalescing" Getters.make_register_coalescing + let make_dead_code_elimination = find_module "MakeDeadCodeElimination" Getters.make_dead_code_elimination let make_codegen = find_module "MakeCodegen" Getters.make_codegen @@ -191,6 +200,7 @@ let resolve_compiler_toolbox regdescr = let module MakeInterferenceGraphAnalysis = (val Resolver.make_interference_graph_analysis !register) in let module MakeSpilling = (val Resolver.make_spilling !register) in let module MakeReachabilityAnalysis = (val Resolver.make_reachability_analysis !register) in + let module MakeRegisterCoalescing = (val Resolver.make_register_coalescing !register) in let module M = struct module LiveVariablesAnalysis = MakeLiveVariablesAnalysis() module DominatorsAnalysis = MakeDominatorsAnalysis() @@ -202,6 +212,7 @@ let resolve_compiler_toolbox regdescr = module InterferenceGraphAnalysis = MakeInterferenceGraphAnalysis() module Spilling = MakeSpilling() module ReachabilityAnalysis = MakeReachabilityAnalysis() + module RegisterCoalescing = MakeRegisterCoalescing() end in (module M : Iface.COMPILER_TOOLBOX) diff --git a/source/xi/xi.ml b/source/xi/xi.ml index c54a499..aca4997 100644 --- a/source/xi/xi.ml +++ b/source/xi/xi.ml @@ -72,7 +72,7 @@ module CommandLine = struct let cmd = let doc = "Compile Xi Program" in - let version = "pracownia3.1-0-g147dd61" in + let version = "pracownia4.1-0-ge52fd94" in Term.(const compile $ xi_log $ extra_debug $ mod_uwr $ plugin $ reg_descr $ stop_after $ output $ source_file), Term.info "xi" ~doc ~version |