- Sep 07, 2018
-
-
Simon Pilgrim authored
Reverts analyzer tests from rL341627 again as they still broke windows buildbots llvm-svn: 341648
-
Dean Michael Berris authored
Summary: In this change we apply `XRAY_NEVER_INSTRUMENT` to more functions in the profiling implementation to ensure that these never get instrumented if the compiler used to build the library is capable of doing XRay instrumentation. We also consolidate all the allocators into a single header (xray_allocator.h) which sidestep the use of the internal allocator implementation in sanitizer_common. This addresses more cases mentioned in llvm.org/PR38577. Reviewers: mboerger, eizan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D51776 llvm-svn: 341647
-
Alexander Potapenko authored
MSan has found a use of uninitialized memory in MSan, fix it. llvm-svn: 341646
-
Eric Liu authored
Get rid of "../" and "../../". llvm-svn: 341645
-
Diogo N. Sampaio authored
llvm-svn: 341644
-
Benjamin Kramer authored
llvm-svn: 341643
-
Tim Northover authored
Because t2LDREX (& t2STREX) were marked as AddrModeNone, but did allow a FrameIndex operand, rewriteT2FrameIndex asserted. This gives them a proper addressing-mode and tells the rewriter about it so that encodable offsets are exploited and others are rejected. Should fix PR38828. llvm-svn: 341642
-
Alexander Potapenko authored
Boilerplate code for using KMSAN instrumentation in Clang. We add a new command line flag, -fsanitize=kernel-memory, with a corresponding SanitizerKind::KernelMemory, which, along with SanitizerKind::Memory, maps to the memory_sanitizer feature. KMSAN is only supported on x86_64 Linux. It's incompatible with other sanitizers, but supports code coverage instrumentation. llvm-svn: 341641
-
Kirill Bobyrev authored
`URIDistance` constructor should mention that `Sources` must contain *absolute paths*, not URIs. This is not very clear when looking at the interface, especially given that `distance(...)` accepts `URI`, not an absolute path which can give the wrong impression. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D51691 llvm-svn: 341639
-
Alexander Potapenko authored
llvm-svn: 341638
-
Alexander Potapenko authored
Introduce the -msan-kernel flag, which enables the kernel instrumentation. The main differences between KMSAN and MSan instrumentations are: - KMSAN implies msan-track-origins=2, msan-keep-going=true; - there're no explicit accesses to shadow and origin memory. Shadow and origin values for a particular X-byte memory location are read and written via pointers returned by __msan_metadata_ptr_for_load_X(u8 *addr) and __msan_store_shadow_origin_X(u8 *addr, uptr shadow, uptr origin); - TLS variables are stored in a single struct in per-task storage. A call to a function returning that struct is inserted into every instrumented function before the entry block; - __msan_warning() takes a 32-bit origin parameter; - local variables are poisoned with __msan_poison_alloca() upon function entry and unpoisoned with __msan_unpoison_alloca() before leaving the function; - the pass doesn't declare any global variables or add global constructors to the translation unit. llvm-svn: 341637
-
Alexander Timofeev authored
Differential revision: https://reviews.llvm.org/D51610 Reviewer: rampitec llvm-svn: 341636
-
Puyan Lotfi authored
Third Attempt: - Alignment issues resolved. - zlib::isAvailable() detected. - ArrayRef misuse fixed. Usage: llvm-objcopy --compress-debug-sections=zlib foo.o llvm-objcopy --compress-debug-sections=zlib-gnu foo.o In both cases the debug section contents is compressed with zlib. In the GNU style case the header is the "ZLIB" magic string followed by the uint64 big- endian decompressed size. In the non-GNU mode the header is the Elf(32|64)_Chdr. Decompression support is coming soon. Differential Revision: https://reviews.llvm.org/D49678 llvm-svn: 341635
-
QingShan Zhang authored
On the ppc64le platform, if ir has the following form, define i64 @addze1(i64 %x, i64 %z) local_unnamed_addr #0 { entry: %cmp = icmp ne i64 %z, CONSTANT (-32767 <= CONSTANT <= 32768) %conv1 = zext i1 %cmp to i64 %add = add nsw i64 %conv1, %x ret i64 %add } we can optimize it to the form below. when C == 0 --> addze X, (addic Z, -1)) / add X, (zext(setne Z, C))-- \ when -32768 <= -C <= 32767 && C != 0 --> addze X, (addic (addi Z, -C), -1) Patch By: HLJ2009 (Li Jia He) Differential Revision: https://reviews.llvm.org/D51403 Reviewed By: Nemanjai llvm-svn: 341634
-
Max Kazantsev authored
IndVars does not set `Changed` flag when it eliminates dead instructions. As result, it may make IR modifications and report that it has done nothing. It leads to inconsistent preserved analyzes results. Differential Revision: https://reviews.llvm.org/D51770 Reviewed By: skatkov llvm-svn: 341633
-
Jonathan Metzman authored
Summary: Enables trace-malloc-unbalanced.test on Windows, fixing two problems it had with Windows before. The first fix is specifying python instead of relying on a script's shebang since they can't be used on Windows. The second fix is making the regex tolerate windows' implementation of the "%p" format string. Reviewers: Dor1s Reviewed By: Dor1s Subscribers: morehouse Differential Revision: https://reviews.llvm.org/D51760 llvm-svn: 341632
-
Dean Michael Berris authored
This reverts commit r341628. llvm-svn: 341631
-
Craig Topper authored
llvm-svn: 341630
-
Akira Hatanaka authored
accessible from the context where aggregate initialization occurs. rdar://problem/38168772 Differential Revision: https://reviews.llvm.org/D45898 llvm-svn: 341629
-
Dean Michael Berris authored
Summary: This patch implements a `BlockVerifier` type which enforces the invariants of the log structure of FDR mode logs on a per-block basis. This ensures that the data we encounter from an FDR mode log semantically correct (i.e. that records follow the documented "grammar" for FDR mode log records). This is another part of the refactoring of D50441. Reviewers: mboerger, eizan Subscribers: mgorny, hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D51723 llvm-svn: 341628
-
George Karpenkov authored
This reverts commit a39bcab414dd7ace7e490363ecdf01ecce7743fc. Reverting the revert, fixing tests. llvm-svn: 341627
-
George Karpenkov authored
This reverts commit 03d183b6b94eda27ce66a4f9b87a00b0a148cf9e. Temporary revert until the tests are fixed. llvm-svn: 341626
-
Kostya Serebryany authored
llvm-svn: 341625
-
Craig Topper authored
llvm-svn: 341624
-
Jason Molenda authored
code. This will enable disassembly of the optional subset of neon that some Cortex cores support. Add a unit test to check that a few of these instructions disassemble as expected. <rdar://problem/26674303> llvm-svn: 341623
-
Jonathan Metzman authored
Summary: When targeting MSVC: compile using clang's cl driver mode (this is needed for libfuzzer's exit_on_src_pos feature). Don't use -lstdc++ when linking, it isn't needed and causes a warning. On Windows: Fix exit_on_src_pos.test by making sure debug info isn't overwritten during compilation of second binary by using .exe extension. Reviewers: morehouse Reviewed By: morehouse Subscribers: aprantl, JDevlieghere Differential Revision: https://reviews.llvm.org/D51757 llvm-svn: 341622
-
George Karpenkov authored
Split tests which were still using FileCheck to compare plists. Differential Revision: https://reviews.llvm.org/D51515 llvm-svn: 341621
-
George Karpenkov authored
When object is owned elsewhere Differential Revision: https://reviews.llvm.org/D51669 llvm-svn: 341620
-
George Karpenkov authored
Raw FileIDs are needed for the PlistDiagnostics to produce stable filenames. Differential Revision: https://reviews.llvm.org/D51668 llvm-svn: 341619
-
George Karpenkov authored
Invalid source locations may arise from generated code. Differential Revision: https://reviews.llvm.org/D51761 llvm-svn: 341618
-
George Karpenkov authored
So it can be reused across different consumers. Differential Revision: https://reviews.llvm.org/D51514 llvm-svn: 341617
-
George Karpenkov authored
A node is considered to be trivial if it only has one successor, one predecessor, and a state equal to the predecessor. Can drastically (> 2x) reduce the size of the generated exploded graph. Differential Revision: https://reviews.llvm.org/D51665 llvm-svn: 341616
-
Kostya Serebryany authored
[hwasan] make the print-memory-usage.c less agressive: do not assume that malloc can't happen before main llvm-svn: 341615
-
Jordan Rupprecht authored
Windows ls prints dates as "1997-05-05" instead of "May 05 1997", so only check for a leading space. llvm-svn: 341614
-
Puyan Lotfi authored
Various bots still fail for unknown reason. llvm-svn: 341613
-
Evgeniy Stepanov authored
Check size limit before rounding up, otherwise malloc((size_t)-1) would happily allocate 0 bytes. Steal a nice test case from scudo. llvm-svn: 341612
-
Fangrui Song authored
Summary: This protects lld from a null pointer dereference when a faulty input file has such invalid sh_link fields. Reviewers: ruiu, espindola Reviewed By: ruiu Subscribers: emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D51743 llvm-svn: 341611
-
Kostya Serebryany authored
llvm-svn: 341610
-
Zachary Turner authored
By calling these NativeType<foo>.cpp, they will all be sorted together, and it also distinguishes the types from the symbols. llvm-svn: 341609
-
Zachary Turner authored
Part of the responsibility of the native PDB reader is to cache symbols the first time they are accessed, so they can then be looked up by an ID. Furthermore, we need to resolve type indices to records that we vend to the user, and other things. Previously this code was all thrown together a bit haphazardly in the native session class, but it makes sense to collect all of this into a single class whose sole responsibility is to manage the collection of known symbols. llvm-svn: 341608
-