summaryrefslogtreecommitdiffstats
path: root/llvm/test/Instrumentation/MemorySanitizer
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix llvm::removeUnreachableBlocks to handle unreachable loops.Evgeniy Stepanov2013-03-221-0/+16
| | | | llvm-svn: 177713
* [msan] Implement sanitize_memory attribute.Evgeniy Stepanov2013-02-281-35/+62
| | | | | | | | | | Shadow checks are disabled and memory loads always produce fully initialized values in functions that don't have a sanitize_memory attribute. Value and argument shadow is propagated as usual. This change also updates blacklist behaviour to match the above. llvm-svn: 176247
* [msan] Mostly disable msan-handle-icmp-exact.Evgeniy Stepanov2013-01-281-20/+11
| | | | | | | | It is way too slow. Change the default option value to 0. Always do exact shadow propagation for unsigned ICmp with constants, it is cheap (under 1% cpu time) and required for correctness. llvm-svn: 173682
* [msan] Implement exact shadow propagation for relational ICmp.Evgeniy Stepanov2013-01-251-3/+31
| | | | | | | | Only for integers, pointers, and vectors of those. No floats. Instrumentation seems very heavy, and may need to be replaced with some approximation in the future. llvm-svn: 173452
* [msan] Do not insert check on volatile store.Evgeniy Stepanov2013-01-221-0/+14
| | | | | | Volatile bitfields can cause valid stores of uninitialized bits. llvm-svn: 173153
* [msan] Temporarily remove ICmpEQ tests.Evgeniy Stepanov2013-01-151-54/+0
| | | | | | They are failing on the bots. llvm-svn: 172540
* [msan] Fix handling of equality comparison of pointer vectors.Evgeniy Stepanov2013-01-151-0/+70
| | | | | | Also improve test coveration of the handling of relational comparisons. llvm-svn: 172539
* [msan] Change va_start/va_copy shadow memset alignment to 8.Peter Collingbourne2013-01-101-0/+13
| | | | | | | | | This fixes va_start/va_copy of a va_list field which happens to not be laid out at a 16-byte boundary. Differential Revision: http://llvm-reviews.chandlerc.com/D276 llvm-svn: 172128
* [msan] Raise alignment of origin stores/loads when possible.Evgeniy Stepanov2012-12-261-2/+9
| | | | | | | Origin alignment is as high as the alignment of the corresponding application location, but never less than 4. llvm-svn: 171110
* [msan] Fix handling of vectors of pointers.Evgeniy Stepanov2012-12-251-0/+15
| | | | | | | VectorType::getInteger() can not be used with them, because pointer size depends on the target. llvm-svn: 171070
* [msan] Fix handling of select with vector condition.Evgeniy Stepanov2012-12-251-0/+17
| | | | llvm-svn: 171069
* [msan] Remove unreachable blocks before instrumenting a function.Evgeniy Stepanov2012-12-211-0/+23
| | | | llvm-svn: 170883
* [msan] Heuristically instrument unknown intrinsics.Evgeniy Stepanov2012-12-191-2/+74
| | | | | | | | | | | | This changes adds shadow and origin propagation for unknown intrinsics by examining the arguments and ModRef behaviour. For now, only 3 classes of intrinsics are handled: - those that look like simple SIMD store - those that look like simple SIMD load - those that don't have memory effects and look like arithmetic/logic/whatever operation on simple types. llvm-svn: 170530
* [msan] Origin stores and loads do not need explicit alignment.Evgeniy Stepanov2012-12-141-0/+30
| | | | | | Origin address is always 4 byte aligned, and the access type is always i32. llvm-svn: 170199
* [msan] Do not store origin for clean values.Evgeniy Stepanov2012-12-061-0/+26
| | | | | | | | | | | | | | | | | | Instead of unconditionally storing origin with every application store, only do this when the shadow of the stored value is != 0. This change also delays instrumentation of stores until after the walk over function's instructions, because adding new basic blocks confuses InstVisitor. We only keep 1 origin value per 4 bytes of application memory. This change fixes the bug when a store of a single clean byte wiped the origin for the whole 4-byte area. Since stores of uninitialized values are relatively uncommon, this change improves performance of track-origins mode by 5% median and by up to 47% on specs. llvm-svn: 169490
* [msan] Instrument bswap intrinsic.Evgeniy Stepanov2012-12-051-0/+16
| | | | llvm-svn: 169383
* [msan] Change linkage type of __msan_track_origins.Evgeniy Stepanov2012-12-051-0/+3
| | | | | | | LinkOnceODRLinkage globals may be removed in GlobalOpt if not used in the current module. llvm-svn: 169377
* Improve MSan tests.Evgeniy Stepanov2012-12-041-54/+60
| | | | llvm-svn: 169256
* [msan] Tests for vector manipulation instructions.Evgeniy Stepanov2012-11-301-0/+37
| | | | llvm-svn: 168997
* [msan] Propagate shadow through (x<0) and (x>=0) comparisons.Evgeniy Stepanov2012-11-291-0/+47
| | | | | | | This is a special case of signed relational comparison where result only depends on the sign of x. llvm-svn: 168881
* [msan] Fix shadow & origin store & load alignment.Evgeniy Stepanov2012-11-291-0/+25
| | | | | | | This change ensures that shadow memory accesses have the same alignment as corresponding app memory accesses. llvm-svn: 168880
* [msan] Add a test for r168873.Evgeniy Stepanov2012-11-291-0/+2
| | | | llvm-svn: 168877
* [msan] Update tests (broken in r168873).Evgeniy Stepanov2012-11-291-5/+3
| | | | llvm-svn: 168874
* Initial commit of MemorySanitizer.Evgeniy Stepanov2012-11-292-0/+236
Compiler pass only. llvm-svn: 168866
OpenPOWER on IntegriCloud