Lines Matching refs:ForwardingAction

133 struct ForwardingAction {  struct
155 static ForwardingAction notApplicable() { in notApplicable() argument
156 ForwardingAction Result; in notApplicable()
162 static ForwardingAction cannotForward() { in cannotForward() argument
163 ForwardingAction Result; in cannotForward()
169 static ForwardingAction triviallyForwardable(bool IsProfitable, Value *Val) { in triviallyForwardable() argument
170 ForwardingAction Result; in triviallyForwardable()
181 static ForwardingAction canForward(std::function<bool()> Execute, in canForward() argument
184 ForwardingAction Result; in canForward()
202 using MemoizationTy = DenseMap<ForwardingAction::KeyTy, ForwardingAction>;
457 ForwardingAction forwardKnownLoad(ScopStmt *TargetStmt, Instruction *Inst, in forwardKnownLoad()
463 return ForwardingAction::notApplicable(); in forwardKnownLoad()
467 return ForwardingAction::notApplicable(); in forwardKnownLoad()
476 return ForwardingAction::cannotForward(); in forwardKnownLoad()
502 return ForwardingAction::canForward( in forwardKnownLoad()
529 return ForwardingAction::notApplicable(); in forwardKnownLoad()
575 return ForwardingAction::notApplicable(); in forwardKnownLoad()
593 return ForwardingAction::canForward( in forwardKnownLoad()
610 ForwardingAction reloadKnownContent(ScopStmt *TargetStmt, Instruction *Inst, in reloadKnownContent()
616 return ForwardingAction::notApplicable(); in reloadKnownContent()
638 return ForwardingAction::notApplicable(); in reloadKnownContent()
653 return ForwardingAction::canForward(ExecAction, {}, true); in reloadKnownContent()
666 ForwardingAction forwardSpeculatable(ScopStmt *TargetStmt, in forwardSpeculatable()
671 return ForwardingAction::notApplicable(); in forwardSpeculatable()
686 return ForwardingAction::notApplicable(); in forwardSpeculatable()
688 SmallVector<ForwardingAction::KeyTy, 4> Depends; in forwardSpeculatable()
695 return ForwardingAction::cannotForward(); in forwardSpeculatable()
721 return ForwardingAction::canForward(ExecAction, Depends, true); in forwardSpeculatable()
736 ForwardingAction forwardTreeImpl(ScopStmt *TargetStmt, Value *UseVal, in forwardTreeImpl()
750 return ForwardingAction::triviallyForwardable(false, UseVal); in forwardTreeImpl()
766 return ForwardingAction::triviallyForwardable(false, UseVal); in forwardTreeImpl()
771 return ForwardingAction::cannotForward(); in forwardTreeImpl()
776 return ForwardingAction::triviallyForwardable(false, UseVal); in forwardTreeImpl()
796 return ForwardingAction::canForward(ExecAction, {}, false); in forwardTreeImpl()
811 return ForwardingAction::cannotForward(); in forwardTreeImpl()
816 ForwardingAction SpeculativeResult = in forwardTreeImpl()
821 ForwardingAction KnownResult = forwardKnownLoad( in forwardTreeImpl()
826 ForwardingAction ReloadResult = reloadKnownContent( in forwardTreeImpl()
834 return ForwardingAction::cannotForward(); in forwardTreeImpl()
862 ForwardingAction Action = in forwardTree()
882 decltype(std::declval<ForwardingAction>().Depends.begin()); in applyForwardingActions()
883 using EdgeTy = std::pair<ForwardingAction *, ChildItTy>; in applyForwardingActions()
885 DenseSet<ForwardingAction::KeyTy> Visited; in applyForwardingActions()
887 SmallVector<ForwardingAction *, 32> Ordered; in applyForwardingActions()
891 ForwardingAction *RootAction = &ForwardingActions[{UseVal, Stmt}]; in applyForwardingActions()
906 ForwardingAction *TopAction = Top.first; in applyForwardingActions()
915 ForwardingAction::KeyTy Key = *TopEdge; in applyForwardingActions()
926 ForwardingAction *ChildAction = &ForwardingActions[Key]; in applyForwardingActions()