LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 28606 - MC/Sparc tests failing on self-hosted 32-bit Windows builds
Summary: MC/Sparc tests failing on self-hosted 32-bit Windows builds
Status: RESOLVED FIXED
Alias: None
Product: new-bugs
Classification: Unclassified
Component: new bugs (show other bugs)
Version: 3.9
Hardware: PC Linux
: P normal
Assignee: Sebastian Pop
URL:
Keywords:
Depends on:
Blocks: 28600
  Show dependency tree
 
Reported: 2016-07-18 17:14 PDT by Hans Wennborg
Modified: 2016-07-22 08:51 PDT (History)
3 users (show)

See Also:
Fixed By Commit(s):


Attachments
parseMEMOperand before hoisting (16.41 KB, application/octet-stream)
2016-07-21 13:30 PDT, Hans Wennborg
Details
parseMEMOperand after hoisting (16.71 KB, application/octet-stream)
2016-07-21 13:30 PDT, Hans Wennborg
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hans Wennborg 2016-07-18 17:14:53 PDT
"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.
Comment 1 Reid Kleckner 2016-07-18 17:20:52 PDT
The failure mode looks similar to crbug.com/629141
Comment 2 Hans Wennborg 2016-07-20 16:00:16 PDT
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
Comment 3 Sebastian Pop 2016-07-20 17:17:02 PDT
(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.
Comment 4 Hans Wennborg 2016-07-21 13:29:22 PDT
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.
Comment 5 Hans Wennborg 2016-07-21 13:30:02 PDT
Created attachment 16780 [details]
parseMEMOperand before hoisting
Comment 6 Hans Wennborg 2016-07-21 13:30:14 PDT
Created attachment 16781 [details]
parseMEMOperand after hoisting
Comment 7 Hans Wennborg 2016-07-21 13:36:59 PDT
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.
Comment 8 Hans Wennborg 2016-07-21 13:59:50 PDT
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?
Comment 9 Sebastian Pop 2016-07-21 15:44:06 PDT
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.
Comment 10 Hans Wennborg 2016-07-21 15:45:18 PDT
(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
Comment 11 Sebastian Pop 2016-07-22 08:51:28 PDT
Fixed in https://reviews.llvm.org/rL276358