Commit 983bc8d1 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

Revert "[dev.ssa] cmd/compile: don't Compile if Unimplemented"

This reverts commit 766bcc92.

Change-Id: I55413c1aa80d82c856a3ea89b4ffccf80fb58013
Reviewed-on: https://go-review.googlesource.com/12361Reviewed-by: default avatarKeith Randall <khr@golang.org>
parent 67fdb0de
...@@ -108,18 +108,17 @@ func buildssa(fn *Node) (ssafn *ssa.Func, usessa bool) { ...@@ -108,18 +108,17 @@ func buildssa(fn *Node) (ssafn *ssa.Func, usessa bool) {
// Link up variable uses to variable definitions // Link up variable uses to variable definitions
s.linkForwardReferences() s.linkForwardReferences()
// Main call to ssa package to compile function
ssa.Compile(s.f)
// Calculate stats about what percentage of functions SSA handles. // Calculate stats about what percentage of functions SSA handles.
if false { if false {
defer func() { fmt.Printf("SSA implemented: %t\n", !e.unimplemented) }() fmt.Printf("SSA implemented: %t\n", !e.unimplemented)
} }
if e.unimplemented { if e.unimplemented {
return nil, false return nil, false
} }
// Main call to ssa package to compile function.
ssa.Compile(s.f)
return s.f, usessa // TODO: return s.f, true once runtime support is in (gc maps, write barriers, etc.) return s.f, usessa // TODO: return s.f, true once runtime support is in (gc maps, write barriers, etc.)
} }
......
...@@ -8,7 +8,6 @@ import ( ...@@ -8,7 +8,6 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"io" "io"
"os"
) )
func printFunc(f *Func) { func printFunc(f *Func) {
...@@ -69,22 +68,16 @@ func fprintFunc(w io.Writer, f *Func) { ...@@ -69,22 +68,16 @@ func fprintFunc(w io.Writer, f *Func) {
n++ n++
} }
if m == n { if m == n {
fmt.Fprintln(os.Stderr, "dependency cycle in block", b) fmt.Fprintln(w, "dependency cycle!")
for _, v := range b.Values { for _, v := range b.Values {
if printed[v.ID] { if printed[v.ID] {
continue continue
} }
fmt.Fprintf(os.Stderr, " %v\n", v.LongString()) fmt.Fprint(w, " ")
fmt.Fprintln(w, v.LongString())
printed[v.ID] = true printed[v.ID] = true
n++ n++
} }
// Things are going to go very badly from here;
// one of the optimization passes is likely to hang.
// Frustratingly, panics here get swallowed by fmt,
// and just we end up here again if we call Fatalf.
// Use our last resort.
os.Exit(1)
return
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment