aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/Translation/Compiler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ARMeilleure/Translation/Compiler.cs')
-rw-r--r--ARMeilleure/Translation/Compiler.cs68
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