Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Transforms/Scalar/LICM.cpp
Show First 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | |||||
bool FreeInLoop = false; | bool FreeInLoop = false; | ||||
if (!I.mayHaveSideEffects() && | if (!I.mayHaveSideEffects() && | ||||
isNotUsedOrFreeInLoop(I, CurLoop, SafetyInfo, TTI, FreeInLoop) && | isNotUsedOrFreeInLoop(I, CurLoop, SafetyInfo, TTI, FreeInLoop) && | ||||
canSinkOrHoistInst(I, AA, DT, CurLoop, CurAST, MSSAU, true, &Flags, | canSinkOrHoistInst(I, AA, DT, CurLoop, CurAST, MSSAU, true, &Flags, | ||||
ORE)) { | ORE)) { | ||||
if (sink(I, LI, DT, CurLoop, SafetyInfo, MSSAU, ORE)) { | if (sink(I, LI, DT, CurLoop, SafetyInfo, MSSAU, ORE)) { | ||||
if (!FreeInLoop) { | if (!FreeInLoop) { | ||||
++II; | ++II; | ||||
salvageDebugInfoOrMarkUndef(I); | salvageDebugInfo(I); | ||||
eraseInstruction(I, *SafetyInfo, CurAST, MSSAU); | eraseInstruction(I, *SafetyInfo, CurAST, MSSAU); | ||||
} | } | ||||
Changed = true; | Changed = true; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
if (MSSAU && VerifyMemorySSA) | if (MSSAU && VerifyMemorySSA) | ||||
▲ Show 20 Lines • Show All 91 Lines • Show Last 20 Lines |