summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Update a comment according to r255360 "Remove -r and -R options from dotest.py"Tatyana Krasnukha2018-12-141-2/+1
| | | | llvm-svn: 349208
* DebugInfo: Avoid using split DWARF when the split unit would be empty.David Blaikie2018-12-147-68/+80
| | | | | | | | | | | | | | | | | | | | | In ThinLTO many split CUs may be effectively empty because of the lack of support for cross-unit references in split DWARF. Using a split unit in those cases is just a waste/overhead - and turned out to be one contributor to a significant symbolizer performance issue when global variable debug info was being imported (see r348416 for the primary fix) due to symbolizers seeing CUs with no ranges, assuming there might still be addresses covered and walking into the split CU to see if there are any ranges (when that split CU was in a DWP file, that meant loading the DWP and its index, the index was extra large because of all these fractured/empty CUs... and so was very expensive to load). (the 3rd fix which will follow, is to assume that a CU with no ranges is empty rather than merely missing its CU level range data - and to not walk into its DIEs (split or otherwise) in search of address information that is generally not present) llvm-svn: 349207
* Revert "Add extension to always default-initialize nullptr_t."Erich Keane2018-12-144-24/+12
| | | | | | | | | This reverts commit 46efdf2ccc2a80aefebf8433dbf9c7c959f6e629. Richard Smith commented just after I submitted this that this is the wrong solution. Reverting so that I can fix differently. llvm-svn: 349206
* [codeview] Add begin/endSymbolRecord helpers, NFCReid Kleckner2018-12-142-138/+84
| | | | | | | Previously beginning a symbol record was excessively verbose. Now it's a bit simpler. This follows the same pattern as begin/endCVSubsection. llvm-svn: 349205
* [test] Capture stderr from 'tar --version' call as wellMichal Gorny2018-12-141-3/+6
| | | | | | | | | | | Capture the stderr from 'tar --version' call as otherwise error messages spill onto user's terminal unnecessarily (e.g. on NetBSD where tar does not support long options). While at it, refactor the code to use communicate() instead of reinventing the wheel. Differential Revision: https://reviews.llvm.org/D55443 llvm-svn: 349204
* DebugInfo: Move addAddrBase from DwarfUnit to DwarfCompileUnitDavid Blaikie2018-12-144-12/+12
| | | | | | Only CUs need an address table reference. llvm-svn: 349203
* [Hexagon] Add patterns for shifts of v2i16Krzysztof Parzyszek2018-12-142-0/+28
| | | | | | This fixes https://llvm.org/PR39983. llvm-svn: 349202
* Add extension to always default-initialize nullptr_t.Erich Keane2018-12-144-12/+24
| | | | | | | | | | | | | | | | | Core issue 1013 suggests that having an uninitialied std::nullptr_t be UB is a bit foolish, since there is only a single valid value. This DR reports that DR616 fixes it, which does so by making lvalue-to-rvalue conversions from nullptr_t be equal to nullptr. However, just implementing that results in warnings/etc in many places. In order to fix all situations where nullptr_t would seem uninitialized, this patch instead (as an otherwise transparent extension) default initializes uninitialized VarDecls of nullptr_t. Differential Revision: https://reviews.llvm.org/D53713 Change-Id: I84d72a9290054fa55341e8cbdac43c8e7f25b885 llvm-svn: 349201
* [GlobalISel] LegalizerHelper: Implement fewerElementsVector for G_LOAD/G_STOREVolkan Keles2018-12-143-41/+98
| | | | | | | | | | | | Reviewers: aemerson, dsanders, bogner, paquette, aditya_nandakumar Reviewed By: dsanders Subscribers: rovka, kristof.beyls, javed.absar, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53728 llvm-svn: 349200
* [Hexagon] Use IMPLICIT_DEF to any-extend 32-bit values to 64 bitsKrzysztof Parzyszek2018-12-141-23/+25
| | | | llvm-svn: 349199
* Add --plugin-opt=emit-llvm option.Rui Ueyama2018-12-145-0/+31
| | | | | | | | | | | | | | `--plugin-opt=emit-llvm` is an option for LTO. It makes the linker to combine all bitcode files and write the result to an output file without doing codegen. Gold LTO plugin has this option. This option is being used for some post-link code analysis tools that have to see a whole program but don't need to see them in the native machine code. Differential Revision: https://reviews.llvm.org/D55717 llvm-svn: 349198
* Using llvm::find_if() instead of a range-based for loop; NFC.Aaron Ballman2018-12-141-12/+9
| | | | | | This addresses post-commit review feedback from r349188. llvm-svn: 349197
* [AMDGPU] Promote constant offset to the immediate by finding a new base with ↵Farhana Aleen2018-12-144-1/+1001
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 13bit constant offset from the nearby instructions. Summary: Promote constant offset to immediate by recomputing the relative 13bit offset from nearby instructions. E.g. s_movk_i32 s0, 0x1800 v_add_co_u32_e32 v0, vcc, s0, v2 v_addc_co_u32_e32 v1, vcc, 0, v6, vcc s_movk_i32 s0, 0x1000 v_add_co_u32_e32 v5, vcc, s0, v2 v_addc_co_u32_e32 v6, vcc, 0, v6, vcc global_load_dwordx2 v[5:6], v[5:6], off global_load_dwordx2 v[0:1], v[0:1], off => s_movk_i32 s0, 0x1000 v_add_co_u32_e32 v5, vcc, s0, v2 v_addc_co_u32_e32 v6, vcc, 0, v6, vcc global_load_dwordx2 v[5:6], v[5:6], off global_load_dwordx2 v[0:1], v[5:6], off offset:2048 Author: FarhanaAleen Reviewed By: arsenm, rampitec Subscribers: llvm-commits, AMDGPU Differential Revision: https://reviews.llvm.org/D55539 llvm-svn: 349196
* [Clang] Add __builtin_launderEric Fiselier2018-12-1410-1/+558
| | | | | | | | | | | | | | | | | Summary: This patch adds `__builtin_launder`, which is required to implement `std::launder`. Additionally GCC provides `__builtin_launder`, so thing brings Clang in-line with GCC. I'm not exactly sure what magic `__builtin_launder` requires, but based on previous discussions this patch applies a `@llvm.invariant.group.barrier`. As noted in previous discussions, this may not be enough to correctly handle vtables. Reviewers: rnk, majnemer, rsmith Reviewed By: rsmith Subscribers: kristina, Romain-Geissler-1A, erichkeane, amharc, jroelofs, cfe-commits, Prazek Differential Revision: https://reviews.llvm.org/D40218 llvm-svn: 349195
* Remove the Disassembly benchmarks.Adrian Prantl2018-12-143-355/+0
| | | | | | | | | | | | While I was out hunting for remaining pexpect-based tests, I came across these tests that can't possibly work an any modern system, as they rely on having gdb available in /Developer. This patch simply removes the test without replacement. Differential Revision: https://reviews.llvm.org/D55559 llvm-svn: 349194
* Add missing includes and forward decls to unbreak buildEric Fiselier2018-12-141-1/+3
| | | | llvm-svn: 349193
* [OPENMP][NVPTX]Improved interwarp copy function.Alexey Bataev2018-12-143-61/+33
| | | | | | | | | Inlined runtime with the current implementation of the interwarp copy function leads to the undefined behavior because of the not quite correct implementation of the barriers. Start using generic __kmpc_barier function instead of the custom made barriers. llvm-svn: 349192
* [analyzer] MoveChecker Pt.6: Suppress the warning for the move-safe STL classes.Artem Dergachev2018-12-144-58/+97
| | | | | | | | | | | Some C++ standard library classes provide additional guarantees about their state after move. Suppress warnings on such classes until a more precise behavior is implemented. Warnings for locals are not suppressed anyway because it's still most likely a bug. Differential Revision: https://reviews.llvm.org/D55307 llvm-svn: 349191
* [analyzer] MoveChecker: Improve invalidation policies.Artem Dergachev2018-12-142-20/+75
| | | | | | | | | | | | | | | | | If a moved-from object is passed into a conservatively evaluated function by pointer or by reference, we assume that the function may reset its state. Make sure it doesn't apply to const pointers and const references. Add a test that demonstrates that it does apply to rvalue references. Additionally, make sure that the object is invalidated when its contents change for reasons other than invalidation caused by evaluating a call conservatively. In particular, when the object's fields are manipulated directly, we should assume that some sort of reset may be happening. Differential Revision: https://reviews.llvm.org/D55289 llvm-svn: 349190
* Tolerate Clangs new static_assert messagesEric Fiselier2018-12-146-6/+6
| | | | llvm-svn: 349189
* Update our SARIF support from 10-10 to 11-28.Aaron Ballman2018-12-143-54/+105
| | | | | | | | | | | | | Functional changes include: * The run.files property is now an array instead of a mapping. * fileLocation objects now have a fileIndex property specifying the array index into run.files. * The resource.rules property is now an array instead of a mapping. * The result object was given a ruleIndex property that is an index into the resource.rules array. * rule objects now have their "id" field filled out in addition to the name field. * Updated the schema and spec version numbers to 11-28. llvm-svn: 349188
* [libcxx] Mark some tests as still failing on macosx10.14Louis Dionne2018-12-143-0/+3
| | | | llvm-svn: 349187
* [SDAG] Ignore chain operand in REG_SEQUENCE when emitting instructionsKrzysztof Parzyszek2018-12-141-0/+4
| | | | llvm-svn: 349186
* [AArch64] Simplify the scheduling predicates (NFC)Evandro Menezes2018-12-142-17/+21
| | | | | | | The instruction encodings make it unnecessary to distinguish extended W-form from X-form instructions. llvm-svn: 349185
* [TransformWarning] Do not warn missed transformations in optnone functions.Michael Kruse2018-12-142-0/+55
| | | | | | | | | | | | | | | Optimization transformations are intentionally disabled by the 'optnone' function attribute. Therefore do not warn if transformation metadata is still present. Using the legacy pass manager structure, the `skipFunction` method takes care for the optnone attribute (already called before this patch). For the new pass manager, there is no equivalent, so we check for the 'optnone' attribute manually. Differential Revision: https://reviews.llvm.org/D55690 llvm-svn: 349184
* Add missing .dmp files to test inputs.Greg Clayton2018-12-141-0/+3
| | | | llvm-svn: 349183
* Cache memory regions in ProcessMinidump and use the linux maps as the source ↵Greg Clayton2018-12-1413-106/+456
| | | | | | | | | | | | | | | | | | | | | | | of the information if available Breakpad creates minidump files that sometimes have: - linux maps textual content - no MemoryInfoList Right now unless the file has a MemoryInfoList we get no region information. This patch: - reads and caches the memory region info one time and sorts it for easy subsequent access - get the region info from the best source in this order: - linux maps info (if available) - MemoryInfoList (if available) - MemoryList or Memory64List - returns memory region info for the gaps between regions (before the first and after the last) Differential Revision: https://reviews.llvm.org/D55522 llvm-svn: 349182
* When resolving a merge conflict, I put something inside an #ifdef. Fixed.Marshall Clow2018-12-141-1/+1
| | | | llvm-svn: 349181
* Fix Xcode project for MIPS architecture plug-in and move of Event, Listener ↵Greg Clayton2018-12-141-18/+41
| | | | | | and Broadcaster to Utility. llvm-svn: 349180
* [x86] add tests for extractelement of FP binops; NFCSanjay Patel2018-12-141-0/+85
| | | | llvm-svn: 349179
* Implement P1209 - Adopt Consistent Container Erasure from Library ↵Marshall Clow2018-12-1439-1/+1717
| | | | | | Fundamentals 2 for C++20. Reviewed as https://reviews.llvm.org/D55532 llvm-svn: 349178
* [ARM] make test immune to scalarization improvements; NFCSanjay Patel2018-12-141-2/+2
| | | | llvm-svn: 349177
* [x86] make tests immune to scalarization improvements; NFCSanjay Patel2018-12-142-4/+4
| | | | llvm-svn: 349176
* [NativePDB] Fix local-variables.cpp test.Zachary Turner2018-12-141-1/+1
| | | | | | | | Since we're actually running an executable on the host now, different versions of Windows could load different system libraries, so we need to regex out the number of loaded modules. llvm-svn: 349175
* [globalisel][combiner] Fix r349167 for release mode botsDaniel Sanders2018-12-141-0/+2
| | | | | | This test relies on -debug-only which is unavailable in non-asserts builds. llvm-svn: 349174
* [ADT] Fix bugs in SmallBitVector.Zachary Turner2018-12-142-30/+292
| | | | | | | | | | | Fixes: * find_last/find_last_unset - off-by-one error * Compound assignment ops and operator== when mixing big/small modes Patch by Brad Moody Differential Revision: https://reviews.llvm.org/D54933 llvm-svn: 349173
* Fix Visual Studio PointerIntPair visualizerZachary Turner2018-12-141-3/+3
| | | | | | | | Patch by: Trass3r Differential Revision: https://reviews.llvm.org/D55252 llvm-svn: 349172
* [libcxx] Make sure use_system_cxx_lib does not override cxx_runtime_root for ↵Louis Dionne2018-12-142-6/+5
| | | | | | | | | | | | DYLD_LIBRARY_PATH Otherwise, even specifying a runtime root different from the library we're linking against won't work -- the library we're linking against is always used. This is undesirable if we try testing something like linking against a recent libc++.dylib but running the tests against an older version (the back-deployment use case). llvm-svn: 349171
* [Transforms] Preserve metadata when converting invoke to call.Michael Kruse2018-12-142-0/+45
| | | | | | | | | | | | | | | The `changeToCall` function did not preserve the invoke's metadata. Currently, there is probably no metadata that depends on being applied on a CallInst or InvokeInst. Therefore we can replace the instruction's metadata. This fixes http://llvm.org/PR39994 Suggested-by: Moritz Kreutzer <moritz.kreutzer@siemens.com> Differential Revision: https://reviews.llvm.org/D55666 llvm-svn: 349170
* [MS Demangler] Fail gracefully on invalid pointer types.Zachary Turner2018-12-142-6/+17
| | | | | | | | | Once we detect a 'P', we know we a pointer type is upcoming, so we make some assumptions about the output that follows. If those assumptions didn't hold, we would assert. Instead, we should fail gracefully and propagate the error up. llvm-svn: 349169
* [MS Demangler] Add a regression test for an invalid mangled name.Zachary Turner2018-12-141-0/+6
| | | | llvm-svn: 349168
* [globalisel][combiner] Make the CombinerChangeObserver a ↵Daniel Sanders2018-12-1411-72/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MachineFunction::Delegate Summary: This allows us to register it with the MachineFunction delegate and be notified automatically about erasure and creation of instructions. However, we still need explicit notification for modifications such as those caused by setReg() or replaceRegWith(). There is a catch with this though. The notification for creation is delivered before any operands can be added. While appropriate for scheduling combiner work. This is unfortunate for debug output since an opcode by itself doesn't provide sufficient information on what happened. As a result, the work list remembers the instructions (when debug output is requested) and emits a more complete dump later. Another nit is that the MachineFunction::Delegate provides const pointers which is inconvenient since we want to use it to schedule future modification. To resolve this GISelWorkList now has an optional pointer to the MachineFunction which describes the scope of the work it is permitted to schedule. If a given MachineInstr* is in this function then it is permitted to schedule work to be performed on the MachineInstr's. An alternative to this would be to remove the const from the MachineFunction::Delegate interface, however delegates are not permitted to modify the MachineInstr's they receive. In addition to this, the observer has three interface changes. * erasedInstr() is now erasingInstr() to indicate it is about to be erased but still exists at the moment. * changingInstr() and changedInstr() have been added to report changes before and after they are made. This allows us to trace the changes in the debug output. * As a convenience changingAllUsesOfReg() and finishedChangingAllUsesOfReg() will report changingInstr() and changedInstr() for each use of a given register. This is primarily useful for changes caused by MachineRegisterInfo::replaceRegWith() With this in place, both combine rules have been updated to report their changes to the observer. Finally, make some cosmetic changes to the debug output and make Combiner and CombinerHelp Reviewers: aditya_nandakumar, bogner, volkan, rtereshin, javed.absar Reviewed By: aditya_nandakumar Subscribers: mgorny, rovka, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D52947 llvm-svn: 349167
* [AArch64] make test immune to scalarization improvements; NFCSanjay Patel2018-12-141-5/+6
| | | | | | | This is explicitly implementing what the comment says rather than relying on the implicit zext of a costant operand. llvm-svn: 349166
* Fix a crash in llvm-undname with invalid types.Zachary Turner2018-12-141-2/+2
| | | | llvm-svn: 349165
* [SystemZ] make test immune to scalarization improvements; NFCSanjay Patel2018-12-141-1/+4
| | | | | | | The undef operands mean this test is probably still too fragile to accomplish what the comments suggest. llvm-svn: 349164
* [Hexagon] make test immune to scalarization improvements; NFCSanjay Patel2018-12-141-3/+3
| | | | llvm-svn: 349163
* [x86] auto-generate complete checks; NFCSanjay Patel2018-12-141-56/+132
| | | | llvm-svn: 349162
* [x86] regenerate test checks; NFCSanjay Patel2018-12-141-7/+14
| | | | llvm-svn: 349161
* [x86] make tests immune to scalarization improvements; NFCSanjay Patel2018-12-143-14/+14
| | | | llvm-svn: 349160
* Mark interception_failure_test.cc as passing for NetBSD and asan-dynamic-runtimeKamil Rytarowski2018-12-141-1/+5
| | | | llvm-svn: 349159
OpenPOWER on IntegriCloud