Lines Matching refs:hoist
20 // we can hoist it or sink it like any other instruction.
80 static bool hoist(Instruction &I, BasicBlock *Preheader);
245 // instructions, we perform another pass to hoist them out of the loop.
360 /// uses, allowing us to hoist a loop body in one pass without iteration.
395 // is safe to hoist the instruction.
401 Changed |= hoist(I, CurLoop->getLoopPreheader());
432 // Compute funclet colors if we might sink/hoist in a function with a funclet
447 // Loads have extra constraints we have to verify before we can hoist them.
450 return false; // Don't hoist volatile/atomic loads!
459 // Don't hoist loads which have may-aliased stores in loop.
469 // Don't sink or hoist dbg info; it's legal, but not useful.
484 // writes to this memory in the loop, we can hoist or sink.
494 // in the loop, we can hoist or sink the call as appropriate.
505 // FIXME: This should use mod/ref information to see if we can hoist or
718 /// is safe to hoist, this instruction is called to do the dirty work.
720 static bool hoist(Instruction &I, BasicBlock *Preheader) {
736 /// Only sink or hoist an instruction if it is not a trapping instruction,
758 // which does not execute this instruction, so we can't hoist it.