code: func CreateNodes(prof *profile.Profile, o *Options) (Nodes, map[uint64]Nodes) {
  	locations := make(map[uint64]Nodes, len(prof.Location))
  	nm := make(NodeMap, len(prof.Location))
  	for _, l := range prof.Location {
  		lines := l.Line
  		if len(lines) == 0 {
  			lines = []profile.Line{{}} // Create empty line to include location info.
  		}
  		nodes := make(Nodes, len(lines))
  		for ln := range lines {
  			nodes[ln] = nm.findOrInsertLine(l, lines[ln], o)
  		}
  		locations[l.ID] = nodes
  	}
  	return nm.nodes(), locations
  }
docs: // CreateNodes creates graph nodes for all locations in a profile. It
  // returns set of all nodes, plus a mapping of each location to the
  // set of corresponding nodes (one per location.Line).