mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106707 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		@@ -404,7 +404,7 @@ Instruction *InstCombiner::visitLShr(BinaryOperator &I) {
 | 
				
			|||||||
          isPowerOf2_32(BitWidth) && Log2_32(BitWidth) == Op1C->getZExtValue()){
 | 
					          isPowerOf2_32(BitWidth) && Log2_32(BitWidth) == Op1C->getZExtValue()){
 | 
				
			||||||
        bool isCtPop = II->getIntrinsicID() == Intrinsic::ctpop;
 | 
					        bool isCtPop = II->getIntrinsicID() == Intrinsic::ctpop;
 | 
				
			||||||
        Constant *RHS = ConstantInt::getSigned(Op0->getType(), isCtPop ? -1:0);
 | 
					        Constant *RHS = ConstantInt::getSigned(Op0->getType(), isCtPop ? -1:0);
 | 
				
			||||||
        Value *Cmp = Builder->CreateICmpEQ(II->getOperand(1), RHS);
 | 
					        Value *Cmp = Builder->CreateICmpEQ(II->getArgOperand(0), RHS);
 | 
				
			||||||
        return new ZExtInst(Cmp, II->getType());
 | 
					        return new ZExtInst(Cmp, II->getType());
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -559,7 +559,7 @@ bool CodeGenPrepare::OptimizeCallInst(CallInst *CI) {
 | 
				
			|||||||
  // Lower all uses of llvm.objectsize.*
 | 
					  // Lower all uses of llvm.objectsize.*
 | 
				
			||||||
  IntrinsicInst *II = dyn_cast<IntrinsicInst>(CI);
 | 
					  IntrinsicInst *II = dyn_cast<IntrinsicInst>(CI);
 | 
				
			||||||
  if (II && II->getIntrinsicID() == Intrinsic::objectsize) {
 | 
					  if (II && II->getIntrinsicID() == Intrinsic::objectsize) {
 | 
				
			||||||
    bool Min = (cast<ConstantInt>(II->getOperand(2))->getZExtValue() == 1);
 | 
					    bool Min = (cast<ConstantInt>(II->getArgOperand(1))->getZExtValue() == 1);
 | 
				
			||||||
    const Type *ReturnTy = CI->getType();
 | 
					    const Type *ReturnTy = CI->getType();
 | 
				
			||||||
    Constant *RetVal = ConstantInt::get(ReturnTy, Min ? 0 : -1ULL);    
 | 
					    Constant *RetVal = ConstantInt::get(ReturnTy, Min ? 0 : -1ULL);    
 | 
				
			||||||
    CI->replaceAllUsesWith(RetVal);
 | 
					    CI->replaceAllUsesWith(RetVal);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -253,7 +253,7 @@ static bool isDynamicConstant(Value *V, CallInst *CI, ReturnInst *RI) {
 | 
				
			|||||||
    // If we are passing this argument into call as the corresponding
 | 
					    // If we are passing this argument into call as the corresponding
 | 
				
			||||||
    // argument operand, then the argument is dynamically constant.
 | 
					    // argument operand, then the argument is dynamically constant.
 | 
				
			||||||
    // Otherwise, we cannot transform this function safely.
 | 
					    // Otherwise, we cannot transform this function safely.
 | 
				
			||||||
    if (CI->getOperand(ArgNo+1) == Arg)
 | 
					    if (CI->getArgOperand(ArgNo) == Arg)
 | 
				
			||||||
      return true;
 | 
					      return true;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -455,7 +455,7 @@ bool TailCallElim::ProcessReturningBlock(ReturnInst *Ret, BasicBlock *&OldEntry,
 | 
				
			|||||||
  // required PHI nodes, add entries into the PHI node for the actual
 | 
					  // required PHI nodes, add entries into the PHI node for the actual
 | 
				
			||||||
  // parameters passed into the tail-recursive call.
 | 
					  // parameters passed into the tail-recursive call.
 | 
				
			||||||
  for (unsigned i = 0, e = CI->getNumOperands()-1; i != e; ++i)
 | 
					  for (unsigned i = 0, e = CI->getNumOperands()-1; i != e; ++i)
 | 
				
			||||||
    ArgumentPHIs[i]->addIncoming(CI->getOperand(i+1), BB);
 | 
					    ArgumentPHIs[i]->addIncoming(CI->getArgOperand(i), BB);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // If we are introducing an accumulator variable to eliminate the recursion,
 | 
					  // If we are introducing an accumulator variable to eliminate the recursion,
 | 
				
			||||||
  // do so now.  Note that we _know_ that no subsequent tail recursion
 | 
					  // do so now.  Note that we _know_ that no subsequent tail recursion
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user