llvm-project/llvm/lib/Transforms/Scalar
Francis Visoiu Mistrih 4753a69a31 [Remarks] Provide more information about auto-init stores
This adds support for analyzing the instruction with the !annotation
"auto-init" in order to generate a more user-friendly remark.

For now, support the store size, and whether it's atomic/volatile.

Example:

```
auto-init.c:4:7: remark: Store inserted by -ftrivial-auto-var-init.Store size: 4 bytes. [-Rpass-missed=annotation-remarks]
  int var;
      ^
```

Differential Revision: https://reviews.llvm.org/D97412
2021-02-25 15:14:09 -08:00
..
ADCE.cpp [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
AlignmentFromAssumptions.cpp Revert "[AssumptionCache] Avoid dangling llvm.assume calls in the cache" 2021-02-11 12:17:38 -06:00
AnnotationRemarks.cpp [Remarks] Provide more information about auto-init stores 2021-02-25 15:14:09 -08:00
BDCE.cpp [BDCE] SExt -> ZExt when no sign bits is used and instruction has multiple uses 2020-07-10 08:34:53 +01:00
CMakeLists.txt [ScalarizeMaskedMemIntrinsic] Move from CodeGen into Transforms 2020-12-08 12:25:58 -05:00
CallSiteSplitting.cpp [Support] Introduce a new InstructionCost class 2020-12-11 08:12:54 +00:00
ConstantHoisting.cpp [ConstantHoisting] Fix bug where constant materialization could insert into EH pad 2021-02-01 11:23:56 -08:00
ConstraintElimination.cpp [llvm] Use llvm::drop_begin (NFC) 2021-02-22 20:17:16 -08:00
CorrelatedValuePropagation.cpp [CVP] Simplify and generalize switch handling 2020-12-12 21:12:27 +01:00
DCE.cpp [DCE] Always get TargetLibraryInfo 2020-11-17 20:41:05 -08:00
DeadStoreElimination.cpp [DSE] Allow ptrs defined in the entry block in IsGuaranteedLoopInvariant. 2021-02-23 12:00:44 +00:00
DivRemPairs.cpp [ValueTracking] Use assume's noundef operand bundle 2020-10-14 20:16:33 +09:00
EarlyCSE.cpp [noalias.decl] Look through llvm.experimental.noalias.scope.decl 2021-01-19 20:09:42 +01:00
FlattenCFGPass.cpp [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
Float2Int.cpp [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
GVN.cpp [GVN] Fix a typo in comment 2021-02-23 10:39:34 +08:00
GVNHoist.cpp Require chained analyses in BasicAA and AAResults to be transitive 2021-01-11 11:50:07 +01:00
GVNSink.cpp [Transforms] Use llvm::append_range (NFC) 2021-01-20 21:35:54 -08:00
GuardWidening.cpp [llvm] Use llvm::all_of (NFC) 2021-01-19 20:19:17 -08:00
IVUsersPrinter.cpp
IndVarSimplify.cpp [Transforms] Use llvm::erase_if (NFC) 2020-12-17 19:53:10 -08:00
InductiveRangeCheckElimination.cpp [IRCE] Remove unused IsSigned and its accessor (NFC) 2020-12-04 21:26:12 -08:00
InferAddressSpaces.cpp [NewPM] Port infer-address-spaces 2020-12-28 19:58:12 -08:00
InstSimplifyPass.cpp [Bindings] Move LLVMAddInstructionSimplifyPass to Scalar.cpp 2020-09-02 10:35:39 -07:00
JumpThreading.cpp [JumpThreading] Update computeValueKnownInPredecessors to recognize logical and/or patterns 2021-02-24 00:06:10 +09:00
LICM.cpp [NFC][LICM] Minor improvements to debug output 2021-01-11 18:02:49 -08:00
LoopAccessAnalysisPrinter.cpp
LoopDataPrefetch.cpp [LoopInfo] empty() -> isInnermost(), add isOutermost() 2020-09-22 23:28:51 +03:00
LoopDeletion.cpp [LoopDeletion] Handle inner loops w/untaken backedges 2021-01-22 16:31:29 -08:00
LoopDistribute.cpp [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
LoopFlatten.cpp NFC: Migrate LoopFlatten to work on InstructionCost. 2021-02-06 11:47:04 +00:00
LoopFuse.cpp [Transforms] Construct SmallVector with iterator ranges (NFC) 2021-01-02 09:24:17 -08:00
LoopIdiomRecognize.cpp NFC: Migrate LoopIdiomRecognize to work on InstructionCost 2021-02-06 14:39:19 +00:00
LoopInstSimplify.cpp
LoopInterchange.cpp [NFC] Refactor LoopInterchange into a loop-nest pass 2021-02-18 00:55:38 +08:00
LoopLoadElimination.cpp [LoopLoadElim] Pass ScalarEvolution in old pass manager. PR49141 2021-02-15 18:08:23 +07:00
LoopPassManager.cpp [NPM] Properly reset parent loop after loop passes 2021-02-19 02:50:53 +08:00
LoopPredication.cpp [BPI] Improve static heuristics for "cold" paths. 2020-12-23 22:47:36 +07:00
LoopRerollPass.cpp [llvm] Use *Set::contains (NFC) 2021-01-07 20:29:34 -08:00
LoopRotation.cpp [LoopRotate] Add PrepareForLTO stage, avoid rotating with inline cands. 2021-01-19 10:15:29 +00:00
LoopSimplifyCFG.cpp [DominatorTree] Add support for mixed pre/post CFG views. 2021-01-06 14:53:09 -08:00
LoopSink.cpp [llvm] Use isa instead of dyn_cast (NFC) 2021-01-29 23:23:37 -08:00
LoopStrengthReduce.cpp [LSR] Add a flag that overrides the target's preferred addressing mode 2021-02-17 16:50:21 +00:00
LoopUnrollAndJamPass.cpp [LoopUnrollAndJam] Allow unroll and jam loops forced by user. 2020-09-17 19:40:14 +00:00
LoopUnrollPass.cpp NFC: Migrate LoopUnrollPass to work on InstructionCost 2021-02-04 14:05:40 +00:00
LoopUnswitch.cpp [Transforms/Scalar] Use range-based for loops (NFC) 2021-02-04 21:18:05 -08:00
LoopVersioningLICM.cpp [SCEV] Use isa<> pattern for testing for CouldNotCompute [NFC] 2020-11-24 18:47:49 -08:00
LowerAtomic.cpp
LowerConstantIntrinsics.cpp [LowerConstantIntrinsics] Preserve Dominator Tree, if avaliable 2021-01-30 01:14:50 +03:00
LowerExpectIntrinsic.cpp Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2020-11-14 13:12:38 +03:00
LowerGuardIntrinsic.cpp
LowerMatrixIntrinsics.cpp [llvm] Use pop_back_val (NFC) 2021-01-23 10:56:33 -08:00
LowerWidenableCondition.cpp
MakeGuardsExplicit.cpp
MemCpyOptimizer.cpp [MemCpyOpt] Fix handling of readnone byval arguments 2021-02-22 18:48:31 +01:00
MergeICmps.cpp [Transforms/Scalar] Use range-based for loops (NFC) 2021-02-04 21:18:05 -08:00
MergedLoadStoreMotion.cpp
NaryReassociate.cpp [NFC] Fix build failure after 83d134c3c4 2021-02-25 18:43:00 +07:00
NewGVN.cpp [llvm] Use pop_back_val (NFC) 2021-01-23 10:56:33 -08:00
PartiallyInlineLibCalls.cpp [PartiallyInlineLibCalls] Preserve Dominator Tree, if avaliable 2021-01-29 01:11:36 +03:00
PlaceSafepoints.cpp [Transforms] Use llvm::append_range (NFC) 2020-12-27 09:57:29 -08:00
Reassociate.cpp [Reassociate] allow or->add with shl operands 2021-02-07 09:45:19 -05:00
Reg2Mem.cpp [Reg2Mem] add support for the new pass manager 2020-11-08 11:14:05 +00:00
RewriteStatepointsForGC.cpp [llvm] Construct SmallVector with iterator ranges (NFC) 2021-01-16 09:40:53 -08:00
SCCP.cpp [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-02-12 09:51:57 -08:00
SROA.cpp [SROA] Propagate correct TBAA/TBAA Struct offsets 2021-02-17 11:59:00 -05:00
Scalar.cpp [ScalarizeMaskedMemIntrin] Add new PM support 2020-12-08 17:15:22 -05:00
ScalarizeMaskedMemIntrin.cpp Expand masked mem intrinsics correctly wrt big-endian 2021-02-11 08:59:52 +00:00
Scalarizer.cpp [Scalarizer] Use poison as insertelement's placeholder 2021-01-04 00:35:28 +09:00
SeparateConstOffsetFromGEP.cpp SeparateConstOffsetFromGEP::lowerToSingleIndexGEPs - don't use dyn_cast_or_null. NFCI. 2020-12-15 17:27:25 +00:00
SimpleLoopUnswitch.cpp [SimpleLoopUnswitch] Don't non-trivially unswitch loops that are unsafe to clone 2021-02-08 13:19:24 -08:00
SimplifyCFGPass.cpp [SimplifyCFG] Change 'LoopHeaders' to be ArrayRef<WeakVH>, not a naked set, thus avoiding dangling pointers 2021-01-23 16:48:35 +03:00
Sink.cpp Sink: Handle instruction sink when a user is dead 2020-10-09 16:20:26 -07:00
SpeculateAroundPHIs.cpp NFC: Migrate SpeculateAroundPHIs to work on InstructionCost 2021-02-02 13:32:45 +00:00
SpeculativeExecution.cpp NFC: Migrate SpeculativeExecution to work on InstructionCost 2021-02-01 12:13:23 +00:00
StraightLineStrengthReduce.cpp [Transforms/Scalar] Use range-based for loops (NFC) 2021-02-04 21:18:05 -08:00
StructurizeCFG.cpp [Transforms/Scalar] Use range-based for loops (NFC) 2021-02-04 21:18:05 -08:00
TailRecursionElimination.cpp [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-02-12 09:51:57 -08:00
WarnMissedTransforms.cpp [SVE] Add support for scalable vectors with vectorize.scalable.enable loop attribute 2020-12-02 13:23:43 +00:00