summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [CMake] Only test debugserver if platform can use debugserverAlex Langford2019-01-181-1/+1
| | | | | | | | | | | | In commit svn r351496 I changed this condition from `if(LLDB_CAN_USE_DEBUGSERVER)` to `if(NOT SKIP_TEST_DEBUGSERVER)`. This causes debugserver tests to run on windows, which shouldn't happen. SKIP_TEST_DEBUGSERVER is set either by the user (it shouldn't be set on windows builds) or in the debugserver CMake logic (which doesn't get included when building on windows). Therefore, I changed the condition to be `if(LLDB_CAN_USE_DEBUGSERVER AND NOT SKIP_TEST_DEBUGSERVER)`. llvm-svn: 351498
* [lit] Fix lldbtest formatJonas Devlieghere2019-01-171-2/+5
| | | | | | | The lldbtest format was incorrectly detecting XFAIL as FAIL because it was looking for the `FAIL:` substring in the dotest output. llvm-svn: 351497
* [CMake] Prevent lldbDebugserverCommon from building if you disable ↵Alex Langford2019-01-172-86/+85
| | | | | | | | | | | | | | | | | | | | debugserver builds Summary: The flags `LLDB_USE_SYSTEM_DEBUGSERVER` and `LLDB_NO_DEBUGSERVER` were introduced to the debugserver build. If one of these two flags are set, then we do not build and sign debugserver. However I noticed that we were still building the lldbDebugserverCommon and lldbDebugserverCommon_NonUI libraries regardless of whether or not these flags were set. I don't believe we should be building these libraries unless we are building and signing debugserver. Reviewers: sgraenitz, davide, JDevlieghere, beanz, vsk, aprantl, labath Subscribers: mgorny, jfb, lldb-commits Differential Revision: https://reviews.llvm.org/D56763 llvm-svn: 351496
* Make integral-o-pointer conversions in SFINAE illegal.Erich Keane2019-01-172-1/+23
| | | | | | | | | | | As reported in PR40362, allowing the conversion from an integral to a pointer type (despite being illegal in the C++ standard) will cause surprsing results when testing for certain behaviors in SFINAE. This patch converts the error to a SFINAE Error and adds a test to ensure that it is still a warning in non-SFINAE but an error in it. Change-Id: I1f475637fa4d83217ae37dc6b5dbf653e118fae4 llvm-svn: 351495
* AMDGPU: Convert tests away from llvm.SI.load.constMatt Arsenault2019-01-178-282/+282
| | | | llvm-svn: 351494
* Address Ried's post-commit review comment on r351477.Erik Pilkington2019-01-171-0/+2
| | | | llvm-svn: 351493
* [HotColdSplit] Allow outlining with live outputsVedant Kumar2019-01-172-10/+68
| | | | | | | | | | | | | Prior to r348205, extracting code regions with live output values was disabled because of a miscompilation (PR39433). Lift the restriction as PR39433 has been addressed. Tested on LNT+externals, on a run of check-llvm in a stage2 build, and with a full build of iOS (with hot/cold splitting enabled). As a drive-by, remove an errant TODO. llvm-svn: 351492
* [HotColdSplit] Consider resume instructions to be coldVedant Kumar2019-01-172-1/+21
| | | | | | | | | | Resuming exception unwinding is roughly as unlikely as throwing an exception. Tested on LNT+externals (in particular, the C++ EH regression tests provide end-to-end test coverage), as well as with a full build of iOS. llvm-svn: 351491
* Don't run TestBreakpointThumbCodesection.py on darwin systems;Jason Molenda2019-01-172-1/+4
| | | | | | | | | we don't use a thumb code section. Don't run Test128BitsInteger.py on armv7k; it's not a supported type on that target. llvm-svn: 351490
* [CMake] Fix lldb-test-depends targetJonas Devlieghere2019-01-172-1/+2
| | | | | | | | The lldb-test-depends target was using the old CMake variable name LLDB_TEST_DEPENDS instead of LLDB_TEST_DEPS. This patch moves the target definition and makes it use the correct one. llvm-svn: 351489
* [WebAssembly] Fix windows compiler warning by using explicit 64bit shift. NFC.Sam Clegg2019-01-172-2/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D56874 llvm-svn: 351488
* Fix cleanup registration for lambda captures.Richard Smith2019-01-175-31/+153
| | | | | | | | | | | | | | | | | Lambda captures should be destroyed if an exception is thrown only if the construction of the complete lambda-expression has not completed. (If the lambda-expression has been fully constructed, any exception will invoke its destructor, which will destroy the captures.) This is directly modeled after how we handle the equivalent situation in InitListExprs. Note that EmitLambdaLValue was unreachable because in C++11 onwards the frontend never creates the awkward situation where a prvalue expression (such as a lambda) is used in an lvalue context (such as the left-hand side of a class member access). llvm-svn: 351487
* [lit] Make sure tests are actually skipped on darwin and windows.Davide Italiano2019-01-1710-10/+10
| | | | llvm-svn: 351486
* [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25Vladimir Stefanovic2019-01-1726-108/+408
| | | | | | | | | | | | The callee address is added as an optional operand (MCSymbol) in AdjustInstrPostInstrSelection() and then used by asm printer to insert: '.reloc tmplabel, R_MIPS_JALR, symbol tmplabel:'. Controlled with '-mips-jalr-reloc', default is true. Differential revision: https://reviews.llvm.org/D56694 llvm-svn: 351485
* Add -Wctad-maybe-unsupported to diagnose CTAD on types with no user defined ↵Eric Fiselier2019-01-174-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | deduction guides. Summary: Some style guides want to allow using CTAD only on types that "opt-in"; i.e. on types that are designed to support it and not just types that *happen* to work with it. This patch implements the `-Wctad-maybe-unsupported` warning, which is off by default, which warns when CTAD is used on a type that does not define any deduction guides. The following pattern can be used to suppress the warning in cases where the type intentionally doesn't define any deduction guides: ``` struct allow_ctad_t; template <class T> struct TestSuppression { TestSuppression(T) {} }; TestSuppression(allow_ctad_t)->TestSuppression<void>; // guides with incomplete parameter types are never considered. ``` Reviewers: rsmith, james.dennett, gromer Reviewed By: rsmith Subscribers: jdennett, Quuxplusone, lebedev.ri, cfe-commits Differential Revision: https://reviews.llvm.org/D56731 llvm-svn: 351484
* [HotColdSplit] Relax requirement that the cold sink block be extractableVedant Kumar2019-01-172-5/+5
| | | | | | | | | Relaxing this requirement creates opportunities to split code dominated by an EH pad. Tested on LNT+externals. llvm-svn: 351483
* [demangler] Support for block literals.Erik Pilkington2019-01-173-0/+14
| | | | llvm-svn: 351482
* [demangler] Ignore leading underscores if presentErik Pilkington2019-01-173-4/+8
| | | | | | | On MacOS, symbols start with a leading underscore, so just parse and ignore it if present. llvm-svn: 351481
* [HotColdSplit] Simplify tests by lowering their splitting thresholdsVedant Kumar2019-01-1725-63/+39
| | | | | | | | This gets rid of the brittle/mysterious calls to @sink()/@sideeffect() peppered throughout the test cases. They are no longer needed to force splitting to occur. llvm-svn: 351480
* xray: Add missing header to list of installed headers.Peter Collingbourne2019-01-171-0/+1
| | | | | | | | Spotted by gn's llvm/utils/gn/build/sync_source_lists_from_cmake.py script. Differential Revision: https://reviews.llvm.org/D56797 llvm-svn: 351479
* Fix -Wsign-compare in new testsReid Kleckner2019-01-171-7/+7
| | | | llvm-svn: 351478
* Fix an MSVC bot failure from r351474.Erik Pilkington2019-01-171-1/+1
| | | | llvm-svn: 351477
* [SampleFDO] Skip profile reading when flattened profile used in ThinLTO postlinkWei Mi2019-01-174-5/+65
| | | | | | | | | | | | | If the sample profile has no inlining hierachy information included, we call the sample profile is flattened. For flattened profile, in ThinLTO postlink phase, SampleProfileLoader's hot function inlining and profile annotation will do nothing, so it is better to save the effort to read in the profile and run the sample profile loader pass. It is helpful for reducing compile time when the flattened profile is huge. Differential Revision: https://reviews.llvm.org/D54819 llvm-svn: 351476
* [InstCombine] Don't sink dynamic allocasReid Kleckner2019-01-172-3/+57
| | | | | | | | | | | | | | | | | | | Summary: InstCombine's sinking algorithm only thinks about memory. It doesn't think about non-memory constraints like stack object lifetime. It can sink dynamic allocas across a stacksave call, which may be used with stackrestore, which can incorrectly reduce the lifetime of the dynamic alloca. Fixes PR40365 Reviewers: hfinkel, efriedma Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D56872 llvm-svn: 351475
* NFC: Make the copies of the demangler byte-for-byte identicalErik Pilkington2019-01-1717-98/+301
| | | | | | | | | | | | | | With this patch, the copies of the files ItaniumDemangle.h, StringView.h, and Utility.h are kept byte-for-byte in sync between libcxxabi and llvm. All differences (namespaces, fallthrough, and unreachable macros) are defined in each copies' DemanglerConfig.h. This patch also adds a script to copy changes from libcxxabi (cp-to-llvm.sh), and a README.txt explaining the situation. Differential revision: https://reviews.llvm.org/D53538 llvm-svn: 351474
* [clang-tidy] Add abseil-duration-conversion-cast checkHyrum Wright2019-01-178-1/+257
| | | | | | Differential Revision: https://reviews.llvm.org/D56532 llvm-svn: 351473
* Fix the buildbot failure introduced by r351404Sanjin Sijaric2019-01-172-2/+4
| | | | | | | | | EXPENSIVE_CHECKS buildbots are failing due to r351404. Add x1 as live in to the funclet basic block for SEH funclets, as well as -verify-machineinstrs to the test case that triggered the failure. llvm-svn: 351472
* Revert r351208 (which was a revert of r350892).Aaron Ballman2019-01-173-36/+26
| | | | | | This corresponds to the fix to Clang in r351470. llvm-svn: 351471
* Revert r351209 (which was a revert of r350891) with a fix.Aaron Ballman2019-01-174-122/+198
| | | | | | The test case had a parse error that was causing the condition string to be misreported. We now have better fallback code for error cases. llvm-svn: 351470
* llvm build: Merge r351448Nico Weber2019-01-172-0/+2
| | | | llvm-svn: 351469
* [Documentation] Fix another link in docs/clang-tidy/Contributing.rst.Eugene Zelenko2019-01-171-6/+9
| | | | llvm-svn: 351468
* [Documentation] Another attempt to fix link in ↵Eugene Zelenko2019-01-171-14/+15
| | | | | | docs/clang-tidy/Contributing.rst. Use HTTPS for links. llvm-svn: 351467
* [Documentation] Fix link in docs/clang-tidy/Contributing.rst.Eugene Zelenko2019-01-171-2/+3
| | | | llvm-svn: 351466
* [WebAssembly] Fixing 2 more symbol offset related tests.Wouter van Oortmerssen2019-01-172-7/+7
| | | | llvm-svn: 351465
* [Test] Fix debug-loc-0.mir with EXPENSIVE_CHECKSJonas Devlieghere2019-01-171-1/+1
| | | | | | The `llc` invocation was missing `-start-before=machine-cp`. llvm-svn: 351464
* [Documentation] Add a chapter about Clang-tidy integrations.Eugene Zelenko2019-01-173-508/+626
| | | | | | | | Patch by Marina Kalashina. Differential Revision: https://reviews.llvm.org/D54945 llvm-svn: 351463
* [WebAssembly] Changed objdump output to offsets instead of indices.Wouter van Oortmerssen2019-01-171-3/+3
| | | | | | | | | | | | Summary: This is to accommodate this change: https://reviews.llvm.org/D56684 Reviewers: sbc100 Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D56687 llvm-svn: 351462
* [CodeGenObjC] Use a constant value for non-fragile ivar offsets when possibleErik Pilkington2019-01-174-31/+91
| | | | | | | | | | | | | | | If a class inherits from NSObject and has an implementation, then we can assume that ivar offsets won't need to be updated by the runtime. This allows us to index into the object using a constant value and avoid loading from the ivar offset variable. This patch was adapted from one written by Pete Cooper. rdar://problem/10132568 Differential revision: https://reviews.llvm.org/D56802 llvm-svn: 351461
* [WebAssembly] Fixed objdump not parsing function headers.Wouter van Oortmerssen2019-01-1712-27/+153
| | | | | | | | | | | | | | | | | | | | | | | Summary: objdump was interpreting the function header containing the locals declaration as instructions. To parse these without injecting target specific code in objdump, MCDisassembler::onSymbolStart was added to be implemented by the WebAssembly implemention. WasmObjectFile now returns a code offset for the "address" of a symbol, rather than the index. This is also more in-line with what other targets do. Also ensured that the AsmParser correctly puts each function in its own segment to enable this test case. Reviewers: sbc100, dschuff Subscribers: jgravelle-google, aheejin, sunfish, rupprecht, llvm-commits Differential Revision: https://reviews.llvm.org/D56684 llvm-svn: 351460
* [ObjC] Follow-up r350768 and allow the use of unavailable methods that areAlex Lorenz2019-01-173-9/+25
| | | | | | | | | | | | | | | | declared in a parent class from within the @implementation context This commit extends r350768 and allows the use of methods marked as unavailable that are declared in a parent class/category from within the @implementation of the class where the method is marked as unavailable. This allows users to call init that's marked as unavailable even if they don't define it. rdar://47134898 Differential Revision: https://reviews.llvm.org/D56816 llvm-svn: 351459
* Add a missing dependency to fix build.Rui Ueyama2019-01-171-0/+1
| | | | llvm-svn: 351458
* TLS: Respect visibility for thread_local variables on Darwin (PR40327)Vlad Tsyrklevich2019-01-173-5/+24
| | | | | | | | | | | | | | | | | | Summary: Teach clang to mark thread wrappers for thread_local variables with hidden visibility when the original variable is marked with hidden visibility. This is necessary on Darwin which exposes the thread wrapper instead of the thread variable. The thread wrapper would previously always be created with default visibility unless it had linkonce*/weak_odr linkage. Reviewers: rjmccall Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D56818 llvm-svn: 351457
* [libFuzzer][MSVC] Make attribute-use compatible with MSVCJonathan Metzman2019-01-177-24/+46
| | | | | | | | | | | | | | Summary: Replace attributes with macros that use equivalent declspecs for MSVC. Reviewers: vitalybuka Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D56512 llvm-svn: 351456
* Revert "[ThinLTO] Add summary entries for index-based WPD"Teresa Johnson2019-01-1714-721/+26
| | | | | | | | Mistaken commit of something still under review! This reverts commit r351453. llvm-svn: 351455
* Add -dump-input=always to cfi-devirt test to debug flakeTeresa Johnson2019-01-171-5/+5
| | | | | | To help diagnose flaky bot failures in PR40351. llvm-svn: 351454
* [ThinLTO] Add summary entries for index-based WPDTeresa Johnson2019-01-1714-26/+721
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: If LTOUnit splitting is disabled, the module summary analysis computes the summary information necessary to perform single implementation devirtualization during the thin link with the index and no IR. The information collected from the regular LTO IR in the current hybrid WPD algorithm is summarized, including: 1) For vtable definitions, record the function pointers and their offset within the vtable initializer (subsumes the information collected from IR by tryFindVirtualCallTargets). 2) A record for each type metadata summarizing the vtable definitions decorated with that metadata (subsumes the TypeIdentiferMap collected from IR). Also added are the necessary bitcode records, and the corresponding assembly support. The index-based WPD will be sent as a follow-on. Depends on D53890. Reviewers: pcc Subscribers: mehdi_amini, Prazek, inglorion, eraman, steven_wu, dexonsmith, arphaman, llvm-commits Differential Revision: https://reviews.llvm.org/D54815 llvm-svn: 351453
* [llvm-readobj][ELF]Add demangling supportJames Henderson2019-01-175-24/+273
| | | | | | | | | | | | | | | | | | | | | This change adds demangling support to the ELF side of llvm-readobj, under the switch --demangle/-C. The following places are demangled: symbol table dumps (static and dynamic), relocation dumps (static and dynamic), addrsig dumps, call graph profile dumps, and group section signature symbols. Although GNU readelf doesn't support demangling, it is still a useful feature to have, and brings it on a par with llvm-objdump's capabilities. This fixes https://bugs.llvm.org/show_bug.cgi?id=40054. Reviewed by: grimar, rupprecht Differential Revision: https://reviews.llvm.org/D56791 llvm-svn: 351450
* CodeGen: Cast llvm.flt.rounds result to match __builtin_flt_roundsAnton Korobeynikov2019-01-173-0/+24
| | | | | | | | | | | | | llvm.flt.rounds returns an i32, but the builtin expects an integer. On targets where integers are not 32-bits clang tries to bitcast the result, causing an assertion failure. The patch enables newlib build for msp430. Patch by Edward Jones! Differential Revision: https://reviews.llvm.org/D24461 llvm-svn: 351449
* Move demangling function from llvm-objdump to Demangle libraryJames Henderson2019-01-177-18/+62
| | | | | | | | | | | | | | | | This allows it to be used in an upcoming llvm-readobj change. A small change in internal behaviour of the function is to always call the microsoftDemangle function if the string does not have an itanium encoding prefix, rather than only if it starts with '?'. This is harmless because the microsoftDemangle function does the same check already. Reviewed by: grimar, erik.pilkington Differential Revision: https://reviews.llvm.org/D56721 llvm-svn: 351448
* Recommit "Teach the default symbol vendor to respect ↵Pavel Labath2019-01-174-5/+85
| | | | | | | | | | | | | | module.GetSymbolFileFileSpec()" This reapplies commit r351330, which was reverted due to a failing test on macos. The failure was because the SymbolVendor used on MacOS was stricter than the default (or ELF) symbol vendor, and rejected the symbol file because it's UUID did not match the object file. This version of the patch adds a uuid load command to the test macho file to make sure the UUIDs match. llvm-svn: 351447
OpenPOWER on IntegriCloud