llvm-project/llvm/lib/Transforms/Scalar
Evgeniy Stepanov c667c1f47a Hardware-assisted AddressSanitizer (llvm part).
Summary:
This is LLVM instrumentation for the new HWASan tool. It is basically
a stripped down copy of ASan at this point, w/o stack or global
support. Instrumenation adds a global constructor + runtime callbacks
for every load and store.

HWASan comes with its own IR attribute.

A brief design document can be found in
clang/docs/HardwareAssistedAddressSanitizerDesign.rst (submitted earlier).

Reviewers: kcc, pcc, alekseyshl

Subscribers: srhines, mehdi_amini, mgorny, javed.absar, eraman, llvm-commits, hiraditya

Differential Revision: https://reviews.llvm.org/D40932

llvm-svn: 320217
2017-12-09 00:21:41 +00:00
..
ADCE.cpp [ADCE] Use MapVector for BlockInfo to make iteration order deterministic 2017-11-03 14:15:08 +00:00
AlignmentFromAssumptions.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
BDCE.cpp [BDCE] Don't check demanded bits on unsized types 2017-08-16 16:09:22 +00:00
CMakeLists.txt Add a new pass to speculate around PHI nodes with constant (integer) operands when profitable. 2017-11-28 11:32:31 +00:00
CallSiteSplitting.cpp [CallSiteSplitting] Remove some indirection (NFC). 2017-11-18 18:14:13 +00:00
ConstantHoisting.cpp Fix out-of-order stepping behavior in programs with hoisted constants. 2017-11-09 20:01:31 +00:00
ConstantProp.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
CorrelatedValuePropagation.cpp [CVP] Remove some {s|u}sub.with.overflow checks. 2017-12-05 18:14:24 +00:00
DCE.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DeadStoreElimination.cpp Modify ModRefInfo values using static inline method abstractions [NFC]. 2017-12-05 20:12:23 +00:00
DivRemPairs.cpp [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
EarlyCSE.cpp Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
FlattenCFGPass.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Float2Int.cpp [Float2Int] Replace a ConstantRange copy with a move. Remove an extra call to MapVector::find. 2017-05-05 17:09:29 +00:00
GVN.cpp Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
GVNHoist.cpp [GVNHoist] Fix a signed/unsigned comparison warning that occurs in 32-bit builds with gcc. 2017-11-16 00:19:59 +00:00
GVNSink.cpp [GVNSink] Fix failing GVNSink tests in the reverse iteration bot 2017-10-23 19:56:52 +00:00
GuardWidening.cpp Guard print() functions only used by dump() functions. 2017-07-31 10:07:49 +00:00
IVUsersPrinter.cpp [PM] Separate the LoopAnalysisManager from the LoopPassManager and move 2017-01-11 09:43:56 +00:00
IndVarSimplify.cpp IndVarSimplify: preserve debug information attached to widened PHI nodes. 2017-11-02 23:17:06 +00:00
InductiveRangeCheckElimination.cpp [IRCE][NFC] Add no wrap flags to no-wrapping SCEV calculation 2017-11-23 06:14:39 +00:00
InferAddressSpaces.cpp InferAddressSpaces: Fix bug about replacing addrspacecast 2017-10-30 21:19:41 +00:00
JumpThreading.cpp [JumpThreading] Minor comment cleanup. NFC. (test commit) 2017-12-08 19:36:32 +00:00
LICM.cpp Add MemorySSA as loop dependency, disabled by default [NFC]. 2017-11-21 15:45:46 +00:00
LLVMBuild.txt
LoopAccessAnalysisPrinter.cpp [PM] Separate the LoopAnalysisManager from the LoopPassManager and move 2017-01-11 09:43:56 +00:00
LoopDataPrefetch.cpp [NFC] Convert OptimizationRemarkEmitter old emit() calls to new closure 2017-10-11 17:12:59 +00:00
LoopDeletion.cpp [LoopDeletion] Move deleteDeadLoop to to LoopUtils. NFC 2017-10-04 20:42:46 +00:00
LoopDistribute.cpp Add MemorySSA as loop dependency, disabled by default [NFC]. 2017-11-21 15:45:46 +00:00
LoopIdiomRecognize.cpp [ModRefInfo] Make enum ModRefInfo an enum class [NFC]. 2017-12-07 22:41:34 +00:00
LoopInstSimplify.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-16 21:34:24 +00:00
LoopInterchange.cpp [LoopInterchange] Fix phi node ordering miscompile. 2017-10-21 13:58:37 +00:00
LoopLoadElimination.cpp Add MemorySSA as loop dependency, disabled by default [NFC]. 2017-11-21 15:45:46 +00:00
LoopPassManager.cpp [PM] Teach LoopUnroll to update the LPM infrastructure as it unrolls 2017-01-25 02:49:01 +00:00
LoopPredication.cpp [Loop Predication] Teach LP about reverse loops 2017-12-04 15:11:48 +00:00
LoopRerollPass.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-18 21:46:47 +00:00
LoopRotation.cpp [LoopRotate] processLoop should return true even if it just simplified the loop latch without making any other changes 2017-11-15 00:22:42 +00:00
LoopSimplifyCFG.cpp Rename WeakVH to WeakTrackingVH; NFC 2017-05-01 17:07:49 +00:00
LoopSink.cpp [PM] Port LoopSink to the new pass manager. 2017-01-20 08:42:19 +00:00
LoopStrengthReduce.cpp [SCEV] Handling for ICmp occuring in the evolution chain. 2017-11-13 16:43:24 +00:00
LoopUnrollPass.cpp Fix MSVC signed/unsigned comparison warning 2017-10-19 15:00:31 +00:00
LoopUnswitch.cpp Use a BumpPtrAllocator for Loop objects 2017-09-28 02:45:42 +00:00
LoopVersioningLICM.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-26 00:55:39 +00:00
LowerAtomic.cpp LowerAtomic: Don't skip optnone functions; atomic still need lowering (PR34020) 2017-08-23 15:43:28 +00:00
LowerExpectIntrinsic.cpp Fix builin_expect lowering bug 2017-06-07 18:32:24 +00:00
LowerGuardIntrinsic.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MemCpyOptimizer.cpp Revert r319482 and r319483 "[memcpyopt] Teach memcpyopt to optimize across basic blocks" 2017-12-06 01:47:55 +00:00
MergeICmps.cpp [CodeGen][ExpandMemcmp] Allow memcmp to expand to vector loads (2). 2017-10-30 14:19:33 +00:00
MergedLoadStoreMotion.cpp [ModRefInfo] Make enum ModRefInfo an enum class [NFC]. 2017-12-07 22:41:34 +00:00
NaryReassociate.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-17 21:27:42 +00:00
NewGVN.cpp [NewGVN] Stop assuming PHI args ordering when looking at phi-of-ops. 2017-10-30 20:20:16 +00:00
PartiallyInlineLibCalls.cpp [PartiallyInlineLibCalls][x86] add TTI hook to allow sqrt inlining to depend on arg rather than result 2017-11-27 21:15:43 +00:00
PlaceSafepoints.cpp All libcalls should be considered to be GC-leaf functions. 2017-07-27 16:49:39 +00:00
Reassociate.cpp [Reassociate] simplify code; NFCI 2017-11-15 16:19:17 +00:00
Reg2Mem.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
RewriteStatepointsForGC.cpp Strip off invariant.start because memory locations arent invariant 2017-11-02 18:24:04 +00:00
SCCP.cpp [SCCP] Pick the right lattice value for constants. 2017-11-22 03:04:55 +00:00
SROA.cpp Recommit rL319407: [SROA] enable splitting for non-whole-alloca loads and stores 2017-12-01 06:05:05 +00:00
Scalar.cpp Rename CountingFunctionInserter and use for both mcount and cygprofile calls, before and after inlining 2017-11-14 21:09:45 +00:00
Scalarizer.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-20 21:47:29 +00:00
SeparateConstOffsetFromGEP.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
SimpleLoopUnswitch.cpp Make helpers static. NFC. 2017-11-24 14:55:41 +00:00
SimplifyCFGPass.cpp [SimplifyCFG] use pass options and remove the latesimplifycfg pass 2017-10-28 18:43:07 +00:00
Sink.cpp Modify ModRefInfo values using static inline method abstractions [NFC]. 2017-12-05 20:12:23 +00:00
SpeculateAroundPHIs.cpp Add a new pass to speculate around PHI nodes with constant (integer) operands when profitable. 2017-11-28 11:32:31 +00:00
SpeculativeExecution.cpp Revert r301950: SpeculativeExecution: Stop using whitelist for costs 2017-05-10 12:30:07 +00:00
StraightLineStrengthReduce.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-27 01:09:08 +00:00
StructurizeCFG.cpp [Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-20 21:47:29 +00:00
TailRecursionElimination.cpp Modify ModRefInfo values using static inline method abstractions [NFC]. 2017-12-05 20:12:23 +00:00