reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2605 VE.setInstructionID(&I); 2606 switch (I.getOpcode()) { 2608 if (Instruction::isCast(I.getOpcode())) { 2610 if (!pushValueAndType(I.getOperand(0), InstID, Vals)) 2612 Vals.push_back(VE.getTypeID(I.getType())); 2613 Vals.push_back(getEncodedCastOpcode(I.getOpcode())); 2615 assert(isa<BinaryOperator>(I) && "Unknown instruction!"); 2617 if (!pushValueAndType(I.getOperand(0), InstID, Vals)) 2619 pushValue(I.getOperand(1), InstID, Vals); 2620 Vals.push_back(getEncodedBinaryOpcode(I.getOpcode())); 2621 uint64_t Flags = getOptimizationFlags(&I); 2631 if (!pushValueAndType(I.getOperand(0), InstID, Vals)) 2633 Vals.push_back(getEncodedUnaryOpcode(I.getOpcode())); 2634 uint64_t Flags = getOptimizationFlags(&I); 2645 auto &GEPInst = cast<GetElementPtrInst>(I); 2648 for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i) 2649 pushValueAndType(I.getOperand(i), InstID, Vals); 2654 pushValueAndType(I.getOperand(0), InstID, Vals); 2655 const ExtractValueInst *EVI = cast<ExtractValueInst>(&I); 2661 pushValueAndType(I.getOperand(0), InstID, Vals); 2662 pushValueAndType(I.getOperand(1), InstID, Vals); 2663 const InsertValueInst *IVI = cast<InsertValueInst>(&I); 2669 pushValueAndType(I.getOperand(1), InstID, Vals); 2670 pushValue(I.getOperand(2), InstID, Vals); 2671 pushValueAndType(I.getOperand(0), InstID, Vals); 2672 uint64_t Flags = getOptimizationFlags(&I); 2679 pushValueAndType(I.getOperand(0), InstID, Vals); 2680 pushValueAndType(I.getOperand(1), InstID, Vals); 2684 pushValueAndType(I.getOperand(0), InstID, Vals); 2685 pushValue(I.getOperand(1), InstID, Vals); 2686 pushValueAndType(I.getOperand(2), InstID, Vals); 2690 pushValueAndType(I.getOperand(0), InstID, Vals); 2691 pushValue(I.getOperand(1), InstID, Vals); 2692 pushValue(I.getOperand(2), InstID, Vals); 2698 pushValueAndType(I.getOperand(0), InstID, Vals); 2699 pushValue(I.getOperand(1), InstID, Vals); 2700 Vals.push_back(cast<CmpInst>(I).getPredicate()); 2701 uint64_t Flags = getOptimizationFlags(&I); 2710 unsigned NumOperands = I.getNumOperands(); 2714 if (!pushValueAndType(I.getOperand(0), InstID, Vals)) 2718 pushValueAndType(I.getOperand(i), InstID, Vals); 2725 const BranchInst &II = cast<BranchInst>(I); 2736 const SwitchInst &SI = cast<SwitchInst>(I); 2748 Vals.push_back(VE.getTypeID(I.getOperand(0)->getType())); 2750 pushValue(I.getOperand(0), InstID, Vals); 2751 for (unsigned i = 1, e = I.getNumOperands(); i != e; ++i) 2752 Vals.push_back(VE.getValueID(I.getOperand(i))); 2756 const InvokeInst *II = cast<InvokeInst>(&I); 2774 pushValue(I.getOperand(i), InstID, Vals); // fixed param. 2780 pushValueAndType(I.getOperand(i), InstID, Vals); // vararg 2786 pushValueAndType(I.getOperand(0), InstID, Vals); 2790 const auto &CRI = cast<CleanupReturnInst>(I); 2798 const auto &CRI = cast<CatchReturnInst>(I); 2805 const auto &FuncletPad = cast<FuncletPadInst>(I); 2818 const auto &CatchSwitch = cast<CatchSwitchInst>(I); 2832 const CallBrInst *CBI = cast<CallBrInst>(&I); 2856 pushValue(I.getOperand(i), InstID, Vals); // fixed param. 2862 pushValueAndType(I.getOperand(i), InstID, Vals); // vararg 2872 const PHINode &PN = cast<PHINode>(I); 2884 uint64_t Flags = getOptimizationFlags(&I); 2895 const LandingPadInst &LP = cast<LandingPadInst>(I); 2912 const AllocaInst &AI = cast<AllocaInst>(I); 2914 Vals.push_back(VE.getTypeID(I.getOperand(0)->getType())); 2915 Vals.push_back(VE.getValueID(I.getOperand(0))); // size. 2928 if (cast<LoadInst>(I).isAtomic()) { 2930 pushValueAndType(I.getOperand(0), InstID, Vals); 2933 if (!pushValueAndType(I.getOperand(0), InstID, Vals)) // ptr 2936 Vals.push_back(VE.getTypeID(I.getType())); 2937 Vals.push_back(Log2_32(cast<LoadInst>(I).getAlignment())+1); 2938 Vals.push_back(cast<LoadInst>(I).isVolatile()); 2939 if (cast<LoadInst>(I).isAtomic()) { 2940 Vals.push_back(getEncodedOrdering(cast<LoadInst>(I).getOrdering())); 2941 Vals.push_back(getEncodedSyncScopeID(cast<LoadInst>(I).getSyncScopeID())); 2945 if (cast<StoreInst>(I).isAtomic()) 2949 pushValueAndType(I.getOperand(1), InstID, Vals); // ptrty + ptr 2950 pushValueAndType(I.getOperand(0), InstID, Vals); // valty + val 2951 Vals.push_back(Log2_32(cast<StoreInst>(I).getAlignment())+1); 2952 Vals.push_back(cast<StoreInst>(I).isVolatile()); 2953 if (cast<StoreInst>(I).isAtomic()) { 2954 Vals.push_back(getEncodedOrdering(cast<StoreInst>(I).getOrdering())); 2956 getEncodedSyncScopeID(cast<StoreInst>(I).getSyncScopeID())); 2961 pushValueAndType(I.getOperand(0), InstID, Vals); // ptrty + ptr 2962 pushValueAndType(I.getOperand(1), InstID, Vals); // cmp. 2963 pushValue(I.getOperand(2), InstID, Vals); // newval. 2964 Vals.push_back(cast<AtomicCmpXchgInst>(I).isVolatile()); 2966 getEncodedOrdering(cast<AtomicCmpXchgInst>(I).getSuccessOrdering())); 2968 getEncodedSyncScopeID(cast<AtomicCmpXchgInst>(I).getSyncScopeID())); 2970 getEncodedOrdering(cast<AtomicCmpXchgInst>(I).getFailureOrdering())); 2971 Vals.push_back(cast<AtomicCmpXchgInst>(I).isWeak()); 2975 pushValueAndType(I.getOperand(0), InstID, Vals); // ptrty + ptr 2976 pushValue(I.getOperand(1), InstID, Vals); // val. 2978 getEncodedRMWOperation(cast<AtomicRMWInst>(I).getOperation())); 2979 Vals.push_back(cast<AtomicRMWInst>(I).isVolatile()); 2980 Vals.push_back(getEncodedOrdering(cast<AtomicRMWInst>(I).getOrdering())); 2982 getEncodedSyncScopeID(cast<AtomicRMWInst>(I).getSyncScopeID())); 2986 Vals.push_back(getEncodedOrdering(cast<FenceInst>(I).getOrdering())); 2987 Vals.push_back(getEncodedSyncScopeID(cast<FenceInst>(I).getSyncScopeID())); 2990 const CallInst &CI = cast<CallInst>(I); 3000 unsigned Flags = getOptimizationFlags(&I); 3032 Vals.push_back(VE.getTypeID(I.getOperand(0)->getType())); // valistty 3033 pushValue(I.getOperand(0), InstID, Vals); // valist. 3034 Vals.push_back(VE.getTypeID(I.getType())); // restype.