"ninja check" fails for me when self-hosting for 32-bit Windows using VS2013 at r275826. [219/220] Running the LLVM regression tests -- Testing: 17335 tests, 32 threads -- Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc-atomic-instructions.s (13311 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc-atomic-instructions.s' FAILED ******************** Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-atomic-instructions.s -arch=sparcv9 -show-encoding | D: /src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-atomic-instructions.s D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-atomic-instructions.s -arch=sparc -show-encoding | D:/s rc/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\ll vm\test\MC\Sparc\sparc-atomic-instructions.s -- Exit Code: 2 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc-atomic-instructions.s" "-arch=sparcv9" "-show-enco ding" # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparc-atomic-instructions.s" # command stderr: FileCheck error: '-' is empty. FileCheck command line: D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-atomic-instructions.s error: command failed with exit status: 2 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc-coproc.s (13313 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc-coproc.s' FAILED ************* ******* Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-coproc.s -arch=sparc -show-encoding | D:/src/llvm_packa ge_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llvm\test\MC\Sp arc\sparc-coproc.s -- Exit Code: 2 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc-coproc.s" "-arch=sparc" "-show-encoding" # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparc-coproc.s" # command stderr: FileCheck error: '-' is empty. FileCheck command line: D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-coproc.s error: command failed with exit status: 2 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc-ctrl-instructions.s (13317 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc-ctrl-instructions.s' FAILED ** ****************** Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-ctrl-instructions.s -arch=sparc -show-encoding | D:/s rc/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\ll vm\test\MC\Sparc\sparc-ctrl-instructions.s D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-ctrl-instructions.s -arch=sparcv9 -show-encoding | D:/s rc/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\ll vm\test\MC\Sparc\sparc-ctrl-instructions.s -- Exit Code: 2 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc-ctrl-instructions.s" "-arch=sparc" "-show-encoding " # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparc-ctrl-instructions.s" # command stderr: FileCheck error: '-' is empty. FileCheck command line: D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-ctrl-instructions.s error: command failed with exit status: 2 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc-mem-instructions.s (13319 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc-mem-instructions.s' FAILED *** ***************** Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-mem-instructions.s -arch=sparc -show-encoding | D:/sr c/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llv m\test\MC\Sparc\sparc-mem-instructions.s D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-mem-instructions.s -arch=sparcv9 -show-encoding | D:/sr c/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llv m\test\MC\Sparc\sparc-mem-instructions.s -- Exit Code: 2 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc-mem-instructions.s" "-arch=sparc" "-show-encoding" # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparc-mem-instructions.s" # command stderr: FileCheck error: '-' is empty. FileCheck command line: D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-mem-instructions.s error: command failed with exit status: 2 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc-fp-instructions.s (13320 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc-fp-instructions.s' FAILED **** **************** Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-fp-instructions.s -arch=sparcv9 -show-encoding | D:/src /llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llvm \test\MC\Sparc\sparc-fp-instructions.s -- Exit Code: 1 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc-fp-instructions.s" "-arch=sparcv9" "-show-encoding " # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparc-fp-instructions.s" # command stderr: D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-fp-instructions.s:146:11: er ror: expected string not found in input ! CHECK: st %f29, [%l0] ! encoding: [0xfb,0x24,0x00,0x00] ^ <stdin>:85:2: note: scanning from here st %f29, [%l0] ! encoding: [0xfb,0x24 ^ error: command failed with exit status: 1 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc-special-registers.s (13321 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc-special-registers.s' FAILED ** ****************** Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-special-registers.s -arch=sparc -show-encoding | D:/src /llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llvm \test\MC\Sparc\sparc-special-registers.s D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-special-registers.s -arch=sparcv9 -show-encoding | D:/s rc/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\ll vm\test\MC\Sparc\sparc-special-registers.s -- Exit Code: 1 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc-special-registers.s" "-arch=sparc" "-show-encoding " # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparc-special-registers.s" # command stderr: D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-special-registers.s:25:11: e rror: expected string not found in input ! CHECK: rd %tbr, %i0 ! encoding: [0xb1,0x58,0x00,0x00] ^ <stdin>:17:2: note: scanning from here rd %tbr, %i0 ^ error: command failed with exit status: 1 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc-synthetic-instructions.s (13327 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc-synthetic-instructions.s' FAIL ED ******************** Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-synthetic-instructions.s -arch=sparc -show-encoding | D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_2758 26\llvm\test\MC\Sparc\sparc-synthetic-instructions.s D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-synthetic-instructions.s -arch=sparcv9 -show-encoding | D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_2758 26\llvm\test\MC\Sparc\sparc-synthetic-instructions.s D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-synthetic-instructions.s -arch=sparc -show-encoding | D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_2758 26\llvm\test\MC\Sparc\sparc-synthetic-instructions.s --check-prefix=V8 D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-synthetic-instructions.s -arch=sparcv9 -show-encoding | D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_2758 26\llvm\test\MC\Sparc\sparc-synthetic-instructions.s --check-prefix=V9 -- Exit Code: 1 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc-synthetic-instructions.s" "-arch=sparc" "-show-enc oding" # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparc-synthetic-instructions.s" # command stderr: D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-synthetic-instructions.s:93: 11: error: expected string not found in input ! CHECK: andn %g2, %g1, %g2 ! encoding: [0x84,0x28,0x80,0x01] ^ <stdin>:57:2: note: scanning from here andn %g2, %g1, %g2 ^ error: command failed with exit status: 1 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparcv9-instructions.s (13328 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparcv9-instructions.s' FAILED ***** *************** Script: -- not D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275 826\llvm\test\MC\Sparc\sparcv9-instructions.s -arch=sparc -show-encoding 2>&1 | D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275 826\llvm\test\MC\Sparc\sparcv9-instructions.s --check-prefix=V8 D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparcv9-instructions.s -arch=sparcv9 -show-encoding | D:/src/ llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\llvm_package_275826\llvm\ test\MC\Sparc\sparcv9-instructions.s --check-prefix=V9 -- Exit Code: 1 Command Output (stdout): -- $ "not" "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_pack age_275826\llvm\test\MC\Sparc\sparcv9-instructions.s" "-arch=sparc" "-show-encod ing" note: command had no output on stdout or stderr error: command failed with exit status: 1 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparcv9-instructions.s" "--check-prefix=V8" # command stderr: D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparcv9-instructions.s:94:8: error : expected string not found in input ! V8: error: instruction requires a CPU feature not currently enabled ^ <stdin>:57:2: note: scanning from here ^ ^ error: command failed with exit status: 1 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc-pic.s (13329 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc-pic.s' FAILED **************** **** Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-pic.s -arch=sparcv9 --position-independent -filetype=ob j | D:/src/llvm_package_275826/build32/./bin\llvm-readobj.EXE -r | D:/src/llvm_p ackage_275826/build32/./bin\FileCheck.EXE --check-prefix=PIC D:\src\llvm_package _275826\llvm\test\MC\Sparc\sparc-pic.s D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc-pic.s -arch=sparcv9 -filetype=obj | D:/src/llvm_package _275826/build32/./bin\llvm-readobj.EXE -r | D:/src/llvm_package_275826/build32/. /bin\FileCheck.EXE --check-prefix=NOPIC D:\src\llvm_package_275826\llvm\test\MC\ Sparc\sparc-pic.s -- Exit Code: 2 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc-pic.s" "-arch=sparcv9" "--position-independent" "- filetype=obj" # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\llvm-readobj.EXE" "-r" # command stderr: Error reading file: <stdin>: The file was not recognized as a valid object file. error: command failed with exit status: 1 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "--check-prefix=PIC" "D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-pic.s" # command stderr: FileCheck error: '-' is empty. FileCheck command line: D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE --check-prefix=PIC D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc-pic.s error: command failed with exit status: 2 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70. FAIL: LLVM :: MC/Sparc/sparc64-ctrl-instructions.s (13331 of 17335) ******************** TEST 'LLVM :: MC/Sparc/sparc64-ctrl-instructions.s' FAILED ******************** Script: -- D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE D:\src\llvm_package_275826\ llvm\test\MC\Sparc\sparc64-ctrl-instructions.s -triple=sparc64-unknown-linux-gnu -show-encoding | D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE D:\src\ llvm_package_275826\llvm\test\MC\Sparc\sparc64-ctrl-instructions.s -- Exit Code: 1 Command Output (stdout): -- $ "D:/src/llvm_package_275826/build32/./bin\llvm-mc.EXE" "D:\src\llvm_package_27 5826\llvm\test\MC\Sparc\sparc64-ctrl-instructions.s" "-triple=sparc64-unknown-li nux-gnu" "-show-encoding" # command stderr: #0 0x00f5bd5a (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0xcbd5a) #1 0x0119558b (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x30558b) #2 0x0118eb06 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x2feb06) #3 0x00e93d66 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x3d66) #4 0x01357dc6 (D:\src\llvm_package_275826\build32\bin\llvm-mc.EXE+0x4c7dc6) #5 0x74f7338a (C:\Windows\syswow64\kernel32.dll+0x1338a) #6 0x76fe9902 (C:\Windows\SysWOW64\ntdll.dll+0x39902) #7 0x76fe98d5 (C:\Windows\SysWOW64\ntdll.dll+0x398d5) error: command failed with exit status: -1073741819 $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "D:\src\llvm_package_ 275826\llvm\test\MC\Sparc\sparc64-ctrl-instructions.s" # command stderr: D:\src\llvm_package_275826\llvm\test\MC\Sparc\sparc64-ctrl-instructions.s:1220:1 1: error: expected string not found in input ! CHECK: fmovrsnz %g1, %f2, %f3 ! encoding: [0x87,0xa8,0x54,0xa2] ^ <stdin>:875:2: note: scanning from here fmovrsnz %g1, %f2, %f3 ! encoding: [0x87,0xa8,0x54,0 ^ error: command failed with exit status: 1 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. FAIL: LLVM :: Object/archive-update.test (13633 of 17335) ******************** TEST 'LLVM :: Object/archive-update.test' FAILED ********** ********** Script: -- cd D:\src\llvm_package_275826\build32\test\Object\Output rm -f D:\src\llvm_package_275826\build32\test\Object\Output\archive-update.test. tmp.a mkdir -p D:\src\llvm_package_275826\build32\test\Object\Output\archive-update.te st.tmp.older echo older > D:\src\llvm_package_275826\build32\test\Object\Output\archive-updat e.test.tmp.older/evenlen mkdir -p D:\src\llvm_package_275826\build32\test\Object\Output\archive-update.te st.tmp.newer touch -m -t 200001010000 D:\src\llvm_package_275826\build32\test\Object\Output\a rchive-update.test.tmp.older/evenlen || sleep 2.1 echo newer > D:\src\llvm_package_275826\build32\test\Object\Output\archive-updat e.test.tmp.newer/evenlen touch D:\src\llvm_package_275826\build32\test\Object\Output\archive-update.test. tmp.newer/evenlen D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE rU D:\src\llvm_package_2758 26\build32\test\Object\Output\archive-update.test.tmp.a D:\src\llvm_package_2758 26\build32\test\Object\Output\archive-update.test.tmp.newer/evenlen D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE p D:\src\llvm_package_27582 6\build32\test\Object\Output\archive-update.test.tmp.a | D:/src/llvm_package_275 826/build32/./bin\FileCheck.EXE --check-prefix=NEWER D:\src\llvm_package_275826\ llvm\test\Object\archive-update.test D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE rU D:\src\llvm_package_2758 26\build32\test\Object\Output\archive-update.test.tmp.a D:\src\llvm_package_2758 26\build32\test\Object\Output\archive-update.test.tmp.older/evenlen D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE p D:\src\llvm_package_27582 6\build32\test\Object\Output\archive-update.test.tmp.a | D:/src/llvm_package_275 826/build32/./bin\FileCheck.EXE --check-prefix=OLDER D:\src\llvm_package_275826\ llvm\test\Object\archive-update.test D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE ruU D:\src\llvm_package_275 826\build32\test\Object\Output\archive-update.test.tmp.a D:\src\llvm_package_275 826\build32\test\Object\Output\archive-update.test.tmp.newer/evenlen D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE p D:\src\llvm_package_27582 6\build32\test\Object\Output\archive-update.test.tmp.a | D:/src/llvm_package_275 826/build32/./bin\FileCheck.EXE --check-prefix=NEWER D:\src\llvm_package_275826\ llvm\test\Object\archive-update.test D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE ruU D:\src\llvm_package_275 826\build32\test\Object\Output\archive-update.test.tmp.a D:\src\llvm_package_275 826\build32\test\Object\Output\archive-update.test.tmp.older/evenlen D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE p D:\src\llvm_package_27582 6\build32\test\Object\Output\archive-update.test.tmp.a | D:/src/llvm_package_275 826/build32/./bin\FileCheck.EXE --check-prefix=NEWER D:\src\llvm_package_275826\ llvm\test\Object\archive-update.test rm -f D:\src\llvm_package_275826\build32\test\Object\Output\archive-update.test. tmp.a echo foo > foo echo bar > bar D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE --format=gnu rcT D:\src\llv m_package_275826\build32\test\Object\Output\archive-update.test.tmp.a foo D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE --format=gnu rcT D:\src\llv m_package_275826\build32\test\Object\Output\archive-update.test.tmp.a bar D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE t D:\src\llvm_package_27582 6\build32\test\Object\Output\archive-update.test.tmp.a | D:/src/llvm_package_275 826/build32/./bin\FileCheck.EXE --check-prefix=BOTH-FILES D:\src\llvm_package_27 5826\llvm\test\Object\archive-update.test rm -f D:\src\llvm_package_275826\build32\test\Object\Output\archive-update.test. tmp.a D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE --format=gnu rc D:\src\llvm _package_275826\build32\test\Object\Output\archive-update.test.tmp.a foo not D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE --format=gnu rcT D:\src \llvm_package_275826\build32\test\Object\Output\archive-update.test.tmp.a bar 2> &1 | D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE --check-prefix=ERROR D:\src\llvm_package_275826\llvm\test\Object\archive-update.test -- Exit Code: 1 Command Output (stdout): -- $ "rm" "-f" "D:\src\llvm_package_275826\build32\test\Object\Output\archive-updat e.test.tmp.a" $ "mkdir" "-p" "D:\src\llvm_package_275826\build32\test\Object\Output\archive-up date.test.tmp.older" $ "echo" "older" $ "mkdir" "-p" "D:\src\llvm_package_275826\build32\test\Object\Output\archive-up date.test.tmp.newer" $ "touch" "-m" "-t" "200001010000" "D:\src\llvm_package_275826\build32\test\Obje ct\Output\archive-update.test.tmp.older/evenlen" $ "echo" "newer" $ "touch" "D:\src\llvm_package_275826\build32\test\Object\Output\archive-update. test.tmp.newer/evenlen" $ "D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE" "rU" "D:\src\llvm_packa ge_275826\build32\test\Object\Output\archive-update.test.tmp.a" "D:\src\llvm_pac kage_275826\build32\test\Object\Output\archive-update.test.tmp.newer/evenlen" # command stderr: D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE: creating D:\src\llvm_packa ge_275826\build32\test\Object\Output\archive-update.test.tmp.a $ "D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE" "p" "D:\src\llvm_packag e_275826\build32\test\Object\Output\archive-update.test.tmp.a" $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "--check-prefix=NEWER " "D:\src\llvm_package_275826\llvm\test\Object\archive-update.test" $ "D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE" "rU" "D:\src\llvm_packa ge_275826\build32\test\Object\Output\archive-update.test.tmp.a" "D:\src\llvm_pac kage_275826\build32\test\Object\Output\archive-update.test.tmp.older/evenlen" $ "D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE" "p" "D:\src\llvm_packag e_275826\build32\test\Object\Output\archive-update.test.tmp.a" $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "--check-prefix=OLDER " "D:\src\llvm_package_275826\llvm\test\Object\archive-update.test" $ "D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE" "ruU" "D:\src\llvm_pack age_275826\build32\test\Object\Output\archive-update.test.tmp.a" "D:\src\llvm_pa ckage_275826\build32\test\Object\Output\archive-update.test.tmp.newer/evenlen" $ "D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE" "p" "D:\src\llvm_packag e_275826\build32\test\Object\Output\archive-update.test.tmp.a" $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "--check-prefix=NEWER " "D:\src\llvm_package_275826\llvm\test\Object\archive-update.test" $ "D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE" "ruU" "D:\src\llvm_pack age_275826\build32\test\Object\Output\archive-update.test.tmp.a" "D:\src\llvm_pa ckage_275826\build32\test\Object\Output\archive-update.test.tmp.older/evenlen" $ "D:/src/llvm_package_275826/build32/./bin\llvm-ar.EXE" "p" "D:\src\llvm_packag e_275826\build32\test\Object\Output\archive-update.test.tmp.a" $ "D:/src/llvm_package_275826/build32/./bin\FileCheck.EXE" "--check-prefix=NEWER " "D:\src\llvm_package_275826\llvm\test\Object\archive-update.test" # command stderr: D:\src\llvm_package_275826\llvm\test\Object\archive-update.test:36:8: error: exp ected string not found in input NEWER: newer ^ <stdin>:1:1: note: scanning from here older ^ error: command failed with exit status: 1 -- ******************** Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. Testing Time: 484.45s ******************** Failing Tests (11): LLVM :: MC/Sparc/sparc-atomic-instructions.s LLVM :: MC/Sparc/sparc-coproc.s LLVM :: MC/Sparc/sparc-ctrl-instructions.s LLVM :: MC/Sparc/sparc-fp-instructions.s LLVM :: MC/Sparc/sparc-mem-instructions.s LLVM :: MC/Sparc/sparc-pic.s LLVM :: MC/Sparc/sparc-special-registers.s LLVM :: MC/Sparc/sparc-synthetic-instructions.s LLVM :: MC/Sparc/sparc64-ctrl-instructions.s LLVM :: MC/Sparc/sparcv9-instructions.s LLVM :: Object/archive-update.test Expected Passes : 16305 Expected Failures : 170 Unsupported Tests : 849 Unexpected Failures: 11 FAILED: test/CMakeFiles/check-llvm cmd.exe /C "cd /D D:\src\llvm_package_275826\build32\test && C:\python_27_amd64\ files\python.exe D:/src/llvm_package_275826/llvm/utils/lit/lit.py -sv --param ll vm_site_config=D:/src/llvm_package_275826/build32/test/lit.site.cfg --param llvm _unit_site_config=D:/src/llvm_package_275826/build32/test/Unit/lit.site.cfg D:/s rc/llvm_package_275826/build32/test" ninja: build stopped: subcommand failed.
The failure mode looks similar to crbug.com/629141
Bisection points to r275561 - code hoisting pass based on GVN To reproduce: Build Release+Asserts Clang at this revision for 32-bit windows Use that to configure a Release+Asserts 32-bit Windows build, and build llvm-mc, then run it like: D:/src/llvm/build.bootstrap/./bin\llvm-mc.EXE D:\src\llvm\test\MC\Sparc\sparc64-ctrl-instructions.s -triple=sparc64-unknown-linux-gnu -show-encoding
(In reply to comment #2) > Bisection points to r275561 - code hoisting pass based on GVN > > > To reproduce: > > Build Release+Asserts Clang at this revision for 32-bit windows > > Use that to configure a Release+Asserts 32-bit Windows build, and build > llvm-mc, then run it like: > > D:/src/llvm/build.bootstrap/./bin\llvm-mc.EXE > D:\src\llvm\test\MC\Sparc\sparc64-ctrl-instructions.s > -triple=sparc64-unknown-linux-gnu -show-encoding I do not have access to a windows 32-bit machine. From this description it sounds like llvm-mc is miscompiled. Would you be able to bisect the problem and report a reduced testcase? Here is how I would do that: Build a good llvm-mc with a good compiler and keep around all the .o files. Build a bad llvm-mc with the faulty compiler. Link together half of good and half of bad .o files and check whether it fails. Iterate this step halving at each iteration the number of .o files that may contain the miscompilation. Once you have a .o file that is miscompiled, bisect on the number of GVN expressions hoisted: compile that .cpp file with the same options and adding "-mllvm -gvn-max-hoisted=10000 and then bisect again that number until finding N for which llvm-mc passes and N+1 fails. Finally get the output of "-mllvm -print-after-all -mllvm -print-before-all" for both N and N+1.
Thanks! I've bisected with -gvn-max-hoisted and found that the function that seems to be breaking is SparcAsmParser::parseMEMOperand I'll attach the IR before and after hoisting of that function.
Created attachment 16780 [details] parseMEMOperand before hoisting
Created attachment 16781 [details] parseMEMOperand after hoisting
diffing before and after shows that it seems we're introducing a new alloca (%21) in the if.end18 block. This is problematic, because it gets inserted after an inalloca (%argmem) which is live there. I think that's the source of our bug, and it also explains why this only happens on 32-bit Windows.
I'm not exactly sure what's going on, but looking at the diff again, maybe it's something like this: in cond.true there is: %20 = getelementptr inbounds <{ %"class.std::unique_ptr.203"*, i32, %"class.std::unique_ptr.203" }>, <{ %"class.std::unique_ptr.203"*, i32, %"class.std::unique_ptr.203" }>* %argmem, i32 0, i32 0, !dbg !27007^M store %"class.std::unique_ptr.203"* %ref.tmp20, %"class.std::unique_ptr.203"** %20, align 4, !dbg !27007 %ref.tmp20 is an alloca in the entry block When hoisting, the pass hoists both the gep and the store, cloning the value (the alloca) and putting that at the hoist point. (GVNHoist.cpp's makeOperandsAvailable) Since that means inserting an alloca after a live inalloca, it breaks the program, but it also seems bad in general to insert an alloca into the non-entry block. Maybe the pass should bail out when Val is an AllocInst? Or maybe it should check if it's from the entry block and if so insert the clone there as well?
Thanks Hans! It is very helpful to see the diff. I will have a closer look and I will submit a patch to fix the problem.
(In reply to comment #9) > Thanks Hans! > It is very helpful to see the diff. > I will have a closer look and I will submit a patch to fix the problem. I sent out https://reviews.llvm.org/D22644
Fixed in https://reviews.llvm.org/rL276358