Lines Matching full:condition
25 // After this transformation the condition of the guard is loop invariant, so
26 // loop-unswitch can later unswitch the loop by this condition which basically
27 // predicates the loop by the widened condition:
45 // monotonic. Given a monotonic condition it's tempting to replace the induction
46 // variable in the condition with its value on the last iteration. But this
79 // By the definition of guards we can rewrite the guard condition to:
84 // And the condition above can be simplified to G(Start) && M.
92 // B(I) is true because it's the backedge condition.
93 // G(I) is true because the backedge is guarded by this condition.
97 // Note that we can use anything stronger than M, i.e. any condition which
102 // * The loop has a single latch with the condition of the form:
105 // * The guard condition is of the form
141 // So the widened condition is:
144 // Similarly for ule condition the widened condition is:
147 // For slt condition the widened condition is:
150 // For sle condition the widened condition is:
156 // * The loop has a single latch with the condition of the form:
158 // * The guard condition is of the form
169 // So the widened condition is:
171 // Similarly for sgt condition the widened condition is:
173 // For uge condition the widened condition is:
175 // For sge condition the widened condition is:
544 // Generate the widened condition for the forward loop:
547 // where <pred> depends on the latch condition predicate. See the file
623 // Generate the widened condition for CountDownLoop:
650 /// If ICI can be widened to a loop invariant condition emits the loop
651 /// invariant condition in the loop preheader and return it, otherwise
656 LLVM_DEBUG(dbgs() << "Analyzing ICmpInst condition:\n");
659 // parseLoopStructure guarantees that the latch condition is:
665 LLVM_DEBUG(dbgs() << "Failed to parse the loop latch condition!\n");
743 // Emit the new guard condition
778 // Emit the new guard condition
829 LLVM_DEBUG(dbgs() << "Failed to match the latch condition!\n");
834 LLVM_DEBUG(dbgs() << "Failed to parse the loop latch condition!\n");
976 // a widenable condition which seems to control execution of this loop. Note
978 // profitable to widen a branch before a maythrow call with a condition
1032 // The transformation performed here aims to widen a widenable condition
1069 // condition above the loop. If we have a widenable exit within the loop
1097 // change a loop-invariant condition to a loop-varying one.
1148 // If we found a widenable exit condition, do two things:
1149 // 1) fold the widened exit test into the widenable condition
1182 // Always return `true` since we have moved the WidenableBR's condition.