aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josharian@gmail.com>2015-07-17 16:47:43 +0000
committerJosh Bleecher Snyder <josharian@gmail.com>2015-07-21 13:38:53 +0000
commit983bc8d1a2d7be649f921a69b2d8e72a5ec032f4 (patch)
treeeef700f07bc6d2aa12d1875577f785ad54de92ef /src
parent67fdb0de8656f7c7b76afe8eff614da7bc13b221 (diff)
downloadgo-983bc8d1a2d7be649f921a69b2d8e72a5ec032f4.tar.xz
Revert "[dev.ssa] cmd/compile: don't Compile if Unimplemented"
This reverts commit 766bcc92a5b693f336deffc347be52fe68af884a. Change-Id: I55413c1aa80d82c856a3ea89b4ffccf80fb58013 Reviewed-on: https://go-review.googlesource.com/12361 Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/gc/ssa.go9
-rw-r--r--src/cmd/compile/internal/ssa/print.go13
2 files changed, 7 insertions, 15 deletions
diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go
index 889b9d8cf8..e133076bce 100644
--- a/src/cmd/compile/internal/gc/ssa.go
+++ b/src/cmd/compile/internal/gc/ssa.go
@@ -108,18 +108,17 @@ func buildssa(fn *Node) (ssafn *ssa.Func, usessa bool) {
// Link up variable uses to variable definitions
s.linkForwardReferences()
+ // Main call to ssa package to compile function
+ ssa.Compile(s.f)
+
// Calculate stats about what percentage of functions SSA handles.
if false {
- defer func() { fmt.Printf("SSA implemented: %t\n", !e.unimplemented) }()
+ fmt.Printf("SSA implemented: %t\n", !e.unimplemented)
}
if e.unimplemented {
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.)
}
diff --git a/src/cmd/compile/internal/ssa/print.go b/src/cmd/compile/internal/ssa/print.go
index e46590224d..c8b90c6f93 100644
--- a/src/cmd/compile/internal/ssa/print.go
+++ b/src/cmd/compile/internal/ssa/print.go
@@ -8,7 +8,6 @@ import (
"bytes"
"fmt"
"io"
- "os"
)
func printFunc(f *Func) {
@@ -69,22 +68,16 @@ func fprintFunc(w io.Writer, f *Func) {
n++
}
if m == n {
- fmt.Fprintln(os.Stderr, "dependency cycle in block", b)
+ fmt.Fprintln(w, "dependency cycle!")
for _, v := range b.Values {
if printed[v.ID] {
continue
}
- fmt.Fprintf(os.Stderr, " %v\n", v.LongString())
+ fmt.Fprint(w, " ")
+ fmt.Fprintln(w, v.LongString())
printed[v.ID] = true
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
}
}