Lines Matching defs:hoist
20 // we can hoist it or sink it like any other instruction.
137 /// visit definitions before uses, allowing us to hoist a loop body in one
156 /// hoist - When an instruction is found to only use loop invariant operands
157 /// that is safe to hoist, this instruction is called to do the dirty work.
159 void hoist(Instruction &I);
161 /// isSafeToExecuteUnconditionally - Only sink or hoist an instruction if it
266 // instructions, we perform another pass to hoist them out of the loop.
349 /// before uses, allowing us to hoist a loop body in one pass without iteration.
378 // is safe to hoist the instruction.
382 hoist(I);
394 // Loads have extra constraints we have to verify before we can hoist them.
397 return false; // Don't hoist volatile/atomic loads!
406 // Don't hoist loads which have may-aliased stores in loop.
413 // Don't sink or hoist dbg info; it's legal, but not useful.
423 // in the loop, we can hoist or sink the call as appropriate.
436 // FIXME: This should use mod/ref information to see if we can hoist or
597 /// hoist - When an instruction is found to only use loop invariant operands
598 /// that is safe to hoist, this instruction is called to do the dirty work.
600 void LICM::hoist(Instruction &I) {
613 /// isSafeToExecuteUnconditionally - Only sink or hoist an instruction if it is
618 // If it is not a trapping instruction, it is always safe to hoist.
634 // which does not execute this instruction, so we can't hoist it.