Ask questionsThe results of dumpssa generated by compilecmp and go build are different
The Head ref link: https://go-review.googlesource.com/c/go/+/239457 Env: linux/amd64 goroot_bootstrap: go version go1.14.3 linux/amd64 What did I do:
$ compilecmp -dumpssa AppendSleb128:* compilecmp master -> HEAD master (8c521739f2): doc/go1.15: remove encoding/xml doc HEAD (01bc4ea6dc): cmd/compile/internal/ssa: handle more cases in fuse pass
The ssa file generated by
compilecmpfor the HEAD ref:
The ssa file generated with the following command manually:
$ cd ~/go-for-fuse $ GOSSAFUNC=AppendSleb128:* ./bin/go build cmd/internal/dwarf/
HEAD-REF-by-go-build.zip It can be seen that the final assembly code is a little different. The opcodes generated by the lower pass for the if branch in block b12 are different. The result generated for the master ref is the same with that generated by go build. I don't know how this difference is caused.
Answer questions erifan
This may has nothing to do with compilecmp, I can reproduce it in the worktree created by
$ git worktree add --detach <des> <ref> $ cd <des>/src $ ./make.bash $ GOSSAFUNC=AppendSleb128:* ../bin/go build cmd/internal/dwarf/
Related questionsNo questions were found.