diff options
Diffstat (limited to 'ARMeilleure/Translation/Compiler.cs')
| -rw-r--r-- | ARMeilleure/Translation/Compiler.cs | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/ARMeilleure/Translation/Compiler.cs b/ARMeilleure/Translation/Compiler.cs deleted file mode 100644 index d4aa5cd9..00000000 --- a/ARMeilleure/Translation/Compiler.cs +++ /dev/null @@ -1,68 +0,0 @@ -using ARMeilleure.CodeGen; -using ARMeilleure.CodeGen.Optimizations; -using ARMeilleure.Diagnostics; -using ARMeilleure.IntermediateRepresentation; -using System; -using System.Runtime.InteropServices; - -namespace ARMeilleure.Translation -{ - static class Compiler - { - public static CompiledFunction Compile( - ControlFlowGraph cfg, - OperandType[] argTypes, - OperandType retType, - CompilerOptions options, - Architecture target) - { - CompilerContext cctx = new(cfg, argTypes, retType, options); - - if (options.HasFlag(CompilerOptions.Optimize)) - { - Logger.StartPass(PassName.TailMerge); - - TailMerge.RunPass(cctx); - - Logger.EndPass(PassName.TailMerge, cfg); - } - - if (options.HasFlag(CompilerOptions.SsaForm)) - { - Logger.StartPass(PassName.Dominance); - - Dominance.FindDominators(cfg); - Dominance.FindDominanceFrontiers(cfg); - - Logger.EndPass(PassName.Dominance); - - Logger.StartPass(PassName.SsaConstruction); - - Ssa.Construct(cfg); - - Logger.EndPass(PassName.SsaConstruction, cfg); - } - else - { - Logger.StartPass(PassName.RegisterToLocal); - - RegisterToLocal.Rename(cfg); - - Logger.EndPass(PassName.RegisterToLocal, cfg); - } - - if (target == Architecture.X64) - { - return CodeGen.X86.CodeGenerator.Generate(cctx); - } - else if (target == Architecture.Arm64) - { - return CodeGen.Arm64.CodeGenerator.Generate(cctx); - } - else - { - throw new NotImplementedException(target.ToString()); - } - } - } -}
\ No newline at end of file |
