| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | CorrelatedValuePropagation.cpp | 361 if (constantFoldCmp(Cmp, LVI)) in processCmp() 365 if (processICmp(ICmp, LVI)) in processCmp() 552 processBinOp(BO, LVI); in processAbsIntrinsic() 593 processBinOp(BO, LVI); in processOverflowIntrinsic() 613 processBinOp(BO, LVI); in processSaturatingInst() 713 if (isNonNegative(V, LVI, CxtI)) in getDomain() 715 if (isNonPositive(V, LVI, CxtI)) in getDomain() 863 processUDivOrURem(URem, LVI); in processSRem() 920 processUDivOrURem(UDiv, LVI); in processSDiv() 932 if (processSDiv(Instr, LVI)) in processSDivOrSRem() [all …]
|
| H A D | JumpThreading.cpp | 329 LVI->printLVI(F, DTU.getDomTree(), dbgs()); in runOnFunction() 342 auto &LVI = AM.getResult<LazyValueAnalysis>(F); in run() local 359 LVI.printLVI(F, DTU.getDomTree(), dbgs()); in run() 379 LVI = LVI_; in runImpl() 445 LVI->eraseBlock(&BB); in runImpl() 466 LVI->eraseBlock(&BB); in runImpl() 873 LVI->getPredicateOnEdge(Pred, CmpLHS, in computeValueKnownInPredecessorsImpl() 979 Constant *CI = LVI->getConstant(V, CxtI); in computeValueKnownInPredecessorsImpl() 1972 LVI->eraseBlock(SinglePred); in maybeMergeBasicBlockIntoOnlyPred() 2003 LVI->eraseBlock(BB); in maybeMergeBasicBlockIntoOnlyPred() [all …]
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | SplitKit.cpp | 243 assert(LVI->start == LVI->valno->def && "Dangling Segment start"); in calcLiveBlockInfo() 250 while (LVI->end < Stop) { in calcLiveBlockInfo() 252 if (++LVI == LVE || LVI->start >= Stop) { in calcLiveBlockInfo() 275 assert(LVI->start == LVI->valno->def && "Dangling Segment start"); in calcLiveBlockInfo() 277 BI.FirstDef = LVI->start; in calcLiveBlockInfo() 283 if (LVI == LVE) in calcLiveBlockInfo() 288 if (LVI->end == Stop && ++LVI == LVE) in calcLiveBlockInfo() 292 if (LVI->start < Stop) in calcLiveBlockInfo() 315 LVI = li->advanceTo(LVI, Stop); in countLiveBlocks() 316 if (LVI == LVE) in countLiveBlocks() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | LowerSwitch.cpp | 356 AssumptionCache *AC, LazyValueInfo *LVI) { in ProcessSwitchInst() argument 412 const ConstantRange LVIRange = LVI->getConstantRange(Val, SI); in ProcessSwitchInst() 530 bool LowerSwitch(Function &F, LazyValueInfo *LVI, AssumptionCache *AC) { in LowerSwitch() argument 543 ProcessSwitchInst(SI, DeleteList, AC, LVI); in LowerSwitch() 548 LVI->eraseBlock(BB); in LowerSwitch() 592 LazyValueInfo *LVI = &getAnalysis<LazyValueInfoWrapperPass>().getLVI(); in runOnFunction() local 595 return LowerSwitch(F, LVI, AC); in runOnFunction() 600 LazyValueInfo *LVI = &AM.getResult<LazyValueAnalysis>(F); in run() local 602 return LowerSwitch(F, LVI, AC) ? PreservedAnalyses::none() in run()
|
| /llvm-project-15.0.7/llvm/test/Analysis/LazyValueAnalysis/ |
| H A D | lvi-after-jumpthreading.ll | 4 ; Testing LVI cache after jump-threading 12 ; CHECK-LABEL: LVI for function 'test1': 48 ; CHECK-LABEL: LVI for function 'test2': 106 ; LVI info as LVI info for the beginning of do block. LVI info for %i is Range[0,1) 109 ; CHECK-LABEL: LVI for function 'test3': 153 ; When we do so, LVI for cont cannot be the one for the merged do block. 155 ; CHECK-LABEL: LVI for function 'test4':
|
| H A D | invalidation.ll | 2 ; away. Sadly, you can neither print nor verify LVI so we just have to require
|
| /llvm-project-15.0.7/llvm/test/CodeGen/X86/ |
| H A D | lvi-hardening-inline-asm.ll | 88 ; WARN: warning: Instruction may be vulnerable to LVI 95 ; WARN: warning: Instruction may be vulnerable to LVI 102 ; WARN: warning: Instruction may be vulnerable to LVI 120 ; WARN: warning: Instruction may be vulnerable to LVI 127 ; WARN: warning: Instruction may be vulnerable to LVI 134 ; WARN: warning: Instruction may be vulnerable to LVI
|
| H A D | O0-pipeline.ll | 76 ; CHECK-NEXT: X86 Load Value Injection (LVI) Ret-Hardening
|
| H A D | opt-pipeline.ll | 160 ; CHECK-NEXT: X86 Load Value Injection (LVI) Load Hardening 209 ; CHECK-NEXT: X86 Load Value Injection (LVI) Ret-Hardening
|
| /llvm-project-15.0.7/llvm/test/Transforms/CorrelatedValuePropagation/ |
| H A D | alloca.ll | 8 ; CHECK-NOT: LVI Getting edge value %a.i = alloca i64, align 8 at 'for.body' 9 ; CHECK-NOT: LVI Getting edge value %tmp = bitcast i64* %a.i to i8* from 'for.cond' to 'for.body'
|
| /llvm-project-15.0.7/llvm/test/Transforms/JumpThreading/ |
| H A D | thread-cmp.ll | 2 ; When simplify a branch based on LVI predicates, we should replace the 28 ; but that's a CSE problem, not a LVI/jump threading problem)
|
| H A D | guards.ll | 219 ; LVI uses guard to identify value of %c2 in branch as true, we cannot replace that
|
| /llvm-project-15.0.7/llvm/include/llvm/Transforms/Scalar/ |
| H A D | JumpThreading.h | 80 LazyValueInfo *LVI; variable 101 LazyValueInfo *LVI, AAResults *AA, DomTreeUpdater *DTU,
|
| /llvm-project-15.0.7/llvm/test/Transforms/GlobalDCE/ |
| H A D | crash-assertingvh.ll | 2 ; like LVI with asserting handles into the body of a function, those don't begin
|
| /llvm-project-15.0.7/llvm/test/Transforms/Inline/ |
| H A D | clear-analyses.ll | 2 ; as LVI with references back into the IR of a function that the inliner will
|
| /llvm-project-15.0.7/llvm/test/Transforms/Attributor/ |
| H A D | lvi-after-jumpthreading.ll | 177 ; FIXME: COND should be replaced with false. This will be fixed by improving LVI.
|
| H A D | range.ll | 542 ; TEST4 LVI test
|
| /llvm-project-15.0.7/llvm/lib/Target/X86/ |
| H A D | X86.td | 356 // Mitigate LVI attacks against indirect calls/branches and call returns 371 "and conditional branches. Implies LVI Control Flow integrity.", 374 // Mitigate LVI attacks against data loads
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | LazyValueInfo.cpp | 1966 auto &LVI = getAnalysis<LazyValueInfoWrapperPass>().getLVI(); in runOnFunction() local 1968 LVI.printLVI(F, DTree, dbgs()); in runOnFunction()
|
| /llvm-project-15.0.7/clang/docs/ |
| H A D | ClangCommandLineReference.rst | 3187 Enable only control-flow mitigations for Load Value Injection (LVI) 3191 Enable all mitigations for Load Value Injection (LVI) 3259 Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity m…
|
| /llvm-project-15.0.7/llvm/lib/Transforms/IPO/ |
| H A D | AttributorAttributes.cpp | 8110 LazyValueInfo *LVI = in getConstantRangeFromLVI() local 8114 if (!LVI || !CtxI) in getConstantRangeFromLVI() 8116 return LVI->getConstantRange(&getAssociatedValue(), in getConstantRangeFromLVI()
|
| /llvm-project-15.0.7/clang/include/clang/Driver/ |
| H A D | Options.td | 3461 HelpText<"Enable all mitigations for Load Value Injection (LVI)">; 3463 HelpText<"Disable mitigations for Load Value Injection (LVI)">; 3465 HelpText<"Enable only control-flow mitigations for Load Value Injection (LVI)">; 3467 HelpText<"Disable control-flow mitigations for Load Value Injection (LVI)">; 3470 "Includes LVI control flow integrity mitigations">;
|