From b2cbfa78ca0aa35d616c0c2da80c94d8e35b5a22 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Sat, 22 Sep 2018 20:30:46 +0200 Subject: [PATCH] compiler: refactor compiler into separate package --- Makefile | 2 +- compiler.go => compiler/compiler.go | 6 +++++- sizes.go => compiler/sizes.go | 2 +- util.go => compiler/util.go | 2 +- main.go | 7 ++++--- 5 files changed, 12 insertions(+), 7 deletions(-) rename compiler.go => compiler/compiler.go (99%) rename sizes.go => compiler/sizes.go (99%) rename util.go => compiler/util.go (97%) diff --git a/Makefile b/Makefile index ed8cbc0e..1835e7c3 100644 --- a/Makefile +++ b/Makefile @@ -54,7 +54,7 @@ clean: @rm -rf build fmt: - @go fmt . ./ir ./src/examples/* ./src/machine ./src/runtime ./src/sync + @go fmt . ./compiler ./ir ./src/examples/* ./src/machine ./src/runtime ./src/sync gen-device: gen-device-nrf gen-device-avr diff --git a/compiler.go b/compiler/compiler.go similarity index 99% rename from compiler.go rename to compiler/compiler.go index 278c8a3a..13cb620a 100644 --- a/compiler.go +++ b/compiler/compiler.go @@ -1,4 +1,4 @@ -package main +package compiler import ( "errors" @@ -139,6 +139,10 @@ func NewCompiler(pkgName, triple string, dumpSSA bool) (*Compiler, error) { return c, nil } +func (c *Compiler) Module() llvm.Module { + return c.mod +} + func (c *Compiler) Parse(mainPath string, buildTags []string) error { tripleSplit := strings.Split(c.triple, "-") diff --git a/sizes.go b/compiler/sizes.go similarity index 99% rename from sizes.go rename to compiler/sizes.go index 22c9e9be..97f0c929 100644 --- a/sizes.go +++ b/compiler/sizes.go @@ -1,4 +1,4 @@ -package main +package compiler import ( "go/types" diff --git a/util.go b/compiler/util.go similarity index 97% rename from util.go rename to compiler/util.go index 499027a6..52a9b15c 100644 --- a/util.go +++ b/compiler/util.go @@ -1,4 +1,4 @@ -package main +package compiler // This file contains functions that are also used by the runtime. These must be // kept in sync. diff --git a/main.go b/main.go index 74ec383d..2f250208 100644 --- a/main.go +++ b/main.go @@ -13,11 +13,12 @@ import ( "strings" "github.com/aykevl/llvm/bindings/go/llvm" + "github.com/aykevl/tinygo/compiler" ) // Helper function for Compiler object. func Compile(pkgName, outpath string, spec *TargetSpec, printIR, dumpSSA bool, printSizes string, action func(string) error) error { - c, err := NewCompiler(pkgName, spec.Triple, dumpSSA) + c, err := compiler.NewCompiler(pkgName, spec.Triple, dumpSSA) if err != nil { return err } @@ -187,7 +188,7 @@ func Flash(pkgName, target, port string, printIR, dumpSSA bool, printSizes strin // Run the specified package directly (using JIT or interpretation). func Run(pkgName string) error { - c, err := NewCompiler(pkgName, llvm.DefaultTargetTriple(), false) + c, err := compiler.NewCompiler(pkgName, llvm.DefaultTargetTriple(), false) if err != nil { return errors.New("compiler: " + err.Error()) } @@ -200,7 +201,7 @@ func Run(pkgName string) error { } c.Optimize(1, 0, 0) // -O1, the fastest optimization level that doesn't crash - engine, err := llvm.NewExecutionEngine(c.mod) + engine, err := llvm.NewExecutionEngine(c.Module()) if err != nil { return errors.New("interpreter setup: " + err.Error()) }