NewPackage: altSSA
This commit is contained in:
@@ -143,7 +143,7 @@ func TestCompileEx(t *testing.T, src any, fname, expected string) {
|
||||
foo.WriteTo(os.Stderr)
|
||||
prog := ssatest.NewProgramEx(t, nil, imp)
|
||||
|
||||
ret, err := cl.NewPackage(prog, foo, files)
|
||||
ret, err := cl.NewPackage(prog, foo, nil, files)
|
||||
if err != nil {
|
||||
t.Fatal("cl.NewPackage failed:", err)
|
||||
}
|
||||
|
||||
@@ -953,7 +953,7 @@ func (p *context) compileValues(b llssa.Builder, vals []ssa.Value, hasVArg int)
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
// NewPackage compiles a Go package to LLVM IR package.
|
||||
func NewPackage(prog llssa.Program, pkg *ssa.Package, files []*ast.File) (ret llssa.Package, err error) {
|
||||
func NewPackage(prog llssa.Program, pkg, alt *ssa.Package, files []*ast.File) (ret llssa.Package, err error) {
|
||||
type namedMember struct {
|
||||
name string
|
||||
val ssa.Member
|
||||
|
||||
@@ -365,7 +365,12 @@ func buildPkg(prog llssa.Program, aPkg *aPackage, mode Mode, verbose bool) {
|
||||
pkg.ExportFile = ""
|
||||
return
|
||||
}
|
||||
ret, err := cl.NewPackage(prog, aPkg.SSA, pkg.Syntax)
|
||||
syntax := pkg.Syntax
|
||||
if altPkg := aPkg.AltPkg; altPkg != nil {
|
||||
// TODO: merge pkg.Types
|
||||
syntax = append(syntax, altPkg.Syntax...)
|
||||
}
|
||||
ret, err := cl.NewPackage(prog, aPkg.SSA, aPkg.AltSSA, syntax)
|
||||
check(err)
|
||||
if needLLFile(mode) {
|
||||
pkg.ExportFile += ".ll"
|
||||
|
||||
@@ -80,7 +80,7 @@ func Gen(pkgPath, inFile string, src any) string {
|
||||
return ret
|
||||
})
|
||||
|
||||
ret, err := cl.NewPackage(prog, ssaPkg, files)
|
||||
ret, err := cl.NewPackage(prog, ssaPkg, nil, files)
|
||||
check(err)
|
||||
|
||||
if prog.NeedPyInit { // call PyInit if needed
|
||||
|
||||
@@ -80,7 +80,7 @@ func GenFrom(fileOrPkg string) string {
|
||||
ssaPkg.WriteTo(os.Stderr)
|
||||
}
|
||||
|
||||
ret, err := cl.NewPackage(prog, ssaPkg, pkg.Syntax)
|
||||
ret, err := cl.NewPackage(prog, ssaPkg, nil, pkg.Syntax)
|
||||
check(err)
|
||||
|
||||
if prog.NeedPyInit { // call PyInit if needed
|
||||
|
||||
Reference in New Issue
Block a user