diff options
| author | Joseph Richey <joerichey@google.com> | 2018-08-30 13:41:49 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-30 13:41:49 -0700 |
| commit | 0f451a722918f39fa07bd9337e4a14ca154b13ae (patch) | |
| tree | 9868ffed8cb74357a06e63b88c56d71b13b415af /vendor/honnef.co/go/tools/functions/loops.go | |
| parent | 1e1b67dae6c3ae3b5acb5ce377b01b286c3e676b (diff) | |
| parent | 1c9bafdec78b8f238a82314b6d9c566a951486c2 (diff) | |
Merge pull request #107 from google/mod
Use Go Modules and support Go 1.11 building
Diffstat (limited to 'vendor/honnef.co/go/tools/functions/loops.go')
| -rw-r--r-- | vendor/honnef.co/go/tools/functions/loops.go | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/vendor/honnef.co/go/tools/functions/loops.go b/vendor/honnef.co/go/tools/functions/loops.go deleted file mode 100644 index 63011cf..0000000 --- a/vendor/honnef.co/go/tools/functions/loops.go +++ /dev/null @@ -1,50 +0,0 @@ -package functions - -import "honnef.co/go/tools/ssa" - -type Loop map[*ssa.BasicBlock]bool - -func findLoops(fn *ssa.Function) []Loop { - if fn.Blocks == nil { - return nil - } - tree := fn.DomPreorder() - var sets []Loop - for _, h := range tree { - for _, n := range h.Preds { - if !h.Dominates(n) { - continue - } - // n is a back-edge to h - // h is the loop header - if n == h { - sets = append(sets, Loop{n: true}) - continue - } - set := Loop{h: true, n: true} - for _, b := range allPredsBut(n, h, nil) { - set[b] = true - } - sets = append(sets, set) - } - } - return sets -} - -func allPredsBut(b, but *ssa.BasicBlock, list []*ssa.BasicBlock) []*ssa.BasicBlock { -outer: - for _, pred := range b.Preds { - if pred == but { - continue - } - for _, p := range list { - // TODO improve big-o complexity of this function - if pred == p { - continue outer - } - } - list = append(list, pred) - list = allPredsBut(pred, but, list) - } - return list -} |