summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Reproducers] Fix reproducers unittest.Jonas Devlieghere2019-01-181-11/+10
| | | | | | Fix fallout from r351501 in the reproducer unittest. llvm-svn: 351524
* [AVR] Expand 8/16-bit multiplication to libcalls on MCUs that don't have ↵Dylan McKay2019-01-188-17/+70
| | | | | | | | | | | | | | | | | hardware MUL This change modifies the LLVM ISel lowering settings so that 8-bit/16-bit multiplication is expanded to calls into the compiler runtime library if the MCU being targeted does not support multiplication in hardware. Before this, MUL instructions would be generated on CPUs like the ATtiny85, triggering a CPU reset due to an illegal instruction at runtime. First raised in https://github.com/avr-rust/rust/issues/124. llvm-svn: 351523
* [X86] Add test cases showing failure to fold a global variable address into ↵Craig Topper2019-01-182-0/+42
| | | | | | the gather addressing mode when using the target specific intrinsics. NFC llvm-svn: 351522
* [X86] Change avx512-gather-scatter-intrin.ll to use x86_64-unknown-unknown ↵Craig Topper2019-01-181-53/+53
| | | | | | | | instead of x86_64-apple-darwin. NFC Will help with an upcoming patch. llvm-svn: 351521
* Re-enable terminator folding in LoopSimplifyCFG: underlying bugs fixedMax Kazantsev2019-01-181-1/+1
| | | | llvm-svn: 351520
* gn build: unbreak mac (and maybe win) after r351258, r351277Nico Weber2019-01-182-3/+9
| | | | | | | | | | | | | The check-hwasan build files assert that current_os == "linux" || current_os == "android", so pull it in only there. ar is unused on mac, so don't set it in the stage2 toolchain. (It'd be nicer to use llvm-libtool on mac instead of host libtool, but llvm-libtool doesn't seem to understand the -no_warning_for_no_symbols flag.) Differential Revision: https://reviews.llvm.org/D56898 llvm-svn: 351519
* [PSTL] Convert license text file to use unix line endings, matching theChandler Carruth2019-01-181-70/+70
| | | | | | other licenses in the LLVM project. llvm-svn: 351518
* [DOCS] it it => itXing GUO2019-01-181-1/+1
| | | | | | | | | | | | | | Summary: it it => it for LLVM Language Reference Manual Reviewers: aaron.ballman, Higuoxing, liangdzou Reviewed By: aaron.ballman, Higuoxing, liangdzou Subscribers: Higuoxing, llvm-commits Differential Revision: https://reviews.llvm.org/D56533 llvm-svn: 351517
* gn build: Merge r351499Nico Weber2019-01-181-0/+1
| | | | llvm-svn: 351516
* mac: Correctly disable tools/lto tests when building with LLVM_ENABLE_PIC=OFFNico Weber2019-01-183-3/+4
| | | | | | | | | | | | | | | | llvm/tools sets LLVM_TOOL_LTO_BUILD to Off if LLVM_ENABLE_PIC=OFF, but that's not visible in llvm/test. r289662 added the llvm_tool_lto_build lit parameter, there the intent was to use it with an explicit -DLLVM_TOOL_LTO_BUILD=OFF, which is visible globally. On the review for that (D27739), a mild preference was expressed for using a lit parameter over checking the existence of libLTO.dylib. Since that works with the LLVM_ENABLE_PIC=OFF case too and since it matches what we do for the gold plugin, switch to that approach. Differential Revision: https://reviews.llvm.org/D56805 llvm-svn: 351515
* [analyzer] Introduce proper diagnostic for freeing unowned objectGeorge Karpenkov2019-01-185-9/+42
| | | | | | | | Insert a note when the object becomes not (exclusively) owned. Differential Revision: https://reviews.llvm.org/D56891 llvm-svn: 351514
* [analyzer] Extend the PathDiagnosticLocation constructor to handle CallExitEndGeorge Karpenkov2019-01-183-30/+18
| | | | | | Differential Revision: https://reviews.llvm.org/D56890 llvm-svn: 351513
* [analyzer] [NFC] Clean up messy handling of bug categories in RetainCountCheckerGeorge Karpenkov2019-01-184-150/+112
| | | | | | https://reviews.llvm.org/D56887 llvm-svn: 351512
* [analyzer] const-ify reference to bug type used in BugReporterGeorge Karpenkov2019-01-183-11/+11
| | | | | | Differential Revision: https://reviews.llvm.org/D56885 llvm-svn: 351511
* [analyzer] Extend BugType constructor to accept "SuppressOnSink" as a parameterGeorge Karpenkov2019-01-187-25/+28
| | | | | | Differential Revision: https://reviews.llvm.org/D56884 llvm-svn: 351510
* [analyzer] [RetainCountChecker] Produce a correct message when OSTypeAlloc ↵George Karpenkov2019-01-183-2/+35
| | | | | | | | is used Differential Revision: https://reviews.llvm.org/D56820 llvm-svn: 351509
* [analyzer] [RetainCountChecker] Smart pointer support.George Karpenkov2019-01-187-49/+227
| | | | | | | | rdar://47323216 Differential Revision: https://reviews.llvm.org/D56817 llvm-svn: 351508
* [WebAssembly] Add languages from debug info to producers sectionThomas Lively2019-01-185-15/+54
| | | | | | | | | | Reviewers: aheejin, dschuff, sbc100 Subscribers: aprantl, jgravelle-google, hiraditya, sunfish Differential Revision: https://reviews.llvm.org/D56889 llvm-svn: 351507
* [safestack] Remove dependency of SafeStack on sanitizer_commonVitaly Buka2019-01-184-35/+138
| | | | | | | | | | | | | | Summary: SafeStack needs just few functions from there, but sanitizer_common introduces conflicts with other runtimes, e.g. SCUDO. Reviewers: eugenis, kcc, cryptoad Subscribers: mgorny, krytarowski, fedor.sergeev, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D56886 llvm-svn: 351506
* [analyzer] A speculative fix for buildbot failures in the new SymbolReaperTest.Artem Dergachev2019-01-181-2/+1
| | | | | | I expect an xvalue to be easier to convert. llvm-svn: 351505
* Use llvm::VersionTuple instead of manual version marshallingBrad Smith2019-01-182-6/+8
| | | | llvm-svn: 351504
* [safestack] Replace statics with unnamed namespaceVitaly Buka2019-01-181-29/+33
| | | | | | | | | | Reviewers: eugenis Subscribers: jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D56888 llvm-svn: 351503
* [polly] Change to range-based invocation of llvm::sortMandeep Singh Grang2019-01-181-1/+1
| | | | llvm-svn: 351502
* [Reproducers] Refactor reproducer infoJonas Devlieghere2019-01-183-56/+43
| | | | | | | | | | | | | | | | | | | | | In the original reproducer design, I expected providers to be more dynamic than they turned out. For example, we don't have any instances where one provider has multiple files. Additionally, I expected there to be less locality between capture and replay, with the provider being defined in one place and the replay code to live in another. Both contributed to the design of the provider info. This patch refactors the reproducer info to be something static. This means less magic strings and better type checking. The new design still allows for the capture and replay code to live in different places as long as they both have access to the new statically defined info class. I didn't completely get rid of the index, because it is useful for (1) sanity checking and (2) knowing what files are used by the reproducer. Differential revision: https://reviews.llvm.org/D56814 llvm-svn: 351501
* [analyzer] MoveChecker: Add one more common resetting method, "append".Artem Dergachev2019-01-182-3/+11
| | | | | | | | | | | This is especially crucial for reports related to use-after-move of standard library objects. rdar://problem/47338505 Differential Revision: https://reviews.llvm.org/D56824 llvm-svn: 351500
* [analyzer] Make sure base-region and its sub-regions are either all alive or ↵Artem Dergachev2019-01-187-13/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | all dead. SymbolReaper now realizes that our liveness analysis isn't sharp enough to discriminate between liveness of, say, variables and their fields. Surprisingly, this didn't quite work before: having a variable live only through Environment (eg., calling a C++ method on a local variable as the last action ever performed on that variable) would not keep the region value symbol of a field of that variable alive. It would have been broken in the opposite direction as well, but both Environment and RegionStore use the scanReachableSymbols mechanism for finding live symbols regions within their values, and due to that they accidentally end up marking the whole chain of super-regions as live when at least one sub-region is known to be live. It is now a direct responsibility of SymbolReaper to maintain this invariant, and a unit test was added in order to make sure it stays that way. Differential Revision: https://reviews.llvm.org/D56632 rdar://problem/46914108 llvm-svn: 351499
* [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
OpenPOWER on IntegriCloud