swiftlang / swift

The Swift Programming Language
https://swift.org
Apache License 2.0
67.2k stars 10.32k forks source link

[SR-13598] [aarch64] [focal fossa] Failing test: compiler_scale/scale_neighbouring_getset.gyb #56033

Open fabianfett opened 3 years ago

fabianfett commented 3 years ago
Previous ID SR-13598
Radar rdar://69596090
Original Reporter @fabianfett
Type Sub-task

Attachment: Download

Environment ``` bash $> uname -a Linux ip-172-31-0-212 5.4.0-1024-aws #​24-Ubuntu SMP Sat Sep 5 06:17:48 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux $> lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 Codename: focal tag: swift-DEVELOPMENT-SNAPSHOT-2020-09-23-a update-checkout succeeded cmake : b7d8c91822101ff9de07075e9b1f02e18c2725da cmark : 9c8096a23f44794bde297452d87c455fc4f76d42 icu : fd123bf023882f07bfacf51c39111be2f946d8f8 indexstore-db : 8ac9e5efc50282ffe3753c8d215c723011109d23 llbuild : 3332fc26fdf49253fe598820021362f3c35c3a30 llvm-project : aa3a7817b14f1bc9d6ac09b32b139941154a4e0e ninja : a1f879b29c9aafe6a2bc0ba885701f8f4f19f772 sourcekit-lsp : eaea937ee4f5aea0a055bd5f682f31da0fa7f82f swift : 41fc2efcf9a801793685089b06f46f341bbcea3c swift-argument-parser : 15351c1cd009eba0b6e438bfef55ea9847a8dc4a swift-corelibs-foundation : 76068b8caf54f250a7be5336a7c6bb97f55469f8 swift-corelibs-libdispatch : f13ea5dcc055e5d2d7c02e90d8c9907ca9dc72e1 swift-corelibs-xctest : 0bd9e7673c078e7c0f7217f854749526fa5e9d96 swift-driver : a04d98e46971d571e9c6e56ac69fcab40813e398 swift-format : d4bba6e22891ff1813e8267e36f2b00307684366 swift-integration-tests : 3ceb61d33ea8885938eace0add830d143a3059cd swift-stress-tester : 4d8f8a790d32a3ced310c6b68c46ca8e6f71f52c swift-syntax : 94fc5ae3f34fac87380756b9c17ea7c6752a227b swift-tools-support-core : 7e8381f930169f7f417789d4aefe74ca54d8e7c5 swift-xcode-playground-support : 88043d7d320f92598efb39408c3f4b1903a4fff6 swiftpm : 93b914240bf7d7af94d96dc2c4bd190bab847c81 yams : 81a65c4069c28011ee432f2858ba0de49b086677 ```
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | | |Labels | Sub-task | |Assignee | None | |Priority | Medium | md5: 1d6aaa47915e4a97a721b028e1422f13

Parent-Task:

Issue Description:

Hi,
today I tried to compile Swift on Ubuntu 20.04 on an AWS c6g instance. (c6g is using Amazon's Arm-based AWS Graviton2 processors). The build succeeded, but four tests failed on main. (swift-DEVELOPMENT-SNAPSHOT-2020-09-23-a)
The test failure log is attached.

benlangmuir commented 3 years ago

This appears to be a bug in LLVM. Are you able to reproduce this? It would help to attach the llvm ir that is causing the crash. For example, after running the failing command

/usr/bin/python3.8 /home/ubuntu/swift/utils/scale-test --swiftc-binary=/home/ubuntu/build/buildbot_linux/swift-linux-aarch64/bin/swiftc --tmpdir=/home/ubuntu/build/buildbot_linux/swift-linux-aarch64/validation-test-linux-aarch64/compiler_scale/Output/scale_neighbouring_getset.gyb.tmp --sum-multi --begin 5 --end 16 --step 5 --select TypeCheckFunctionBodyRequest /home/ubuntu/swift/validation-test/compiler_scale/scale_neighbouring_getset.gyb

You can see the specific compiler command that crashed

['/home/ubuntu/build/buildbot_linux/swift-linux-aarch64/bin/swiftc', '-frontend', '-c', '-o', 'out.o', '-primary-file', 'in3.swift', 'in0.swift', 'in1.swift', 'in2.swift', 'in4.swift', '-stats-output-dir', '/home/ubuntu/build/buildbot_linux/swift-linux-aarch64/validation-test-linux-aarch64/compiler_scale/Output/scale_neighbouring_getset.gyb.tmp/tmpaiusiqwf']

We can replace -c -o out.o with -emit-ir -o out.ll

'/home/ubuntu/build/buildbot_linux/swift-linux-aarch64/bin/swiftc' '-frontend' '-emit-ir' '-o' 'out.ll' '-primary-file' 'in3.swift' 'in0.swift' 'in1.swift' 'in2.swift' 'in4.swift' '-stats-output-dir' '/home/ubuntu/build/buildbot_linux/swift-linux-aarch64/validation-test-linux-aarch64/compiler_scale/Output/scale_neighbouring_getset.gyb.tmp/tmpaiusiqwf'

And attach the "out.ll" file. You can also verify that this crashes llvm on its own using `llc`. Something like

'/home/ubuntu/build/buildbot_linux/llvm-linux-aarch64/bin/llc' '-O0' '-frontend' '-emit-ir' '-o' 'out.ll'