Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:PHINode

26 Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) {
83 PHINode *NewLHS = nullptr, *NewRHS = nullptr;
85 NewLHS = PHINode::Create(LHSType, PN.getNumIncomingValues(),
93 NewRHS = PHINode::Create(RHSType, PN.getNumIncomingValues(),
132 Instruction *InstCombiner::FoldPHIArgGEPIntoPHI(PHINode &PN) {
203 SmallVector<PHINode*, 16> OperandPhis(FixedOperands.size());
209 PHINode *NewPN = PHINode::Create(FirstOp->getType(), e,
227 if (PHINode *OpPhi = OperandPhis[op])
287 Instruction *InstCombiner::FoldPHIArgLoadIntoPHI(PHINode &PN) {
348 PHINode *NewPN = PHINode::Create(FirstLI->getOperand(0)->getType(),
391 Instruction *InstCombiner::FoldPHIArgOpIntoPHI(PHINode &PN) {
456 PHINode *NewPN = PHINode::Create(FirstInst->getOperand(0)->getType(),
508 static bool DeadPHICycle(PHINode *PN,
509 SmallPtrSet<PHINode*, 16> &PotentiallyDeadPHIs) {
521 if (PHINode *PU = dyn_cast<PHINode>(PN->user_back()))
530 static bool PHIsEqualValue(PHINode *PN, Value *NonPhiInVal,
531 SmallPtrSet<PHINode*, 16> &ValueEqualPHIs) {
544 if (PHINode *OpPN = dyn_cast<PHINode>(Op)) {
575 PHINode *PN; // The PHI that was lowered.
579 LoweredPHIRecord(PHINode *pn, unsigned Sh, Type *Ty)
583 LoweredPHIRecord(PHINode *pn, unsigned Sh)
598 return DenseMapInfo<PHINode*>::getHashValue(Val.PN) ^ (Val.Shift>>3) ^
618 Instruction *InstCombiner::SliceUpIllegalIntegerPHI(PHINode &FirstPhi) {
627 SmallVector<PHINode*, 8> PHIsToSlice;
628 SmallPtrSet<PHINode*, 8> PHIsInspected;
634 PHINode *PN = PHIsToSlice[PHIId];
656 if (PHINode *UserPN = dyn_cast<PHINode>(UserI)) {
698 DenseMap<LoweredPHIRecord, PHINode*> ExtractedVals;
702 PHINode *PN = PHIsToSlice[PHIId];
706 PHINode *EltPHI;
713 EltPHI = PHINode::Create(Ty, PN->getNumIncomingValues(),
736 if (PHINode *InPHI = dyn_cast<PHINode>(PN)) {
760 if (PHINode *OldInVal = dyn_cast<PHINode>(PN->getIncomingValue(i)))
788 // PHINode simplification
790 Instruction *InstCombiner::visitPHINode(PHINode &PN) {
811 if (PHINode *PU = dyn_cast<PHINode>(PHIUser)) {
812 SmallPtrSet<PHINode*, 16> PotentiallyDeadPHIs;
841 isa<PHINode>(PN.getIncomingValue(InValNo)))
851 if (OpVal != NonPhiInVal && !isa<PHINode>(OpVal))
859 SmallPtrSet<PHINode*, 16> ValueEqualPHIs;
870 PHINode *FirstPN = cast<PHINode>(PN.getParent()->begin());