{"name": "_ZN4llvm21BranchProbabilityInfo25calcUnreachableHeuristicsEPNS_10BasicBlockE", "code": "__int64 __fastcall llvm BranchProbabilityInfo calcUnreachableHeuristics ( llvm BranchProbabilityInfo * @@this@@ , llvm BasicBlock * @@a2@@ ) { _BYTE * v3 ; unsigned int v4 ; __int64 v6 ; __int64 v7 ; unsigned int v8 ; __int64 v9 ; const void * v10 ; const void * v11 ; const void * * v12 ; const void * * v13 ; __int64 v14 ; const void * v15 ; int v16 ; __int64 v17 ; const llvm BasicBlock * * v18 ; const llvm BasicBlock * * v19 ; const llvm BasicBlock * * v20 ; const llvm BasicBlock * v21 ; const llvm BasicBlock * * v22 ; const llvm BasicBlock * * v23 ; int v24 ; __int64 v25 ; const llvm BasicBlock * * v26 ; const llvm BasicBlock * * v27 ; const llvm BasicBlock * * v28 ; const llvm BasicBlock * v29 ; const llvm BasicBlock * * v30 ; const llvm BasicBlock * * v31 ; int @@v32@@ ; __m128i @@v33@@ ; __int64 @@v34@@ ; int @@v35@@ ; __int128 @@v36@@ [ Number ] ; __int64 @@v37@@ ; __m128i @@v38@@ ; __int64 @@v39@@ ; int @@v40@@ ; __int128 @@v41@@ [ Number ] ; __int64 @@v42@@ ; v3 = ( _BYTE * ) llvm BasicBlock getTerminator ( @@a2@@ ) ; if ( ! ( * ( unsigned int ( __fastcall * * ) ( _BYTE * ) ) ( * ( _QWORD * ) v3 + Number L ) ) ( v3 ) ) { v4 = Number ; if ( v3 [ Number ] == Number ) llvm SmallPtrSetImpl insert_imp ( ( llvm BranchProbabilityInfo * ) ( ( char * ) @@this@@ + Number ) , @@a2@@ ) ; return v4 ; } @@v37@@ = Number L ; @@v34@@ = Number L ; @@v35@@ = Number ; @@v38@@ = _mm_unpacklo_epi64 ( ( __m128i ) ( unsigned __int64 ) @@v41@@ , ( __m128i ) ( unsigned __int64 ) @@v41@@ ) ; @@v33@@ = _mm_unpacklo_epi64 ( ( __m128i ) ( unsigned __int64 ) @@v36@@ , ( __m128i ) ( unsigned __int64 ) @@v36@@ ) ; @@v36@@ [ Number ] = Number ; @@v36@@ [ Number ] = Number ; @@v41@@ [ Number ] = Number ; @@v41@@ [ Number ] = Number ; @@v42@@ = Number L ; @@v39@@ = Number L ; @@v40@@ = Number ; v6 = llvm BasicBlock getTerminator ( @@a2@@ ) ; v7 = llvm BasicBlock getTerminator ( @@a2@@ ) ; if ( v7 ) { @@v32@@ = ( * ( __int64 ( __fastcall * * ) ( __int64 ) ) ( * ( _QWORD * ) v7 + Number L ) ) ( v7 ) ; if ( @@v32@@ ) { v8 = Number ; while ( Number ) { v11 = ( const void * ) ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD ) ) ( * ( _QWORD * ) v6 + Number L ) ) ( v6 , v8 ) ; v12 = ( const void * * ) * ( ( _QWORD * ) @@this@@ + Number ) ; if ( v12 == * ( ( const void * * * ) @@this@@ + Number ) ) { v13 = & v12 [ * ( ( unsigned int * ) @@this@@ + Number ) ] ; if ( v12 == v13 ) goto LABEL_9 ; while ( v11 != * v12 ) { if ( v13 == ++ v12 ) goto LABEL_9 ; } LABEL_15 : v14 = v8 ++ ; v15 = ( const void * ) ( * ( __int64 ( __fastcall * * ) ( __int64 , __int64 ) ) ( * ( _QWORD * ) v6 + Number L ) ) ( v6 , v14 ) ; llvm SmallPtrSetImpl insert_imp ( ( llvm SmallPtrSetImpl * ) & @@v33@@ , v15 ) ; if ( @@v32@@ == v8 ) break ; } else { if ( v11 == * ( const void * * ) llvm SmallPtrSetImpl FindBucketFor ( ( llvm BranchProbabilityInfo * ) ( ( char * ) @@this@@ + Number ) , v11 ) ) goto LABEL_15 ; LABEL_9 : v9 = v8 ++ ; v10 = ( const void * ) ( * ( __int64 ( __fastcall * * ) ( __int64 , __int64 ) ) ( * ( _QWORD * ) v6 + Number L ) ) ( v6 , v9 ) ; llvm SmallPtrSetImpl insert_imp ( ( llvm SmallPtrSetImpl * ) & @@v38@@ , v10 ) ; if ( @@v32@@ == v8 ) break ; } } } } v16 = HIDWORD ( @@v34@@ ) ; if ( v16 == ( * ( unsigned int ( __fastcall * * ) ( _BYTE * ) ) ( * ( _QWORD * ) v3 + Number L ) ) ( v3 ) ) llvm SmallPtrSetImpl insert_imp ( ( llvm BranchProbabilityInfo * ) ( ( char * ) @@this@@ + Number ) , @@a2@@ ) ; v4 = Number ; if ( ( * ( unsigned int ( __fastcall * * ) ( _BYTE * ) ) ( * ( _QWORD * ) v3 + Number L ) ) ( v3 ) != Number && HIDWORD ( @@v34@@ ) ) { if ( * ( _QWORD * ) @@v33@@ . m128i_i64 [ Number ] < Number ) { v18 = ( const llvm BasicBlock * * ) @@v33@@ . m128i_i64 [ Number ] ; } else { v17 = @@v33@@ . m128i_i64 [ Number ] + Number ; do { v18 = ( const llvm BasicBlock * * ) v17 ; v17 += Number L ; } while ( * v18 == ( const llvm BasicBlock * ) Number || ( char * ) * v18 + Number == ( char * ) & loc_1 ) ; } v19 = ( const llvm BasicBlock * * ) ( @@v33@@ . m128i_i64 [ Number ] + Number L * ( unsigned int ) @@v34@@ ) ; if ( ( unsigned __int64 ) * v19 >= Number ) { v20 = v19 + Number ; do v19 = v20 ++ ; while ( * v19 == ( const llvm BasicBlock * ) Number || ( char * ) * v19 + Number == ( char * ) & loc_1 ) ; } if ( v19 != v18 ) { v21 = * v18 ; do { while ( Number ) { llvm BranchProbabilityInfo setEdgeWeight ( @@this@@ , @@a2@@ , v21 , Number ) ; v21 = v18 [ Number ] ; v22 = v18 + Number ; v23 = v18 + Number ; if ( ( unsigned __int64 ) v21 + Number <= Number ) break ; ++ v18 ; if ( v22 == v19 ) goto LABEL_31 ; } do { v21 = * v23 ; v18 = v23 ++ ; } while ( ( unsigned __int64 ) v21 + Number <= Number ) ; } while ( v18 != v19 ) ; } LABEL_31 : if ( HIDWORD ( @@v39@@ ) ) { v24 = Number ; if ( Number / HIDWORD ( @@v39@@ ) >= Number ) v24 = Number / HIDWORD ( @@v39@@ ) ; if ( * ( _QWORD * ) @@v38@@ . m128i_i64 [ Number ] < Number ) { v26 = ( const llvm BasicBlock * * ) @@v38@@ . m128i_i64 [ Number ] ; } else { v25 = @@v38@@ . m128i_i64 [ Number ] + Number ; do { v26 = ( const llvm BasicBlock * * ) v25 ; v25 += Number L ; } while ( * v26 == ( const llvm BasicBlock * ) Number || ( char * ) * v26 + Number == ( char * ) & loc_1 ) ; } v27 = ( const llvm BasicBlock * * ) ( @@v38@@ . m128i_i64 [ Number ] + Number L * ( unsigned int ) @@v39@@ ) ; if ( ( unsigned __int64 ) * v27 >= Number ) { v28 = v27 + Number ; do v27 = v28 ++ ; while ( * v27 == ( const llvm BasicBlock * ) Number || ( char * ) * v27 + Number == ( char * ) & loc_1 ) ; } if ( v27 != v26 ) { v29 = * v26 ; do { while ( Number ) { llvm BranchProbabilityInfo setEdgeWeight ( @@this@@ , @@a2@@ , v29 , v24 ) ; v29 = v26 [ Number ] ; v30 = v26 + Number ; v31 = v26 + Number ; if ( ( unsigned __int64 ) v29 + Number <= Number ) break ; ++ v26 ; if ( v30 == v27 ) goto LABEL_45 ; } do { v29 = * v31 ; v26 = v31 ++ ; } while ( ( unsigned __int64 ) v29 + Number <= Number ) ; } while ( v26 != v27 ) ; } } LABEL_45 : v4 = Number ; } llvm SmallPtrSetImpl ~ SmallPtrSetImpl ( ( llvm SmallPtrSetImpl * ) & @@v38@@ ) ; llvm SmallPtrSetImpl ~ SmallPtrSetImpl ( ( llvm SmallPtrSetImpl * ) & @@v33@@ ) ; return v4 ; }", "source": [{"n": "this", "t": {"T": 3, "t": "llvm::BranchProbabilityInfo"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "llvm::BasicBlock"}, "location": "r64"}, {"n": "v41", "t": {"T": 2, "n": 2, "s": 16, "t": "__int128"}, "location": "s104"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s112"}, {"n": "v39", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s120"}, {"n": "v38", "t": {"T": 8}, "location": "s136"}, {"n": "v37", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s152"}, {"n": "v36", "t": {"T": 2, "n": 2, "s": 16, "t": "__int128"}, "location": "s184"}, {"n": "v35", "t": {"T": 1, "n": "int", "s": 4}, "location": "s192"}, {"n": "v34", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s200"}, {"n": "v33", "t": {"T": 8}, "location": "s216"}, {"n": "v32", "t": {"T": 1, "n": "int", "s": 4}, "location": "s244"}, {"n": "v42", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}]}