Lines Matching defs:sink
26 // we can hoist it or sink it like any other instruction.
179 static bool sink(Instruction &I, LoopInfo *LI, DominatorTree *DT,
425 // Don't sink stores from loops with coroutine suspend instructions.
426 // LICM would sink instructions into the default destination of
459 // us to sink instructions in one pass, without iteration. After sinking
476 // Don't sink stores from loops without dedicated block exits. Exits
551 /// definitions, allowing us to sink a loop body in one pass without iteration.
593 // Check to see if we can sink this instruction to the exit blocks
605 if (sink(I, LI, DT, CurLoop, SafetyInfo, MSSAU, ORE)) {
1108 /// sink a given instruction out of a loop. Does not address legality
1173 return false; // Don't sink/hoist volatile or ordered atomic loads!
1207 // Don't sink or hoist dbg info; it's legal, but not useful.
1211 // Don't sink calls which can throw.
1217 // enclosing control flows. It is not safe to hoist or sink such operations
1243 // writes to this memory in the loop, we can hoist or sink.
1256 // in the loop, we can hoist or sink the call as appropriate.
1262 // sink the call.
1271 return false; // Don't sink/hoist volatile or ordered atomic store!
1379 /// the loop. If this is true, we can sink the instruction to the exit
1394 // We cannot sink uses in catchswitches.
1398 // We need to sink a callsite to a unique funclet. Avoid sinking if the
1632 static bool sink(Instruction &I, LoopInfo *LI, DominatorTree *DT,
1727 // As we sink the instruction out of the BB, drop its debug location.
1782 /// Only sink or hoist an instruction if it is not a trapping instruction,
2128 // If a store dominates all exit blocks, it is safe to sink.
2200 // If we've still failed to prove we can sink the store, hoist the load
2383 // For now, only sink if there are no Defs in the loop, and the existing ones
2385 // FIXME: Increase precision: Safe to sink if Use post dominates the Def;