mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.link] cmd/link: use index for deadcode
Switch the deadcode pass to use indices instead of Symbol structures when using new object file format. Delay loading symbol relocations and contents fully after the deadcode pass. The next step is not to create Symbol structures until deadcode is done. Method tracking logic hasn't been implemented. Currently, all methods of a reachable type are live. Change-Id: Iffcd06ff84e6e52bd9eb24d1220d94234d18ab6b Reviewed-on: https://go-review.googlesource.com/c/go/+/198199 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
f7659d49be
commit
8a9be4921a
4 changed files with 312 additions and 25 deletions
|
|
@ -50,6 +50,11 @@ func deadcode(ctxt *Link) {
|
|||
ctxt.Logf("%5.2f deadcode\n", Cputime())
|
||||
}
|
||||
|
||||
if *flagNewobj {
|
||||
deadcode2(ctxt)
|
||||
return
|
||||
}
|
||||
|
||||
d := &deadcodepass{
|
||||
ctxt: ctxt,
|
||||
ifaceMethod: make(map[methodsig]bool),
|
||||
|
|
@ -118,6 +123,10 @@ func deadcode(ctxt *Link) {
|
|||
}
|
||||
}
|
||||
|
||||
addToTextp(ctxt)
|
||||
}
|
||||
|
||||
func addToTextp(ctxt *Link) {
|
||||
// Remove dead text but keep file information (z symbols).
|
||||
textp := []*sym.Symbol{}
|
||||
for _, s := range ctxt.Textp {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue