Home | History | Annotate | Download | only in Scalar

Lines Matching full:loopunswitch

1 //===-- LoopUnswitch.cpp - Hoist loop-invariant conditionals in loop ------===//
124 class LoopUnswitch : public LoopPass {
151 explicit LoopUnswitch(bool Os = false) :
327 char LoopUnswitch::ID = 0;
328 INITIALIZE_PASS_BEGIN(LoopUnswitch, "loop-unswitch", "Unswitch loops",
333 INITIALIZE_PASS_END(LoopUnswitch, "loop-unswitch", "Unswitch loops",
337 return new LoopUnswitch(Os);
376 bool LoopUnswitch::runOnLoop(Loop *L, LPPassManager &LPM_Ref) {
399 bool LoopUnswitch::processCurrentLoop() {
561 bool LoopUnswitch::IsTrivialUnswitchCondition(Value *Cond, Constant **Val,
635 bool LoopUnswitch::UnswitchIfProfitable(Value *LoopCond, Constant *Val) {
681 void LoopUnswitch::EmitPreheaderBranchOnCondition(Value *LIC, Constant *Val,
709 void LoopUnswitch::UnswitchTrivialCondition(Loop *L, Value *Cond,
752 void LoopUnswitch::SplitExitEdges(Loop *L,
775 void LoopUnswitch::UnswitchNontrivialCondition(Value *LIC, Constant *Val,
954 void LoopUnswitch::RemoveBlockIfDead(BasicBlock *BB,
1068 void LoopUnswitch::RemoveLoopFromHierarchy(Loop *L) {
1076 void LoopUnswitch::RewriteLoopBodyWithConditionConstant(Loop *L, Value *LIC,
1205 void LoopUnswitch::SimplifyCode(std::vector<Instruction*> &Worklist, Loop *L) {