Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/goallc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ concurrency:
cancel-in-progress: true

env:
LLVM_RELEASE: goallc-llvm23.1.0-v6
LLVM_REVISION: 55ecc0838b8f49e04d9c68874cf83d6f7153e2a3
LLVM_RELEASE: goallc-llvm23.1.0-v8
LLVM_REVISION: 445acfc09213ef8f70906a10f32ba96c1d0813c7

jobs:
linux:
Expand All @@ -32,7 +32,7 @@ jobs:
- arch: arm64
runner: ubuntu-22.04-arm
env:
LLVM_ARCHIVE: goallc-llvm23.1.0-v6-linux-${{ matrix.arch }}.tar.zst
LLVM_ARCHIVE: goallc-llvm23.1.0-v8-linux-${{ matrix.arch }}.tar.zst
LLVM_ROOT: ${{ github.workspace }}/.goallc/llvm
CCACHE_DIR: ${{ github.workspace }}/.ccache
CCACHE_MAXSIZE: 5G
Expand Down
23 changes: 11 additions & 12 deletions src/cmd/llvmplugin/testdata/check-aarch64-frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,6 @@ def main():
lambda item: item["kind"] == "stack_map_index" and item["index"] == 1,
"PCDATA_StackMapIndex tables",
)
values = [item["value"] for item in stack_index["ranges"]]
if values != [-1, 1, 0]:
fail(f"unexpected stack-map range values: {values}")
queries = metadata["stack_map_queries"]
if len(queries) != 2:
fail(f"unexpected call queries: {queries}")
Expand Down Expand Up @@ -171,15 +168,17 @@ def main():
(item["start"], item["end"], item["value"])
for item in stack_index["ranges"]
]
want_ranges = [
(0, indirect_query["call_offset"], -1),
(
indirect_query["call_offset"],
morestack_query["call_offset"],
1,
),
(morestack_query["call_offset"], function["size"], 0),
]
ordered_queries = sorted(queries, key=lambda item: item["call_offset"])
want_ranges = [(0, ordered_queries[0]["call_offset"], -1)]
for index, query in enumerate(ordered_queries):
end = (
ordered_queries[index + 1]["call_offset"]
if index + 1 < len(ordered_queries)
else function["size"]
)
want_ranges.append(
(query["call_offset"], end, query["stack_map_index"])
)
if actual_ranges != want_ranges:
fail(
f"unexpected exact stack-map ranges: {actual_ranges}, "
Expand Down
10 changes: 4 additions & 6 deletions test/llvm_tests.json
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@
"typeparam/smallest.go": "generic ordered minimum over slices",
"typeparam/typeswitch4.go": "generic type switches over interfaces",
"235.go": "upstream regression repeatedly qualified through LLVM compile, GoObj link, and execution",
"abi/method_wrapper.go": "aggregate method-wrapper results repeatedly pass LLVM O2 compile, GoObj link, and execution on Darwin/arm64; Linux/amd64 remains explicitly overridden gray",
"abi/method_wrapper.go": "aggregate method-wrapper results repeatedly pass LLVM O2 compile, GoObj link, and execution on both CI architectures",
"armimm.go": "upstream regression repeatedly qualified through LLVM compile, GoObj link, and execution",
"atomicload.go": "upstream regression repeatedly qualified through LLVM compile, GoObj link, and execution",
"bigmap.go": "upstream regression repeatedly qualified through LLVM compile, GoObj link, and execution",
Expand Down Expand Up @@ -1167,10 +1167,11 @@
"fixedbugs/issue19658.go": "closure and interface regression repeatedly passes LLVM O2 compile, GoObj link, and execution on both CI architectures",
"fixedbugs/issue26411.go": "runtime regression repeatedly passes LLVM O2 compile, GoObj link, and execution on both CI architectures",
"fixedbugs/issue28688.go": "soft-float copy regression repeatedly passes LLVM O2 compile, GoObj link, and execution on both CI architectures",
"fixedbugs/issue78081.go": "concurrent GC and stack-shrink regression repeatedly passes LLVM O2 compile, GoObj link, and execution on Darwin/arm64; Linux/amd64 remains explicitly overridden gray",
"fixedbugs/issue78081.go": "concurrent GC and stack-shrink regression repeatedly passes LLVM O2 compile, GoObj link, and execution on both CI architectures",
"zerodivide.go": "defer/recover execution repeatedly qualified through LLVM O2 compile, link, and execution"
},
"graylist": {
"devirtualization_nil_panics.go": "panic line checks require LLVM pcfile and pcline emission from the pending Go #117 and LLVM #62 changes",
"fixedbugs/issue73916.go": "recover needs frontend pcinline metadata to count the inlined deferred function as a logical frame",
"fixedbugs/issue73916b.go": "recover needs frontend pcinline metadata to count nested inlined logical frames",
"fixedbugs/issue73917.go": "recover needs frontend pcinline metadata through an inlined value-method wrapper",
Expand All @@ -1194,12 +1195,9 @@
},
"platform_graylist": {
"linux/amd64": {
"abi/method_wrapper.go": "x86 releases the outgoing call frame before loading aggregate method results returned on the stack",
"fixedbugs/issue23522.go": "x86 dynamic SSE4.1 floor selection lowers the guarded LLVM intrinsic to an unavailable external libcall",
"fixedbugs/issue68322.go": "x86 dynamic SSE4.1 truncation lowers the guarded LLVM intrinsic to an unavailable external libcall",
"fixedbugs/issue78081.go": "Linux/amd64 concurrent GC and stack shrinking intermittently fail to unwind a GoObj frame completely",
"llvm_float_intrinsics.go": "x86 dynamic SSE4.1 and FMA intrinsics lower to unavailable external libc and libm calls",
"stackobj2.go": "Linux/amd64 stack growth scans an uninitialized pointer slot in main.makelist"
"llvm_float_intrinsics.go": "x86 dynamic SSE4.1 and FMA intrinsics lower to unavailable external libc and libm calls"
}
},
"platform_blacklist": {
Expand Down
Loading