summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix the build of the include-fixer plugin for some shared cmake builds and MSVC.Benjamin Kramer2017-01-132-0/+12
| | | | | | | | | | - The include fixer plugin does not directly depend on pthread, but can pick up pthread references transitively through inlining. Just add pthreads to the linked libs unconditionally. - MSVC emits bogus warnings when including <future> and building without exceptions. Blacklist the warnings explicitly. llvm-svn: 291892
* [CodeGen] Rename MachineInstrBuilder::addOperand. NFCDiana Picus2017-01-1366-608/+604
| | | | | | | | | | | Rename from addOperand to just add, to match the other method that has been added to MachineInstrBuilder for adding more than just 1 operand. See https://reviews.llvm.org/D28057 for the whole discussion. Differential Revision: https://reviews.llvm.org/D28556 llvm-svn: 291891
* [ARM] CodeGen: Remove AddDefaultPred. NFC.Diana Picus2017-01-1318-630/+830
| | | | | | | | | | | | | | | | | | | | | | | | | Replace all uses of AddDefaultPred with MachineInstrBuilder::add(predOps()). This makes the code building MachineInstrs more readable, because it allows us to write code like: MIB.addSomeOperand(blah) .add(predOps()) .addAnotherOperand(blahblah) instead of AddDefaultPred(MIB.addSomeOperand(blah)) .addAnotherOperand(blahblah) This commit also adds the predOps helper in the ARM backend, as well as the add method taking a variable number of operands to the MachineInstrBuilder. The transformation has been done mostly automatically with a custom tool based on Clang AST Matchers + RefactoringTool. Differential Revision: https://reviews.llvm.org/D28555 llvm-svn: 291890
* Fix log typo in ABISysV_arm64.cppOmair Javaid2017-01-131-1/+1
| | | | | | | This commit fixes a typo in ABISysV_arm64.cpp. Log was reporting a call to ABISysV_x86_64::PrepareTrivialCall. llvm-svn: 291889
* [X86][AVX512] Adding missing shuffle lowering to blend mask instructions Michael Zuckerman2017-01-1311-98/+325
| | | | | | | | | | | | | | | Some shuffles can be lowered to blend mask instruction (VPBLENDMB/VPBLENDMW/VPBLENDMD/VPBLENDMQ) . In this patch, I added new pattern match for this case. Reviewers: 1. craig.topper 2. guyblank 3. RKSimon 4. igorb Differential Revision: https://reviews.llvm.org/D28483 llvm-svn: 291888
* RegionPass: Set isExecuted flag correctlyTobias Grosser2017-01-131-0/+1
| | | | | | | This was forgotten in r291882. Without this fix, the Polly build bots are broken. llvm-svn: 291887
* DWARFDie.h: Move a class declaration out of the method description since ↵NAKAMURA Takumi2017-01-131-1/+2
| | | | | | r291861. [-Wdocumentation] llvm-svn: 291886
* [AVX-512] Remove unmasked BLENDM instructions from the wrong load folding ↵Craig Topper2017-01-131-4/+0
| | | | | | | | table. The unmasked versions read memory from operand 2, but were in the operand 3 table. These aren't the most interesting set of blendm instructions as the unmasked version isn't useful. We were also missing the B and W forms. I'll add the masked versions of all sizes in a future patch. llvm-svn: 291885
* [X86] Move some entries in the load folding tables to move appropriate ↵Craig Topper2017-01-131-10/+10
| | | | | | grouping. NFC llvm-svn: 291884
* [IR] Don't call assertModuleIsMaterialized in release buildsCraig Topper2017-01-132-2/+10
| | | | | | | | | | | | | | | | | Summary: To fix a release vs debug build linking error, r259695 made the body of assertModuleIsMaterialized empty if Value.cpp gets compiled in a release build. This way any code compiled as a debug build can still link against a release version of the function. This patch takes this a step farther and removes all calls to it from Value.h in any code that includes it in a relase build. This shrinks the opt binary on my macbook build by 17240 bytes. Reviewers: rafael Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28191 llvm-svn: 291883
* Track validity of pass resultsSerge Pavlov2017-01-1311-17/+67
| | | | | | | | | | | | | | | | | | | | | | | | Running tests with expensive checks enabled exhibits some problems with verification of pass results. First, the pass verification may require results of analysis that are not available. For instance, verification of loop info requires results of dominator tree analysis. A pass may be marked as conserving loop info but does not need to be dependent on DominatorTreePass. When a pass manager tries to verify that loop info is valid, it needs dominator tree, but corresponding analysis may be already destroyed as no user of it remained. Another case is a pass that is skipped. For instance, entities with linkage available_externally do not need code generation and such passes are skipped for them. In this case result verification must also be skipped. To solve these problems this change introduces a special flag to the Pass structure to mark passes that have valid results. If this flag is reset, verifications dependent on the pass result are skipped. Differential Revision: https://reviews.llvm.org/D27190 llvm-svn: 291882
* Another fix for r291850 because there are apparently targets which addChandler Carruth2017-01-131-4/+4
| | | | | | | "-mllvm" flags to the CC1 invocation (notably, Hexagon seems to hit this). llvm-svn: 291881
* Implement DR1265 (wg21.link/cwg1265).Richard Smith2017-01-138-78/+165
| | | | | | | | | | | | Diasllow a declaration using the 'auto' type specifier from using two different meanings of it at once, or from declaring multiple functions with deduced return types or introducing multiple trailing return types. The standard does not technically disallow the multiple trailing return types case if all the declarators declare variables (such as function pointers with trailing return types), but we disallow that too, following the clear intent. llvm-svn: 291880
* Add a necessary newline for diagnose_if documentation.Eric Christopher2017-01-131-0/+1
| | | | llvm-svn: 291879
* ProfileSummaryInfo improvements.Easwaran Raman2017-01-134-5/+230
| | | | | | | | | | | * Add is{Hot|Cold}CallSite methods * Fix a bug in isHotBB where it was looking for MD_prof on a return instruction * Use MD_prof data only if sample profiling was used to collect profiles. * Add an unit test to ProfileSummaryInfo Differential Revision: https://reviews.llvm.org/D28584 llvm-svn: 291878
* [Sema] Restrict explicit instantation definition dllexportShoaib Meenai2017-01-132-5/+21
| | | | | | | | | | | | | | | | In the case where the template class itself is already `dllexport`, the implicit instantiation will have already emitted all members. When we check the explicit instantiation definition, the `Specialization` will have inherited the `dllexport` attribute, so we'll attempt to emit all members for a second time, which causes an assertion failure. Restrict the exporting to when the `dllexport` attribute is newly introduced by the explicit instantiation definition. Fixes PR31608. Differential Revision: https://reviews.llvm.org/D28590 llvm-svn: 291877
* [DOXYGEN] Documentation for the newly added x86 intrinsics.Ekaterina Romanova2017-01-135-12/+64
| | | | | | | | | | | | | | Added doxygen comments for the newly added intrinsics in avxintrin.h, namely _mm256_cvtsd_f64, _mm256_cvtsi256_si32 and _mm256_cvtss_f32 Added doxygen comments for the new intrinsics in emmintrin.h, namely _mm_loadu_si64 and _mm_load_sd. Explicit parameter names were added for _mm_clflush and _mm_setcsr The rest of the changes are editorial, removing trailing spaces at the end of the lines. Differential Revision: https://reviews.llvm.org/D28503 llvm-svn: 291876
* Revert r291503, "Lift the 10-type limit for AlignedCharArrayUnion", and ↵NAKAMURA Takumi2017-01-132-41/+31
| | | | | | | | | | | | | followings. r291503, "Lift the 10-type limit for AlignedCharArrayUnion" r291514, "Fix MSVC build of AlignedCharArrayUnion" r291515, "Revert the attempt to optimize the constexpr functions. MSVC does not handle this yet" r291519, "Try once again to fix the MSVC build of AlignedCharArrayUnion" They has been failing on i686-linux. llvm-svn: 291875
* Temporarily revert the test change in 291870, which is broken in certain ↵Dehao Chen2017-01-131-4/+0
| | | | | | buildbots. llvm-svn: 291874
* [PowerPC] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2017-01-1310-255/+433
| | | | | | other minor fixes (NFC). llvm-svn: 291872
* Update C++ status pages for Clang 4 branch:Richard Smith2017-01-1313-42/+45
| | | | | | | | | | | | * Update version number in DR tests from 4.0 to 4 * Teach make_cxx_dr_status script about version numbers that don't contain a period. * Update cxx_status.html and cxx_dr_status.html to list Clang 4 features as "Clang 4" rather than "SVN" Clang 4 features are still listed in yellow rather than green until release. llvm-svn: 291871
* Pass -fprofile-sample-use to lto backends.Dehao Chen2017-01-132-2/+9
| | | | | | | | | | | | Summary: LTO backend will not invoke SampleProfileLoader pass even if -fprofile-sample-use is specified. This patch passes the flag down so that pass manager can add the SampleProfileLoader pass correctly. Reviewers: mehdi_amini, tejohnson Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28588 llvm-svn: 291870
* [analyzer] Add LocationContext as a parameter to checkRegionChangesAnna Zaks2017-01-1316-62/+84
| | | | | | | | | | | This patch adds LocationContext to checkRegionChanges and removes wantsRegionChangeUpdate as it was unused. A patch by Krzysztof Wiśniewski! Differential Revision: https://reviews.llvm.org/D27090 llvm-svn: 291869
* [tsan] Do not report errors in __destroy_helper_block_Anna Zaks2017-01-132-7/+22
| | | | | | | | | | There is a synchronization point between the reference count of a block dropping to zero and it's destruction, which TSan does not observe. Do not report errors in the compiler-emitted block destroy method and everything called from it. This is similar to https://reviews.llvm.org/D25857 Differential Revision: https://reviews.llvm.org/D28387 llvm-svn: 291868
* [analyzer] Support inlining of '[self classMethod]' and '[[self class] ↵Anna Zaks2017-01-132-3/+136
| | | | | | | | classMethod]' Differential Revision: https://reviews.llvm.org/D28495 llvm-svn: 291867
* [analyzer] Fix false positives in Keychain API checkerAnna Zaks2017-01-132-100/+134
| | | | | | | | | | | | | | The checker has several false positives that this patch addresses: - Do not check if the return status has been compared to error (or no error) at the time when leaks are reported since the status symbol might no longer be alive. Instead, pattern match on the assume and stop tracking allocated symbols on error paths. - The checker used to report error when an unknown symbol was freed. This could lead to false positives, let's not repot those. This leads to loss of coverage in double frees. - Do not enforce that we should only call free if we are sure that error was not returned and the pointer is not null. That warning is too noisy and we received several false positive reports about it. (I removed: "Only call free if a valid (non-NULL) buffer was returned") - Use !isDead instead of isLive in leak reporting. Otherwise, we report leaks for objects we loose track of. This change triggered change #1. This also adds checker specific dump to the state. Differential Revision: https://reviews.llvm.org/D28330 llvm-svn: 291866
* Improve handling of instantiated thread_local variables in Itanium C++ ABI.Richard Smith2017-01-134-54/+172
| | | | | | | | | | | | | | | | | * Do not initialize these variables when initializing the rest of the thread_locals in the TU; they have unordered initialization so they can be initialized by themselves. This fixes a rejects-valid bug: we would make the per-variable initializer function internal, but put it in a comdat keyed off the variable, resulting in link errors when the comdat is selected from a different TU (as the per TU TLS init function tries to call an init function that does not exist). * On Darwin, when we decide that we're not going to emit a thread wrapper function at all, demote its linkage to External. Fixes a verifier failure on explicit instantiation of a thread_local variable on Darwin. llvm-svn: 291865
* Fix buildbots.Greg Clayton2017-01-131-2/+2
| | | | llvm-svn: 291864
* xray-account: Avoid std::errc::bad_message to appease mingw.NAKAMURA Takumi2017-01-131-1/+1
| | | | llvm-svn: 291863
* Move test of lazy BFI with ORE to a generic directoryAdam Nemet2017-01-131-0/+0
| | | | llvm-svn: 291862
* Add the ability to iterate across all attributes in a DIE.Greg Clayton2017-01-136-11/+215
| | | | | | Differential Revision: https://reviews.llvm.org/D28386 llvm-svn: 291861
* [asan] Don't overalign global metadata.Evgeniy Stepanov2017-01-122-12/+13
| | | | | | | | | Other than on COFF with incremental linking, global metadata should not need any extra alignment. Differential Revision: https://reviews.llvm.org/D28628 llvm-svn: 291859
* [asan] Refactor instrumentation of globals.Evgeniy Stepanov2017-01-122-148/+190
| | | | llvm-svn: 291858
* Fix two test cases I missed updating in r291850. Sorry for the noise.Chandler Carruth2017-01-122-3/+3
| | | | llvm-svn: 291853
* Clear the release notes for 5.0.0Hans Wennborg2017-01-121-100/+2
| | | | llvm-svn: 291852
* Replace some stray uses of the old spelling of the flag with the newChandler Carruth2017-01-123-3/+3
| | | | | | spelling. NFC. llvm-svn: 291851
* Address review comments on r290392:Chandler Carruth2017-01-123-5/+29
| | | | | | | | | | | | | - Don't break using '-mllvm -disable-llvm-optzns' (yet). - Don't add support for '-mllvm -disable-llvm-passes'. This is important for LLVM 4 as we haven't yet really told folks this is coming. I'll add release notes about this. I've also added some explicit testing of this so its more obvious what is happening here. llvm-svn: 291850
* [llvm-pdbdump] Add a compact dump mode.Zachary Turner2017-01-126-35/+174
| | | | | | Differential Revision: https://reviews.llvm.org/D28545 llvm-svn: 291849
* Remove error(error_code, const Twine &).Rui Ueyama2017-01-125-11/+5
| | | | | | Now we have the consistent interface for all log/warn/error/fatal functions. llvm-svn: 291847
* [ThinLTO] Import static functions from the same module as callerTeresa Johnson2017-01-122-9/+38
| | | | | | | | | | | | | | | | | | | | | | | | Summary: We can sometimes end up with multiple copies of a local function that have the same GUID in the index. This happens when there are local functions with the same name that are in different source files with the same name (but in different directories), and they were compiled in their own directory so had the same path at compile time. In this case make sure we import the copy in the caller's module. While it isn't a correctness problem (the renamed reference which is based on the module IR hash will be unique since the module must have had an externally visible function that was imported), importing the wrong copy will result in lost performance opportunity since it won't be referenced and inlined. Reviewers: mehdi_amini Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28440 llvm-svn: 291841
* Remove dead code.Rui Ueyama2017-01-122-5/+0
| | | | llvm-svn: 291840
* Clear the release notes for 5.0.0Hans Wennborg2017-01-121-4/+4
| | | | llvm-svn: 291839
* Clear the release notes for 5.0.0Hans Wennborg2017-01-121-151/+9
| | | | llvm-svn: 291838
* Clear the release notes for 5.0.0Hans Wennborg2017-01-121-21/+7
| | | | llvm-svn: 291837
* Clear the release notes for 5.0.0Hans Wennborg2017-01-121-28/+8
| | | | llvm-svn: 291836
* Do not use the same name for both a class and a variable.Rui Ueyama2017-01-121-3/+3
| | | | llvm-svn: 291835
* Improve an error message and remove fatal(Error &, const Twine &)Rui Ueyama2017-01-123-6/+2
| | | | llvm-svn: 291834
* Update docs/conf.py versionHans Wennborg2017-01-121-3/+3
| | | | llvm-svn: 291833
* Update docs/conf.py versionHans Wennborg2017-01-121-3/+3
| | | | llvm-svn: 291832
* Update docs/conf.py versionHans Wennborg2017-01-122-6/+6
| | | | llvm-svn: 291831
OpenPOWER on IntegriCloud