Lines Matching full:sink
1 //===-- Sink.cpp - Code Sinking -------------------------------------------===//
14 #include "llvm/Transforms/Scalar/Sink.h"
25 #define DEBUG_TYPE "sink"
63 /// IsAcceptableTarget - Return true if it is possible to sink the instruction
68 assert(SuccToSinkTo && "Candidate sink target is null"); in IsAcceptableTarget()
70 // It's never legal to sink an instruction into an EH-pad block. in IsAcceptableTarget()
79 // We cannot sink a load across a critical edge - there may be stores in in IsAcceptableTarget()
85 // We don't want to sink across a critical edge if we don't dominate the in IsAcceptableTarget()
90 // Don't sink instructions into a loop. in IsAcceptableTarget()
100 /// SinkInstruction - Determine whether it is safe to sink the specified machine
106 // Don't sink static alloca instructions. CodeGen assumes allocas outside the in SinkInstruction()
119 // also sink them down before their first use in the block. This xform has to in SinkInstruction()
124 // SuccToSinkTo - This is the successor to sink this instruction to, once we in SinkInstruction()
162 // If we couldn't find a block to sink to, ignore this instruction. in SinkInstruction()
166 LLVM_DEBUG(dbgs() << "Sink" << *Inst << " ("; in SinkInstruction()
190 Instruction *Inst = &*I; // The instruction to sink. in ProcessBlock()
271 INITIALIZE_PASS_BEGIN(SinkingLegacyPass, "sink", "Code sinking", false, false)
275 INITIALIZE_PASS_END(SinkingLegacyPass, "sink", "Code sinking", false, false) in INITIALIZE_PASS_DEPENDENCY()