open64-compiler / open64

open64 compiler
78 stars 29 forks source link

[SPEC2006] w2ll: Find_parm_type cannot find _temp_vararg1 #10

Open Yvan-xy opened 1 year ago

Yvan-xy commented 1 year ago

Extracted from 400.perlbench xcalcc -S case.c

Perl_deb(char pat, ...) {}

Got the following assertion:

### Assertion failure ../../../../open64/osprey/ir_tools/whirl2llvm.cxx:1082:
### Find_parm_type cannot find _temp_vararg1
### For 4312.O in Perl_deb (xcalcc:438)

The WHIRL dump is:

 LOC 0 0 source files:  1   "/home/xman/w2ll_dev/open64_build/4312.c"
FUNC_ENTRY <1,50,Perl_deb> {line: 1/1}
 IDNAME 0 <2,1,pat>
BODY
 BLOCK {line: 0/0}
 PRAGMA 0 72 <null-st> 0 (0x0) # WOPT_FINISHED_OPTIMIZATION, 0, 4 {line: 0/0}
 END_BLOCK
 BLOCK {line: 0/0}
 END_BLOCK
 BLOCK {line: 1/1}
  I8I8LDID 6 <1,5,.preg_I8> T<5,.predef_I8,8> # $6
 I8STID 0 <2,11,_temp_vararg1> T<55,.predef_I8,8> {line: 1/1}
  I8I8LDID 7 <1,5,.preg_I8> T<5,.predef_I8,8> # $7
 I8STID 0 <2,12,_temp_vararg2> T<55,.predef_I8,8> {line: 1/1}
  I8I8LDID 8 <1,5,.preg_I8> T<5,.predef_I8,8> # $8
 I8STID 0 <2,13,_temp_vararg3> T<55,.predef_I8,8> {line: 1/1}
  I8I8LDID 9 <1,5,.preg_I8> T<5,.predef_I8,8> # $9
 I8STID 0 <2,14,_temp_vararg4> T<55,.predef_I8,8> {line: 1/1}
  I8I8LDID 10 <1,5,.preg_I8> T<5,.predef_I8,8> # $10
 I8STID 0 <2,15,_temp_vararg5> T<55,.predef_I8,8> {line: 1/1}
   I4I4LDID 1 <1,5,.preg_I8> T<4,.predef_I4,8> # $1
  I4PARM 2 T<4,.predef_I4,4> #  by_value
   U4INTCONST 8 (0x8)
  I4PARM 2 T<4,.predef_I4,4> #  by_value
   U8LDA 0 <2,16,_temp_vararg6> T<57,anon_ptr.,8>
  U8PARM 2 T<9,.predef_U8,8> #  by_value
 VINTRINSIC_CALL <805,SAVE_XMMS> 0 # flags 0x0 {line: 1/1}
 PRAGMA 0 119 <null-st> 0 (0x0) # PREAMBLE_END {line: 1/1}
 RETURN {line: 1/1}
 END_BLOCK