{"name": "_ZN4llvm21BranchProbabilityInfo13runOnFunctionERNS_8FunctionE", "code": "__int64 __fastcall llvm BranchProbabilityInfo runOnFunction ( llvm BranchProbabilityInfo * @@this@@ , __int64 @@a2@@ ) { llvm BasicBlock * v4 ; __int64 @@v5@@ ; const void * v6 ; unsigned __int64 v7 ; char * i ; __int64 v9 ; llvm BasicBlock * v10 ; __int64 v11 ; int v12 ; const char * v13 ; unsigned int v14 ; __int64 v15 ; _BYTE * v16 ; _BYTE * v17 ; char * v18 ; int v19 ; unsigned int v20 ; __int64 v21 ; void * v22 ; __int64 v23 ; unsigned __int64 v24 ; __int64 v25 ; void * v26 ; __int64 v27 ; unsigned int v28 ; unsigned __int64 v30 ; llvm raw_ostream * v31 ; __m128i * v32 ; const void * v33 ; size_t v34 ; void * v35 ; size_t v36 ; llvm raw_ostream * v37 ; _BYTE * v38 ; __m128i @@v39@@ ; __int64 @@v40@@ ; __m128i @@v41@@ ; __int64 @@v42@@ ; int @@v43@@ ; __int128 @@v44@@ [ Number ] ; __int64 @@v45@@ ; char * @@v46@@ [ Number ] ; char * @@v47@@ ; __m128i @@v48@@ ; __int64 @@v49@@ ; int @@v50@@ ; __int128 @@v51@@ [ Number ] ; __int64 @@v52@@ ; void * @@v53@@ [ Number ] ; __int64 @@v54@@ ; * ( ( _QWORD * ) @@this@@ + Number ) = @@a2@@ ; * ( ( _QWORD * ) @@this@@ + Number ) = llvm Pass getAnalysis < llvm LoopInfo > ( ) ; if ( * ( ( _DWORD * ) @@this@@ + Number ) ) _assert_fail ( String , String , Number , String ) ; v4 = * ( llvm BasicBlock * * ) ( @@a2@@ + Number ) ; if ( ! v4 ) goto LABEL_30 ; @@v5@@ = @@a2@@ + Number ; if ( ( llvm BasicBlock * ) ( @@a2@@ + Number ) == v4 ) goto LABEL_30 ; v6 = * ( const void * * ) ( @@a2@@ + Number ) ; @@v45@@ = Number L ; @@v42@@ = Number L ; @@v43@@ = Number ; @@v41@@ = _mm_unpacklo_epi64 ( ( __m128i ) ( unsigned __int64 ) @@v44@@ , ( __m128i ) ( unsigned __int64 ) @@v44@@ ) ; @@v44@@ [ Number ] = Number ; @@v44@@ [ Number ] = Number ; @@v44@@ [ Number ] = Number ; @@v44@@ [ Number ] = Number ; * ( _OWORD * ) @@v46@@ = Number L ; @@v47@@ = Number L ; llvm SmallPtrSetImpl insert_imp ( ( llvm SmallPtrSetImpl * ) & @@v41@@ , v6 ) ; v7 = llvm BasicBlock getTerminator ( v4 ) ; LODWORD ( @@v49@@ ) = Number ; @@v48@@ = _mm_unpacklo_epi64 ( ( __m128i ) ( unsigned __int64 ) v4 , ( __m128i ) v7 ) ; if ( @@v46@@ [ Number ] != @@v47@@ ) { LABEL_5 : i = @@v46@@ [ Number ] + Number ; * ( __m128i * ) @@v46@@ [ Number ] = _mm_load_si128 ( & @@v48@@ ) ; * ( ( _QWORD * ) i - Number ) = @@v49@@ ; @@v46@@ [ Number ] = i ; goto LABEL_8 ; } std vector < std pair < llvm BasicBlock * , llvm SuccIterator < llvm TerminatorInst * , llvm BasicBlock >> > _M_realloc_insert < std pair < llvm BasicBlock * , llvm SuccIterator < llvm TerminatorInst * , llvm BasicBlock >> > ( @@v46@@ , @@v46@@ [ Number ] , & @@v48@@ ) ; for ( i = @@v46@@ [ Number ] ; ; i = @@v46@@ [ Number ] ) { LABEL_8 : v11 = llvm BasicBlock getTerminator ( * ( ( llvm BasicBlock * * ) i - Number ) ) ; v12 = Number ; if ( v11 ) v12 = ( * ( __int64 ( __fastcall * * ) ( __int64 ) ) ( * ( _QWORD * ) v11 + Number L ) ) ( v11 ) ; v13 = @@v46@@ [ Number ] ; v14 = * ( ( _DWORD * ) @@v46@@ [ Number ] - Number ) ; if ( v14 == v12 ) break ; v9 = * ( ( _QWORD * ) @@v46@@ [ Number ] - Number ) ; * ( ( _DWORD * ) @@v46@@ [ Number ] - Number ) = v14 + Number ; v10 = ( llvm BasicBlock * ) ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD ) ) ( * ( _QWORD * ) v9 + Number L ) ) ( v9 , v14 ) ; if ( ( unsigned __int8 ) llvm SmallPtrSetImpl insert_imp ( ( llvm SmallPtrSetImpl * ) & @@v41@@ , v10 ) ) { v30 = llvm BasicBlock getTerminator ( v10 ) ; LODWORD ( @@v49@@ ) = Number ; @@v48@@ = _mm_unpacklo_epi64 ( ( __m128i ) ( unsigned __int64 ) v10 , ( __m128i ) v30 ) ; if ( @@v46@@ [ Number ] != @@v47@@ ) goto LABEL_5 ; std vector < std pair < llvm BasicBlock * , llvm SuccIterator < llvm TerminatorInst * , llvm BasicBlock >> > _M_realloc_insert < std pair < llvm BasicBlock * , llvm SuccIterator < llvm TerminatorInst * , llvm BasicBlock >> > ( @@v46@@ , @@v46@@ [ Number ] , & @@v48@@ ) ; } } v15 = * ( _QWORD * ) ( @@a2@@ + Number ) ; if ( @@v5@@ == v15 || ! v15 ) LABEL_30 : _assert_fail ( String , String , Number , String String ) ; v16 = Number L ; v17 = Number L ; @@v50@@ = Number ; @@v52@@ = Number L ; @@v48@@ = _mm_unpacklo_epi64 ( ( __m128i ) ( unsigned __int64 ) @@v51@@ , ( __m128i ) ( unsigned __int64 ) @@v51@@ ) ; @@v49@@ = Number L ; @@v54@@ = Number L ; @@v51@@ [ Number ] = Number ; @@v51@@ [ Number ] = Number ; @@v51@@ [ Number ] = Number ; @@v51@@ [ Number ] = Number ; * ( _OWORD * ) @@v53@@ = Number L ; LABEL_14 : v18 = @@v46@@ [ Number ] ; if ( v13 - @@v46@@ [ Number ] == v16 - v17 ) goto LABEL_34 ; while ( Number ) { do { if ( llvm DebugFlag ) { if ( ( unsigned __int8 ) llvm isCurrentDebugType ( ( llvm * ) & LC23 , v13 ) ) { v31 = ( llvm raw_ostream * ) llvm dbgs ( ( llvm * ) & LC23 ) ; v32 = ( __m128i * ) * ( ( _QWORD * ) v31 + Number ) ; if ( * ( ( _QWORD * ) v31 + Number ) >= ( unsigned __int64 ) & v32 [ Number ] . m128i_u64 [ Number ] + Number ) { qmemcpy ( & v32 [ Number ] , String , Number ) ; * v32 = _mm_load_si128 ( ( const __m128i * ) & LC61 ) ; * ( ( _QWORD * ) v31 + Number ) += Number L ; } else { v31 = ( llvm raw_ostream * ) llvm raw_ostream write ( v31 , String , Number ) ; } v33 = ( const void * ) llvm Value getName ( * ( ( llvm Value * * ) @@v46@@ [ Number ] - Number ) ) ; v35 = ( void * ) * ( ( _QWORD * ) v31 + Number ) ; v36 = v34 ; if ( * ( ( _QWORD * ) v31 + Number ) >= ( unsigned __int64 ) v35 + v34 ) { memcpy ( v35 , v33 , v34 ) ; v38 = ( _BYTE * ) ( * ( ( _QWORD * ) v31 + Number ) + v36 ) ; * ( ( _QWORD * ) v31 + Number ) = v38 ; } else { v37 = ( llvm raw_ostream * ) llvm raw_ostream write ( v31 , ( const char * ) v33 , v34 ) ; v38 = ( _BYTE * ) * ( ( _QWORD * ) v37 + Number ) ; v31 = v37 ; } if ( * ( ( _QWORD * ) v31 + Number ) >= ( unsigned __int64 ) ( v38 + Number ) ) { * v38 = Number ; ++ * ( ( _QWORD * ) v31 + Number ) ; } else { llvm raw_ostream write ( v31 , String , Number ) ; } } v13 = @@v46@@ [ Number ] ; } if ( ! ( unsigned __int8 ) llvm BranchProbabilityInfo calcUnreachableHeuristics ( @@this@@ , * ( ( llvm BasicBlock * * ) v13 - Number ) ) && ! ( unsigned __int8 ) llvm BranchProbabilityInfo calcMetadataWeights ( @@this@@ , * ( ( llvm BasicBlock * * ) @@v46@@ [ Number ] - Number ) ) && ! llvm BranchProbabilityInfo calcLoopBranchHeuristics ( @@this@@ , * ( ( llvm BasicBlock * * ) @@v46@@ [ Number ] - Number ) ) && ! ( unsigned __int8 ) llvm BranchProbabilityInfo calcPointerHeuristics ( @@this@@ , * ( ( llvm BasicBlock * * ) @@v46@@ [ Number ] - Number ) ) && ! ( unsigned __int8 ) llvm BranchProbabilityInfo calcZeroHeuristics ( @@this@@ , * ( ( llvm BasicBlock * * ) @@v46@@ [ Number ] - Number ) ) ) { llvm BranchProbabilityInfo calcFloatingPointHeuristics ( @@this@@ , * ( ( llvm BasicBlock * * ) @@v46@@ [ Number ] - Number ) ) ; } v13 = @@v46@@ [ Number ] - Number ; v18 = @@v46@@ [ Number ] ; @@v46@@ [ Number ] = ( char * ) v13 ; if ( v13 != @@v46@@ [ Number ] ) { while ( Number ) { while ( Number ) { v23 = llvm BasicBlock getTerminator ( * ( ( llvm BasicBlock * * ) v13 - Number ) ) ; if ( v23 ) { v19 = ( * ( __int64 ( __fastcall * * ) ( __int64 ) ) ( * ( _QWORD * ) v23 + Number L ) ) ( v23 ) ; v13 = @@v46@@ [ Number ] ; v20 = * ( ( _DWORD * ) @@v46@@ [ Number ] - Number ) ; if ( v20 == v19 ) goto LABEL_29 ; } else { v13 = @@v46@@ [ Number ] ; v20 = * ( ( _DWORD * ) @@v46@@ [ Number ] - Number ) ; if ( ! v20 ) { LABEL_29 : v17 = @@v53@@ [ Number ] ; v16 = @@v53@@ [ Number ] ; goto LABEL_14 ; } } v21 = * ( ( _QWORD * ) v13 - Number ) ; * ( ( _DWORD * ) v13 - Number ) = v20 + Number ; v22 = ( void * ) ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD ) ) ( * ( _QWORD * ) v21 + Number L ) ) ( v21 , v20 ) ; if ( ( unsigned __int8 ) llvm SmallPtrSetImpl insert_imp ( ( llvm SmallPtrSetImpl * ) & @@v41@@ , v22 ) ) break ; LABEL_26 : v13 = @@v46@@ [ Number ] ; } v24 = llvm BasicBlock getTerminator ( ( llvm BasicBlock * ) v22 ) ; LODWORD ( @@v40@@ ) = Number ; @@v39@@ = _mm_unpacklo_epi64 ( ( __m128i ) ( unsigned __int64 ) v22 , ( __m128i ) v24 ) ; if ( @@v46@@ [ Number ] == @@v47@@ ) { std vector < std pair < llvm BasicBlock * , llvm SuccIterator < llvm TerminatorInst * , llvm BasicBlock >> > _M_realloc_insert < std pair < llvm BasicBlock * , llvm SuccIterator < llvm TerminatorInst * , llvm BasicBlock >> > ( @@v46@@ , @@v46@@ [ Number ] , & @@v39@@ ) ; goto LABEL_26 ; } v13 = @@v46@@ [ Number ] + Number ; * ( __m128i * ) @@v46@@ [ Number ] = _mm_load_si128 ( & @@v39@@ ) ; * ( ( _QWORD * ) v13 - Number ) = @@v40@@ ; @@v46@@ [ Number ] = ( char * ) v13 ; } } v17 = @@v53@@ [ Number ] ; } while ( v13 - @@v46@@ [ Number ] != @@v53@@ [ Number ] - @@v53@@ [ Number ] ) ; LABEL_34 : if ( v18 == v13 ) break ; v25 = Number L ; while ( * ( _QWORD * ) & v18 [ v25 ] == * ( _QWORD * ) & v17 [ v25 ] && * ( _DWORD * ) & v18 [ v25 + Number ] == * ( _DWORD * ) & v17 [ v25 + Number ] ) { v25 += Number L ; if ( v13 == & v18 [ v25 ] ) goto LABEL_39 ; } } if ( v17 ) LABEL_39 : operator delete ( v17 ) ; llvm SmallPtrSetImpl ~ SmallPtrSetImpl ( ( llvm SmallPtrSetImpl * ) & @@v48@@ ) ; if ( @@v46@@ [ Number ] ) operator delete ( @@v46@@ [ Number ] ) ; llvm SmallPtrSetImpl ~ SmallPtrSetImpl ( ( llvm SmallPtrSetImpl * ) & @@v41@@ ) ; v26 = ( void * ) * ( ( _QWORD * ) @@this@@ + Number ) ; v27 = * ( ( unsigned int * ) @@this@@ + Number ) ; if ( * ( ( void * * ) @@this@@ + Number ) == v26 ) goto LABEL_46 ; v28 = Number * * ( ( _DWORD * ) @@this@@ + Number ) ; if ( v28 < Number ) v28 = Number ; if ( ( unsigned int ) v27 <= v28 ) { LABEL_46 : memset ( v26 , Number , Number * v27 ) ; * ( _QWORD * ) ( ( char * ) @@this@@ + Number ) = Number L ; } else { llvm SmallPtrSetImpl shrink_and_clear ( ( llvm BranchProbabilityInfo * ) ( ( char * ) @@this@@ + Number ) ) ; } return Number L ; }", "source": [{"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r112"}, {"n": "this", "t": {"T": 3, "t": "llvm::BranchProbabilityInfo"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v51", "t": {"T": 2, "n": 4, "s": 16, "t": "__int128"}, "location": "s152"}, {"n": "v50", "t": {"T": 1, "n": "int", "s": 4}, "location": "s160"}, {"n": "v49", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s168"}, {"n": "v48", "t": {"T": 8}, "location": "s184"}, {"n": "v47", "t": {"T": 3, "t": "char"}, "location": "s192"}, {"n": "v46", "t": {"T": 2, "n": 2, "s": 8, "t": "char *"}, "location": "s208"}, {"n": "v45", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s216"}, {"n": "v44", "t": {"T": 2, "n": 4, "s": 16, "t": "__int128"}, "location": "s280"}, {"n": "v43", "t": {"T": 1, "n": "int", "s": 4}, "location": "s288"}, {"n": "v42", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s296"}, {"n": "v41", "t": {"T": 8}, "location": "s312"}, {"n": "v40", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s328"}, {"n": "v39", "t": {"T": 8}, "location": "s344"}, {"n": "v54", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v53", "t": {"T": 2, "n": 2, "s": 8, "t": "void *"}, "location": "s80"}, {"n": "v52", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s88"}]}