Ask questionsThe results of dumpssa generated by compilecmp and go build are different

The Head ref link: 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/ 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 questions

No questions were found.
Github User Rank List