Skip to content

cmd/llvmplugin: test X86 ABI0 entry argument maps - #123

Draft
zhouguangyuan0718 wants to merge 1 commit into
go1.27.masterfrom
codex/x86-abi0-entry-args-test
Draft

cmd/llvmplugin: test X86 ABI0 entry argument maps#123
zhouguangyuan0718 wants to merge 1 commit into
go1.27.masterfrom
codex/x86-abi0-entry-args-test

Conversation

@zhouguangyuan0718

Copy link
Copy Markdown

Summary

  • add a GoABI0 three-pointer statepoint fixture using the GoALLC GC strategy
  • exercise final GoObj emission through the statepoint plugin
  • use goallc-objview to verify ArgsPointerMaps, LocalsPointerMaps, and stack-map query selection

Dependency

Draft: this test requires goallc/llvm-project#68 and a release payload containing that change. The current pinned payload is expected to fail at final GoObj emission with an invalid stack-growth argument pointer slot.

Expected maps

  • FuncInfo Args is 24 bytes
  • entry ArgsPointerMaps bits are 0, 1, and 2
  • the ordinary-call argument map and both locals maps are empty
  • morestack selects map 0 and the ordinary call selects map 1

Validation with patched payload

  • fresh Go make.bash passed
  • full plugin CTest: 67/67 passed, including the new GoObj and ObjView tests
  • internal/runtime/maps O2 package tests passed initially and in 3/3 repeat runs
  • math/big production O2 build passed; the separate test-only rounding libcall limitation remains

@zhouguangyuan0718

Copy link
Copy Markdown
Author

Dependency CI behaved as expected with pinned LLVM revision 90e5e5c7c626: both linux-amd64 and linux-arm64 reached Test pass plugin, then X86ABI0EntryArgsGoObj failed with GoObj stack-growth statepoint contains an invalid argument pointer slot. The ObjView failure is a cascade because the object was not produced. Validation with the patched payload passes both tests and the full 67/67 suite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant