summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Orc] Add some static-assert checks to improve the error messages for RPC callsLang Hames2016-12-212-2/+257
| | | | | | | | and handler registrations. Also add a unit test for alternate-type serialization/deserialization. llvm-svn: 290223
* IPO: Remove the ModuleSummary argument to the FunctionImport pass. NFCI.Peter Collingbourne2016-12-215-43/+16
| | | | | | | | | No existing client is passing a non-null value here. This will come back in a slightly different form as part of the type identifier summary work. Differential Revision: https://reviews.llvm.org/D28006 llvm-svn: 290222
* Fix build breakage in r290219. Notes should not be in diagnostic groups.Graydon Hoare2016-12-211-2/+1
| | | | llvm-svn: 290221
* [modules] Handle modules with nonstandard names in module.private.modulemapsGraydon Hoare2016-12-2110-4/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The module system supports accompanying a primary module (say Foo) with an auxiliary "private" module (defined in an adjacent module.private.modulemap file) that augments the primary module when associated private headers are available. The feature is intended to be used to augment the primary module with a submodule (say Foo.Private), however some users in the wild are choosing to augment the primary module with an additional top-level module with a "similar" name (in all cases so far: FooPrivate). This "works" when a user of the module initially imports a private header, such as '#import "Foo/something_private.h"' since the Foo import winds up importing FooPrivate in passing. But if the import is subsequently recorded in a PCH file, reloading the PCH will fail to validate because of a cross-check that attempts to find the module.modulemap (or module.private.modulemap) using HeaderSearch algorithm, applied to the "FooPrivate" name. Since it's stored in Foo.framework/Modules, not FooPrivate.framework/Modules, the check fails and the PCH is rejected. This patch adds a compensatory workaround in the HeaderSearch algorithm when searching (and failing to find) a module of the form FooPrivate: the name used to derive filesystem paths is decoupled from the module name being searched for, and if the initial search fails and the module is named "FooPrivate", the filesystem search name is altered to remove the "Private" suffix, and the algorithm is run a second time (still looking for a module named FooPrivate, but looking in directories derived from Foo). Accompanying this change is a new warning that triggers when a user loads a module.private.modulemap that defines a top-level module with a different name from the top-level module defined in its adjacent module.modulemap. Reviewers: doug.gregor, manmanren, bruno Subscribers: bruno, cfe-commits Differential Revision: https://reviews.llvm.org/D27852 llvm-svn: 290219
* Reduce the size of quarantine cache in ASAN_LOW_MEMORY configuration.Evgeniy Stepanov2016-12-214-5/+8
| | | | | | | | | | | | | | | | Summary: Experiments show that on Android the current values result in too much of the memory consumption for all quarantined chunks. Reviewers: kcc, eugenis Subscribers: mgorny, danalbert, srhines, llvm-commits, kubabrecka Patch by Aleksey Shlyapnikov. Differential Revision: https://reviews.llvm.org/D27873 llvm-svn: 290218
* Store the "current position" index within the ASTRecordReader.David L. Jones2016-12-214-804/+821
| | | | | | | | | | | | | | | | | | Summary: For ASTDeclReader and ASTStmtReader, every parameter "unsigned &Idx" ultimately comes from a variable that is defined on the stack, next to the RecordData. This change moves that index into the ASTRecordReader. TypeLocReader cannot be transitioned, due to TableGen-generated code which calls ASTReader::GetTypeSourceInfo. Reviewers: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D27836 llvm-svn: 290217
* Ignore SIGPIPE in the mini-driver used by these tests.Jim Ingham2016-12-211-0/+10
| | | | | | | | | | | We're seeing some very occasional failures in these tests where the mini-driver dies with a SIGPIPE. We don't use SIGPIPE for anything, and the main lldb driver program already ignores SIGPIPE, so ignoring it in the mini-driver is a good way to remove these spurious failures. <rdar://problem/29740488> llvm-svn: 290216
* Move a function defintion to make it static.Rui Ueyama2016-12-213-29/+29
| | | | llvm-svn: 290215
* [Analysis] Centralize objectsize lowering logic.George Burgess IV2016-12-206-29/+84
| | | | | | | | | We're currently doing nearly the same thing for @llvm.objectsize in three different places: two of them are missing checks for overflow, and one of them could subtly break if InstCombine gets much smarter about removing alloc sites. Seems like a good idea to not do that. llvm-svn: 290214
* Use ArrayRef instead of `const std::vector`.Rui Ueyama2016-12-202-2/+2
| | | | llvm-svn: 290213
* Move GlobPattern class from LLD to llvm/Support.Rui Ueyama2016-12-207-153/+297
| | | | | | | | | | GlobPattern is a class to handle glob pattern matching. Currently only LLD is using that, but technically that feature is not specific to linkers, so in this patch I move that file to LLVM. Differential Revision: https://reviews.llvm.org/D27969 llvm-svn: 290212
* [SCEV] Be less conservative when extending bitwidths for computing ranges.Michael Zolotukhin2016-12-201-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | Summary: In getRangeForAffineAR we compute ranges for affine exprs E = A + B*C, where ranges for A, B, and C are known. To avoid overflow, we need to operate on a bigger bitwidth, and originally we chose 2*x+1 for this (x being the original bitwidth). However, it is safe to use just 2*x: A+B*C <= (2^x - 1) + (2^x - 1)*(2^x - 1) = = 2^x - 1 + 2^2x - 2^x - 2^x + 1 = = 2^2x - 2^x <= 2^2x - 1 Unnecessary extending of bitwidths results in noticeable slowdowns: ranges perform arithmetic operations using APInt, which are much slower when bitwidths are bigger than 64. Reviewers: sanjoy, majnemer, chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D27795 llvm-svn: 290211
* Comment out char16_t and char32_t testsMalcolm Parsons2016-12-202-14/+14
| | | | llvm-svn: 290210
* Revert "[ObjectYAML] Support for DWARF debug_info section"Chris Bieneman2016-12-2011-857/+8
| | | | | | | | | | | This reverts commit r290204. Still breaking bots... In a meeting now, so I can't fix it immediately. Bot URL: http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/2415 llvm-svn: 290209
* Make a test use a specific C++ dialectPaul Robinson2016-12-201-1/+1
| | | | | | | | | | In stack-reuse-miscompile.cpp, the allocas for the temps come out in a different order depending on whether the dialect is C++03 or C++11. Specify C++03 explicitly to avoid depending on the default. Differential Revision: http://reviews.llvm.org/D27956 llvm-svn: 290208
* C++11 test cleanup: nonthrowing destructorsPaul Robinson2016-12-203-71/+120
| | | | | | | | | | If a dtor has no interesting members, then it ends up being nothrow, which affects the generated IR. Modify some tests to tolerate this difference between C++03 and C++11. Differential Revision: http://reviews.llvm.org/D27936 llvm-svn: 290207
* [ELF] Do not warn about missed entry symbol in case of relocatable outputSimon Atanasyan2016-12-202-1/+5
| | | | | | | Relocatable file does not need to have an entry symbol so the warning is useless in that case. llvm-svn: 290206
* Make two vtable tests tolerate C++11.Paul Robinson2016-12-202-0/+11
| | | | | | | | | In C++11 we don't emit vtables as eagerly as we do for C++03, so fiddle the tests to emit them when the test expects them. Differential Revision: http://reviews.llvm.org/D27994 llvm-svn: 290205
* [ObjectYAML] Support for DWARF debug_info sectionChris Bieneman2016-12-2011-8/+857
| | | | | | | | This patch adds support for YAML<->DWARF for debug_info sections. This re-lands r290147, after fixing the issue that caused bots to fail (thank you UBSan!). llvm-svn: 290204
* [c++1z] P0195R2: Support pack-expansion of using-declarations.Richard Smith2016-12-2026-247/+794
| | | | | | | | | | | | | | This change introduces UsingPackDecl as a marker for the set of UsingDecls produced by pack expansion of a single (unresolved) using declaration. This is not strictly necessary (we just need to be able to map from the original using declaration to its expansions somehow), but it's useful to maintain the invariant that each declaration reference instantiates to refer to one declaration. This is a re-commit of r290080 (reverted in r290092) with a fix for a use-after-lifetime bug. llvm-svn: 290203
* [clang-tidy] Add modernize-use-default-member-init checkMalcolm Parsons2016-12-209-0/+906
| | | | | | | | | | | | Summary: Fixes PR18858 Reviewers: alexfh, hokein, aaron.ballman Subscribers: JDevlieghere, Eugene.Zelenko, Prazek, mgorny, cfe-commits, modocache Differential Revision: https://reviews.llvm.org/D26750 llvm-svn: 290202
* [scudo] ARM32 supportKostya Kortchinsky2016-12-202-2/+2
| | | | | | | | | | | | | | | | Summary: With the previous modifications, the code works on ARM32. The random shuffle test is unsupported on 32-bit platforms for the moment and being marked as such. There is no hardware support for the checksum computation yet, this will come at a later point. Reviewers: kcc, alekseyshl Subscribers: llvm-commits, aemerson, rengolin, mgorny Differential Revision: https://reviews.llvm.org/D27957 llvm-svn: 290201
* IR: Eliminate non-determinism in the module summary analysis.Peter Collingbourne2016-12-207-172/+132
| | | | | | | | | Also make the summary ref and call graph vectors immutable. This means a smaller API surface and fewer places to audit for non-determinism. Differential Revision: https://reviews.llvm.org/D27875 llvm-svn: 290200
* [LoopUnroll] Modify a comment to clarify the usage of TripCount. NFC.Haicheng Wu2016-12-201-8/+8
| | | | | | | | | Make it clear that TripCount is the upper bound of the iteration on which control exits LatchBlock. Differential Revision: https://reviews.llvm.org/D26675 llvm-svn: 290199
* [ARM] Implement isExtractSubvectorCheap.Eli Friedman2016-12-206-51/+84
| | | | | | | | | | | | | | See https://reviews.llvm.org/D6678 for the history of isExtractSubvectorCheap. Essentially the same considerations apply to ARM. This temporarily breaks the formation of vpadd/vpaddl in certain cases; AddCombineToVPADDL essentially assumes that we won't form VUZP shuffles. See https://reviews.llvm.org/D27779 for followup fix. Differential Revision: https://reviews.llvm.org/D27774 llvm-svn: 290198
* Rollback my commit r290168 to fix linux tests failure. I'll be back!Boris Ulasevich2016-12-209-235/+18
| | | | llvm-svn: 290197
* [ARM] Generate checks for shuffle tests using update_llc_test_checks.py.Eli Friedman2016-12-203-143/+542
| | | | llvm-svn: 290196
* Use MaxDepth instead of repeating its valueMatt Arsenault2016-12-201-3/+3
| | | | llvm-svn: 290194
* AMDGPU: Allow 16-bit types in inline asm constraintsMatt Arsenault2016-12-202-0/+43
| | | | llvm-svn: 290193
* AMDGPU: Run fp combine tests on VIMatt Arsenault2016-12-203-135/+171
| | | | llvm-svn: 290192
* AMDGPU: Don't add same instruction multiple times to worklistMatt Arsenault2016-12-202-1/+21
| | | | | | | | | When the instruction is processed the first time, it may be deleted resulting in crashes. While the new test adds the same user to the worklist twice, this particular case doesn't crash but I'm not sure why. llvm-svn: 290191
* Replace std::find_if with llvm::find_if. NFC.George Burgess IV2016-12-201-5/+4
| | | | llvm-svn: 290190
* Revert "Re-add the assert to StringRef's const char *, length constructor."Zachary Turner2016-12-201-3/+1
| | | | | | | This reverts commit r290188, which is causing internal compiler errors on GCC 4.8 llvm-svn: 290189
* Re-add the assert to StringRef's const char *, length constructor.Zachary Turner2016-12-201-1/+3
| | | | | | | | | By putting the assert behind a conditional in the initializer list we can ensure that it will still work in a constexpr context as the else branch of the ternary operator won't be examined unless the condition fails. llvm-svn: 290188
* Fix missing '>' in docs (hopefully fixes bot error... )David Blaikie2016-12-201-1/+1
| | | | llvm-svn: 290187
* Add some brief documentation about GDB pretty printersDavid Blaikie2016-12-201-0/+16
| | | | llvm-svn: 290186
* AMDGPU/SI: Make a function constTom Stellard2016-12-202-4/+3
| | | | llvm-svn: 290185
* AMDGPU/SI: Add a MachineMemOperand when lowering llvm.amdgcn.buffer.load.*Tom Stellard2016-12-208-9/+94
| | | | | | | | | | Reviewers: arsenm, nhaehnle, mareko Subscribers: kzhuravl, wdng, yaxunl, llvm-commits, tony-tye Differential Revision: https://reviews.llvm.org/D27834 llvm-svn: 290184
* [X86][SSE] Ensure we're only combining shuffles with legal mask types.Simon Pilgrim2016-12-201-0/+4
| | | | | | I haven't managed to get this to fail yet but its technically possible for the AND -> shuffle decomposition to result in illegal types. llvm-svn: 290183
* [OPENMP] Fix for PR31416: Clang crashes on OMPCapturedExpr during sourceAlexey Bataev2016-12-204-15/+30
| | | | | | | | | based coverage compilation Added source location info to captured expression declaration + fixed source location info for loop based directives. llvm-svn: 290181
* [CMake] [PR31433] Fix LLDB tool installationChris Bieneman2016-12-201-13/+13
| | | | | | This resolves PR 31433. llvm-svn: 290180
* AMDGPU/SI: Add a MachineMemOperand to MIMG instructionsTom Stellard2016-12-205-7/+71
| | | | | | | | | | | | | | | Summary: Without a MachineMemOperand, the scheduler was assuming MIMG instructions were ordered memory references, so no loads or stores could be reordered across them. Reviewers: arsenm Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, tony-tye Differential Revision: https://reviews.llvm.org/D27536 llvm-svn: 290179
* clang-format: Fix bug in understanding string-label&value analysis.Daniel Jasper2016-12-202-2/+11
| | | | | | | | | | | | | | | While for <<-operators often used in log statments, a single key value pair is always on the second operator, e.g. llvm::errs() << "aaaaa=" << aaaaa; It is on the first operator for plus- or comma-concatenated strings: string s = "aaaaaaaaaa: " + aaaaaaaa; (the "=" not counting because that's a different operator precedence) llvm-svn: 290177
* [change-namespace] do not fix calls to overloaded operator functions.Eric Liu2016-12-203-0/+58
| | | | | | | | | | | | Summary: Also make sure one function reference is only processed once. Reviewers: hokein Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D27982 llvm-svn: 290176
* [OPENMP] Fix for PR31428: variable named like directive name modifierAlexey Bataev2016-12-2042-106/+110
| | | | | | | | Directive name modifiers in 'if' clause are allowed only for OpenMP 4.5 and higher + in OpenMP 4.5 parsing procedure emits error message if ':' is not found after directive name modifier. llvm-svn: 290175
* [ELF] - Treat .openbsd.randomdata as relro sectionGeorge Rimar2016-12-202-3/+6
| | | | | | | | | | | | | | | That was requested by Mark Kettenis in llvm-dev: "It is the intention that .openbsd.randomdata sections are made read-only after initialization. The native (ld.bfd based) OpenBSD toolchain accomplishes this by including .openbsd.randomdata into the PT_GNU_RELRO segment." He suggested code change, I added testcase. Differential revision: https://reviews.llvm.org/D27974 llvm-svn: 290174
* Revert "[OpenCL] Enabling the usage of CLK_NULL_QUEUE as compare operand."Daniel Jasper2016-12-2014-124/+1
| | | | | | | | | | This reverts commit r290171. It triggers a bunch of warnings, because the new enumerator isn't handled in all switches. We want a warning-free build. Replied on the commit with more details. llvm-svn: 290173
* Fix for clang_Cursor_getSpellingNameRange()Kevin Funk2016-12-202-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Fixes spelling name ranges for user-defined string literal operators. Example: constexpr int operator""_toint(unsigned long long val) { return int(val); } Before this patch the spelling name range on consisted of 'operator'. After this patch: 'operator""_toint'. Related to http://reviews.llvm.org/D5041, which fixes the function for other cursor kinds. Reviewers: akyrtzi, craigt, skalinichev, klimek, milianw, bkramer Subscribers: cfe-commits Tags: #clang-c Differential Revision: https://reviews.llvm.org/D18462 llvm-svn: 290172
* [OpenCL] Enabling the usage of CLK_NULL_QUEUE as compare operand.Egor Churaev2016-12-2014-1/+124
| | | | | | | | | | | | Summary: Enabling the compression of CLK_NULL_QUEUE to variable of type queue_t. Reviewers: Anastasia Subscribers: cfe-commits, yaxunl, bader Differential Revision: https://reviews.llvm.org/D27569 llvm-svn: 290171
* Fix build with expensive checks enabledSerge Pavlov2016-12-201-0/+1
| | | | | | | | | Include of llvm/IR/Verifier.h was removed from HexagonCommonGEP.cpp in r289604 as unused. In fact it is required when expensive checks are enabled, because it declared function `verifyFunction`, which is called in conditionally compiled part of the file. llvm-svn: 290170
OpenPOWER on IntegriCloud