Lines Matching defs:hoist

22 // hoist instructions to a basic block with more than two successors, as well as
25 // Limitations: This pass does not hoist fully redundant expressions because
26 // they are already handled by GVN-PRE. It is advisable to run gvn-hoist before
79 #define DEBUG_TYPE "gvn-hoist"
92 cl::desc("Max number of instructions to hoist "
96 "gvn-hoist-max-bbs", cl::Hidden, cl::init(4),
101 "gvn-hoist-max-depth", cl::Hidden, cl::init(100),
106 MaxChainLength("gvn-hoist-max-chain-length", cl::Hidden, cl::init(10),
107 cl::desc("Maximum length of dependent chains to hoist "
116 // Each element of a hoisting list contains the basic block where to hoist and
315 // Return true when it is safe to hoist a memory load or store U from OldPt
320 // Return true when it is safe to hoist scalar instructions from all blocks in
329 // to be hoisted. Since this point does not change during gvn-hoist,
343 // Check if it is safe to hoist values tracked by CHI in the range
381 // them Then collect all the instructions which are safe to hoist and see if
464 // HoistPt. When limiting the number of hoisted expressions, one could hoist
499 std::pair<unsigned, unsigned> hoist(HoistingPointList &HPL);
535 // hoist all scalars dependent on the hoisted ld/st.
625 // Impossible to hoist with exceptions on the path.
631 // a hoist barrier can be hoisted.
743 // No side effects: it is safe to hoist.
769 // uses, it is not safe to hoist the use above the def.
1065 std::pair<unsigned, unsigned> GVNHoist::hoist(HoistingPointList &HPL) {
1155 // Only hoist the first instructions in BB up to MaxDepthInBB. Hoisting
1183 // Do not hoist scalars past calls that may write to memory because
1198 return hoist(HPL);