summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [IndVars] Set Changed when we delete dead instructions. PR38855Max Kazantsev2018-09-072-1/+25
| | | | | | | | | | | 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
* [libfuzzer] Enable trace-malloc-unballanced.test on Windows.Jonathan Metzman2018-09-071-5/+7
| | | | | | | | | | | | | | | | | 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
* Revert "[XRay] Add a BlockVerifier visitor for FDR Records"Dean Michael Berris2018-09-075-393/+0
| | | | | | This reverts commit r341628. llvm-svn: 341631
* [X86] Add more test cases for missed opportunities for using RMW form of ADC.Craig Topper2018-09-071-0/+33
| | | | llvm-svn: 341630
* [Sema] Check that the destructor for each element of class type isAkira Hatanaka2018-09-073-1/+160
| | | | | | | | | | accessible from the context where aggregate initialization occurs. rdar://problem/38168772 Differential Revision: https://reviews.llvm.org/D45898 llvm-svn: 341629
* [XRay] Add a BlockVerifier visitor for FDR RecordsDean Michael Berris2018-09-075-0/+393
| | | | | | | | | | | | | | | | | | | 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
* Revert "Revert "[analyzer] Add coverage information to plist output, update ↵George Karpenkov2018-09-0772-13021/+14118
| | | | | | | | | | tests"" This reverts commit a39bcab414dd7ace7e490363ecdf01ecce7743fc. Reverting the revert, fixing tests. llvm-svn: 341627
* Revert "[analyzer] Add coverage information to plist output, update tests"George Karpenkov2018-09-0745-13935/+13128
| | | | | | | | This reverts commit 03d183b6b94eda27ce66a4f9b87a00b0a148cf9e. Temporary revert until the tests are fixed. llvm-svn: 341626
* [hwasan] relax the rint-memory-usage.c test furtherKostya Serebryany2018-09-071-5/+5
| | | | llvm-svn: 341625
* [X86] Fix some incorrect comments. NFCCraig Topper2018-09-071-3/+3
| | | | llvm-svn: 341624
* Enable the fp-armv8 disassembler feature when disassembling Cortex-MJason Molenda2018-09-075-3/+122
| | | | | | | | | | 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
* [libfuzzer] Use cl driver mode for tests and enable another test on WindowsJonathan Metzman2018-09-072-7/+11
| | | | | | | | | | | | | | | | | | | 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
* [analyzer] Add coverage information to plist output, update testsGeorge Karpenkov2018-09-0745-13128/+13935
| | | | | | | | Split tests which were still using FileCheck to compare plists. Differential Revision: https://reviews.llvm.org/D51515 llvm-svn: 341621
* [analyzer] [NFC] Prefer passing around reference to std::unique_ptr&George Karpenkov2018-09-071-9/+9
| | | | | | | | When object is owned elsewhere Differential Revision: https://reviews.llvm.org/D51669 llvm-svn: 341620
* [analyzer] Executed lines: store file IDs, not hashes.George Karpenkov2018-09-073-5/+5
| | | | | | | | Raw FileIDs are needed for the PlistDiagnostics to produce stable filenames. Differential Revision: https://reviews.llvm.org/D51668 llvm-svn: 341619
* [analyzer] Do not add invalid source location to the coverage informationGeorge Karpenkov2018-09-072-0/+30
| | | | | | | | Invalid source locations may arise from generated code. Differential Revision: https://reviews.llvm.org/D51761 llvm-svn: 341618
* [analyzer] Push updating-the-executed-lines logic into the BugReporter.George Karpenkov2018-09-073-21/+22
| | | | | | | | So it can be reused across different consumers. Differential Revision: https://reviews.llvm.org/D51514 llvm-svn: 341617
* [analyzer] Skip printing trivial nodes in exploded graphGeorge Karpenkov2018-09-073-18/+58
| | | | | | | | | | | 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
* [hwasan] make the print-memory-usage.c less agressive: do not assume that ↵Kostya Serebryany2018-09-071-3/+4
| | | | | | malloc can't happen before main llvm-svn: 341615
* [llvm-strip] -p test fix for windows buildbotsJordan Rupprecht2018-09-071-4/+4
| | | | | | Windows ls prints dates as "1997-05-05" instead of "May 05 1997", so only check for a leading space. llvm-svn: 341614
* Revert: [llvm-objcopy] Dwarf .debug section compression (Second Attempt).Puyan Lotfi2018-09-0710-321/+6
| | | | | | Various bots still fail for unknown reason. llvm-svn: 341613
* [hwasan] Fix malloc overflow detection.Evgeniy Stepanov2018-09-072-7/+89
| | | | | | | | | 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
* [ELF] Check if LinkSec is nullptr when initializing SHF_LINK_ORDER sectionsFangrui Song2018-09-072-2/+20
| | | | | | | | | | | | | | 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
* [hwasan] change the thread list so that main_thread can also be removedKostya Serebryany2018-09-072-8/+12
| | | | llvm-svn: 341610
* [PDB] Rename some files in the native reader.Zachary Turner2018-09-0710-98/+96
| | | | | | | By calling these NativeType<foo>.cpp, they will all be sorted together, and it also distinguishes the types from the symbols. llvm-svn: 341609
* [PDB] Create a SymbolCache class.Zachary Turner2018-09-0710-175/+279
| | | | | | | | | | | | | 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
* [llvm-objcopy] Dwarf .debug section compression support (zlib, zlib-gnu).Puyan Lotfi2018-09-0610-6/+321
| | | | | | | | | | | | | | | | | | | | Second Attempt. Alignment issues resolved. zlib::isAvailable() detected. 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: 341607
* [X86] Add RMW ADC patterns with load in operand 1.Craig Topper2018-09-062-10/+23
| | | | | | | | ADC is commutable and the load could be in either operand, but we were only checking operand 0. Ideally we'd mark X86adc_flag as commutable and tablegen would automatically do this, but the EFLAGS register mention is preventing it. llvm-svn: 341606
* [X86] Add a test case showing failure to use the RMW form of ADC when the ↵Craig Topper2018-09-061-0/+28
| | | | | | | | load is in operand 1 going into isel. The ADC instruction is commutable, but we only have RMW isel patterns with a load on the left hand side. Nothing will canonicalize loads to the LHS on these ops. So we need two patterns. llvm-svn: 341605
* Fix SampleProf code on LLP64 platforms with stoullReid Kleckner2018-09-061-4/+6
| | | | | | | Otherwise, stoul will throw an out of range exception if the integer doesn't fit in a 32-bit number. llvm-svn: 341604
* [analyzer] [NFC] Move dumping program point into a separate functionGeorge Karpenkov2018-09-061-131/+132
| | | | | | Differential Revision: https://reviews.llvm.org/D51666 llvm-svn: 341603
* [analyzer] Dump stable identifiers for exploded nodesGeorge Karpenkov2018-09-063-3/+16
| | | | | | Differential Revision: https://reviews.llvm.org/D51667 llvm-svn: 341602
* [analyzer] Remove traces of ubigraph visualizationGeorge Karpenkov2018-09-0611-238/+2
| | | | | | | | | | Ubigraph project has been dead since about 2008, and to the best of my knowledge, no one was using it. Previously, I wasn't able to launch the existing binary at all. Differential Revision: https://reviews.llvm.org/D51655 llvm-svn: 341601
* [analyzer] Dump a reproducible, deterministic ID of program state to ↵George Karpenkov2018-09-063-1/+11
| | | | | | | | exploded graph Differential Revision: https://reviews.llvm.org/D51395 llvm-svn: 341600
* Provide a method for generating deterministic IDs for pointers allocated in ↵George Karpenkov2018-09-061-0/+28
| | | | | | | | BumpPtrAllocator Differential Revision: https://reviews.llvm.org/D51393 llvm-svn: 341599
* [hwasan] Remove allocator interceptors.Evgeniy Stepanov2018-09-063-93/+93
| | | | | | | | | | | | | | | | | | Summary: When building without COMPILER_RT_HWASAN_WITH_INTERCEPTORS, skip interceptors for malloc/free/etc and only export their versions with __sanitizer_ prefix. Also remove a hack in mallinfo() interceptor that does not apply to hwasan. Reviewers: kcc Subscribers: kubamracek, krytarowski, llvm-commits Differential Revision: https://reviews.llvm.org/D51711 llvm-svn: 341598
* Fix error with SmallString implicit conversion.Zachary Turner2018-09-061-3/+1
| | | | llvm-svn: 341597
* [X86] Add isel patterns for commuting X86adc_flag with a load in the LHS.Craig Topper2018-09-062-0/+12
| | | | | | | | The peephole pass likely gets this normally, but we should be doing it during isel. Ideally we'd just make the X86adc_flag pattern SDNPCommutable, but the tablegen doesn't handle that when one of the operands is a register reference. llvm-svn: 341596
* [llvm-strip] Fix -p test to check for explicit spaces around dates, to avoid ↵Jordan Rupprecht2018-09-061-4/+4
| | | | | | when the filename happens to contain 1995/1997. llvm-svn: 341595
* [hwasan] fix pthread_exitKostya Serebryany2018-09-062-1/+6
| | | | llvm-svn: 341594
* The initial .text section generated in object files was missing theEric Christopher2018-09-0613-3/+127
| | | | | | | | | | | | | | | | | | | | SHF_ARM_PURECODE flag when being built with the -mexecute-only flag. All code sections of an ELF must have the flag set for the final .text section to be execute-only, otherwise the flag gets removed. A HasData flag is added to MCSection to aid in the determination that the section is empty. A virtual setTargetSectionFlags is added to MCELFObjectTargetWriter to allow subclasses to set target specific section flags to be added to sections which we then use in the ARM backend to set SHF_ARM_PURECODE. Patch by Ivan Lozano! Reviewed By: echristo Differential Revision: https://reviews.llvm.org/D48792 llvm-svn: 341593
* [hwasan] introduce __hwasan_print_memory_usageKostya Serebryany2018-09-069-7/+133
| | | | llvm-svn: 341592
* [SampleFDO] Make sample profile loader unaware of compact format change.Wei Mi2018-09-069-22/+108
| | | | | | | | | | | | | | | | The patch tries to make sample profile loader independent of profile format change. It moves compact format related code into FunctionSamples and SampleProfileReader classes, and sample profile loader only has to interact with those two classes and will be unaware of profile format changes. The cleanup also contain some fixes to further remove the difference between compactbinary format and binary format. After the cleanup using different formats originated from the same profile will generate the same binaries, which we verified by compiling two large server benchmarks w/wo thinlto. Differential Revision: https://reviews.llvm.org/D51643 llvm-svn: 341591
* Fix a configure issue with Visual Studio generators.Zachary Turner2018-09-062-12/+33
| | | | | | | | | | | | | We can't put the unittest source dir map in the configuration specific directory because VS doesn't have a configure-specific directory, instead it only knows this at runtime. So we have to remove this from the path. This in turn means that the path will be slightly different in VS configurations vs non vs configurations. In the former, the source map will be in the parent directory of the executable, and in the latter it will be in the same directory as the executable. So check both. llvm-svn: 341590
* Revert r341413Scott Linder2018-09-065-701/+67
| | | | | | Causes a regression in expensive checks. llvm-svn: 341589
* Output per-function size-info remarksJessica Paquette2018-09-065-26/+250
| | | | | | | | | | | This patch adds per-function size information remarks. Previously, passing -Rpass-analysis=size-info would only give you per-module changes. By adding the ability to do this per-function, it's easier to see which functions contributed the most to size changes. https://reviews.llvm.org/D51467 llvm-svn: 341588
* [LoopPassManager] MemorySSA should be preserved when enabled.Alina Sbirlea2018-09-062-4/+4
| | | | llvm-svn: 341587
* Reland rL341509: "[llvm-dwp] Use buffer_stream if output file is not ↵Fangrui Song2018-09-062-5/+11
| | | | | | | | | | seekable (e.g. "-")" It caused ambiguity between llvm::cl::Optional and llvm::Optional, which has been fixed by dropping `using namespace cl;` in favor of explicit cl:: qualified names. llvm-svn: 341586
* [COFF] don't mark lazy symbols as used in regular objectsBob Haarman2018-09-063-6/+22
| | | | | | | | | | | | | | | | | | Summary: r338767 updated the COFF and wasm linker SymbolTable code to be strutured more like the ELF linker's. That inadvertedly changed the behavior of the COFF linker so that lazy symbols would be marked as used in regular objects. This change adds an overload of the insert() function, similar to the ELF linker, which does not perform that marking. Reviewers: ruiu, rnk, hans Subscribers: aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D51720 llvm-svn: 341585
* [llvm-dwp] Use cl:: instead of using namespace clFangrui Song2018-09-061-13/+13
| | | | | | | | | | `using namespace cl` makes llvm::cl::Optional (in Support/CommandLine.h) visible which will cause ambiguity when unqualified `Optional` is looked up (can also refer to llvm::Optional). cl:: is used much more than `using namespace cl`, so let's not use the latter. Also append \n to the argument of cl::ParseCommandLineOptions llvm-svn: 341584
OpenPOWER on IntegriCloud