interp: avoid an extra TargetData argument

This can be easily calculated from the module datalayout string.
Этот коммит содержится в:
Ayke van Laethem 2019-09-21 20:02:54 +02:00 коммит произвёл Ayke
родитель 17ef7a5c32
коммит da7f7eef00
3 изменённых файлов: 3 добавлений и 8 удалений

Просмотреть файл

@ -187,11 +187,6 @@ func (c *Compiler) Module() llvm.Module {
return c.mod return c.mod
} }
// Return the LLVM target data object. Only valid after a successful compile.
func (c *Compiler) TargetData() llvm.TargetData {
return c.targetData
}
// selectGC picks an appropriate GC strategy if none was provided. // selectGC picks an appropriate GC strategy if none was provided.
func (c *Compiler) selectGC() string { func (c *Compiler) selectGC() string {
if c.GC != "" { if c.GC != "" {

Просмотреть файл

@ -24,7 +24,7 @@ type Eval struct {
// Run evaluates the function with the given name and then eliminates all // Run evaluates the function with the given name and then eliminates all
// callers. // callers.
func Run(mod llvm.Module, targetData llvm.TargetData, debug bool) error { func Run(mod llvm.Module, debug bool) error {
if debug { if debug {
println("\ncompile-time evaluation:") println("\ncompile-time evaluation:")
} }
@ -32,7 +32,7 @@ func Run(mod llvm.Module, targetData llvm.TargetData, debug bool) error {
name := "runtime.initAll" name := "runtime.initAll"
e := &Eval{ e := &Eval{
Mod: mod, Mod: mod,
TargetData: targetData, TargetData: llvm.NewTargetData(mod.DataLayout()),
Debug: debug, Debug: debug,
dirtyGlobals: map[llvm.Value]struct{}{}, dirtyGlobals: map[llvm.Value]struct{}{},
} }

Просмотреть файл

@ -145,7 +145,7 @@ func Compile(pkgName, outpath string, spec *TargetSpec, config *BuildConfig, act
return errors.New("verification error after IR construction") return errors.New("verification error after IR construction")
} }
err = interp.Run(c.Module(), c.TargetData(), config.dumpSSA) err = interp.Run(c.Module(), config.dumpSSA)
if err != nil { if err != nil {
return err return err
} }