summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [clangd] clang-format the source code. NFC.Ilya Biryukov2017-11-155-22/+21
| | | | llvm-svn: 318317
* [clangd] Fix time units in clangd performance traceSam McCall2017-11-151-1/+1
| | | | llvm-svn: 318316
* Try to fix test/SemaCXX/deleted-operator.cpp after r318309Hans Wennborg2017-11-151-2/+2
| | | | | | | The number of 'built-in candidate' notes now varies since __float128 may or may not be a candidate depending on the target. llvm-svn: 318314
* Clean up the tests for free data(), size() and empty()Marshall Clow2017-11-153-24/+28
| | | | llvm-svn: 318313
* [AArch64] Adjust the cost model for Exynos M1 and M2Evandro Menezes2017-11-151-17/+14
| | | | | | | Fix the modeling of loads and stores using the pre or post indexed addressing modes. llvm-svn: 318312
* Drop conflicting sh_entsize values.Rafael Espindola2017-11-153-9/+34
| | | | | | | | An output section can include elements from two input sections with different sh_entsize. When that happens the output section itself should not have a sh_entsize. llvm-svn: 318311
* Remove an unnecessary constraint.Rafael Espindola2017-11-152-10/+35
| | | | | | | Our current implementation of SHF_MERGE can already handle over aligned elements. llvm-svn: 318310
* BuiltinOperatorOverloadBuilder: Don't consider types that are unavailable on ↵Hans Wennborg2017-11-152-71/+104
| | | | | | | | | | | | | the target (PR35174) In the PR, Clang ended up in a situation where it tried to mangle the __float128 type, which isn't supported when targetingt MSVC, because Clang instantiated a variable template with that type when searching for a conversion to use in an arithmetic expression. Differential revision: https://reviews.llvm.org/D39579 llvm-svn: 318309
* [X86] Add CBW/CDQ/CDQE/CQO/CWD/CWDE to WriteALU schedule classSimon Pilgrim2017-11-153-52/+51
| | | | | | | | Some CPUs are already overriding these sign extension instructions but we should be able to use the WriteALU schedule class by default. Differential Revision: https://reviews.llvm.org/D39899 llvm-svn: 318308
* [SLP] Added more missed optimization remarksAdam Nemet2017-11-157-21/+303
| | | | | | | | | | | | | | | | | | | | Summary: Added more remarks to SLP pass, in particular "missed" optimization remarks. Also proposed several tests for new functionality. Patch by Vladimir Miloserdov! For reference you may look at: https://reviews.llvm.org/rL302811 Reviewers: anemet, fhahn Reviewed By: anemet Subscribers: javed.absar, lattner, petecoup, yakush, llvm-commits Differential Revision: https://reviews.llvm.org/D38367 llvm-svn: 318307
* Propagate sh_entsize out.Rafael Espindola2017-11-1517-22/+31
| | | | | | | | | | No difference in practice other than having sh_entsize in the output. This should simplify the patch for handling SHF_MERGE in -r. Based on a patch by George Rimar. llvm-svn: 318306
* [PowerPC] Split out the tailcall calling convention checks. NFC.Sean Fertile2017-11-151-11/+19
| | | | | | | | Move the calling convention checks for tail-call eligibility for the 64-bit SysV ABI into a separate function. This is so that it can be shared with 'mayBeEmittedAsTailCall' in a subsequent change. llvm-svn: 318305
* ASTMatchers.h: Fix ODR violations by avoiding internal linkage variables in ↵David Blaikie2017-11-152-328/+559
| | | | | | | | | | | | | | headers Internal linkage variables ODR referenced from inline functions create ODR violations (the same inline function ends up having different definitions in each TU, since it references different variables - rather than one definition). This also happens to break modular code generation - so this is the last fix to allow clang to compile with modular code generation. llvm-svn: 318304
* libfuzzer: Fix file listing on some filesystemsKostya Serebryany2017-11-151-2/+12
| | | | | | | | | | | | | | | | | Summary: For some filesystems, readdir will not populate dirent::d_type with valuable information. This causes libfuzzer to proceed with an empty corpus, instead of the file it contains. This has been tested on a server using XFS. It should fix https://bugs.llvm.org//show_bug.cgi?id=25991 Reviewers: kcc Reviewed By: kcc Differential Revision: https://reviews.llvm.org/D40028 llvm-svn: 318303
* [libFuzzer] respect max_len during mergeKostya Serebryany2017-11-152-1/+5
| | | | llvm-svn: 318302
* [scudo] Soft and hard RSS limit checksKostya Kortchinsky2017-11-152-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This implements an opportunistic check for the RSS limit. For ASan, this was implemented thanks to a background thread checking the current RSS vs the set limit every 100ms. This was deemed problematic for Scudo due to potential Android concerns (Zygote as pointed out by Aleksey) as well as the general inconvenience of having a permanent background thread. If a limit (soft or hard) is specified, we will attempt to update the RSS limit status (exceeded or not) every 100ms. This is done in an opportunistic way: if we can update it, we do it, if not we return the current status, mostly because we don't need it to be fully consistent (it's done every 100ms anyway). If the limit is exceeded `allocate` will act as if OOM for a soft limit, or just die for a hard limit. We use the `common_flags()`'s `hard_rss_limit_mb` & `soft_rss_limit_mb` for configuration of the limits. Reviewers: alekseyshl Reviewed By: alekseyshl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D40038 llvm-svn: 318301
* [PassManager, SimplifyCFG] add test for PR34603 / D38566; NFCSanjay Patel2017-11-151-0/+40
| | | | | | This is a recommit of r316908 which was reverted by r317444. llvm-svn: 318300
* [(new) Pass Manager] instantiate SimplifyCFG with the same options as the old PMSanjay Patel2017-11-153-64/+40
| | | | | | | | | | | | | | | | | | This is a recommit of r316869 which was speculatively reverted with r317444 and subsequently shown to not be the cause of PR35210. That crash should be fixed after r318237. Original commit message: The old PM sets the options of what used to be known as "latesimplifycfg" on the instantiation after the vectorizers have run, so that's what we'redoing here. FWIW, there's a later SimplifyCFGPass instantiation in both PMs where we do not set the "late" options. I'm not sure if that's intentional or not. Differential Revision: https://reviews.llvm.org/D39407 llvm-svn: 318299
* [Reassociate] simplify code; NFCISanjay Patel2017-11-151-6/+3
| | | | llvm-svn: 318298
* [AArch64][SVE] Asm: Report SVE parsing diagnostics only onceSander de Smalen2017-11-153-25/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Prevent an issue where a diagnostic is reported multiple times by bailing out with a ParseFail if an invalid SVE register element qualifier/suffix is specified, for example: <stdin>:10:18: error: invalid sve vector kind qualifier add z20.h, z2.h, z31.x ^ <stdin>:10:18: error: invalid sve vector kind qualifier add z20.h, z2.h, z31.x ... <stdin>:10:18: error: invalid sve vector kind qualifier add z20.h, z2.h, z31.x ^ Reviewers: fhahn, rengolin Reviewed By: rengolin Subscribers: aemerson, javed.absar, tschuett, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D39894 llvm-svn: 318297
* [mips] Improve genConstMult() to work with arbitrary precisionPetar Jovanovic2017-11-152-11/+54
| | | | | | | | | | | APInt is now used instead of uint64_t in function genConstMult() allowing multiplication optimizations with constants of arbitrary length. Patch by Milos Stojanovic. Differential Revision: https://reviews.llvm.org/D38130 llvm-svn: 318296
* [llvm-opt-fuzzer] Add opt fuzzer to the test-depends list.Igor Laevsky2017-11-151-0/+1
| | | | | | This should help with the buildbot failures after rL318293. llvm-svn: 318295
* [llvm-opt-fuzzer] Only run tests for the x86 target. Igor Laevsky2017-11-151-0/+1
| | | | | | This fixes build bot failures after rL318293. llvm-svn: 318294
* [llvm-opt-fuzzer] NFC. Add sanity tests.Igor Laevsky2017-11-155-1/+64
| | | | llvm-svn: 318293
* [libclang] Fix cursors for in-class initializer of field declarationsBenjamin Kramer2017-11-152-0/+11
| | | | | | | | | | Fixes PR33745. Patch by Nikolai Kosjar! Differential Revision: https://reviews.llvm.org/D40027 llvm-svn: 318292
* [ARM] Split Arm jump table branch into i12 and rs suffixed versionsMomchil Velikov2017-11-155-210/+33
| | | | | | | | | This is a refactoring/cleanup of Arm `addrmode2` operand class. The patch removes it completely. Differential Revision: https://reviews.llvm.org/D39832 llvm-svn: 318291
* [OpenCL] Fix code generation of function-scope constant samplers.Alexey Bader2017-11-153-26/+23
| | | | | | | | | | | | | | | | | Summary: Constant samplers are handled as static variables and clang's code generation library, which leads to llvm::unreachable. We bypass emitting sampler variable as static since it's translated to a function call later. Reviewers: yaxunl, Anastasia Reviewed By: yaxunl, Anastasia Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D34342 llvm-svn: 318290
* [DebugInfo] Fix potential CU mismatch for SubprogramScopeDIEs.Jonas Devlieghere2017-11-153-8/+67
| | | | | | | | | | | | | | | | | In constructAbstractSubprogramScopeDIE there can be a potential mismatch between `this` and the CU of ContextDIE when a scope is shared between two DISubprograms belonging to a different CU. In that case, `this` is the CU that was specified in the IR, but the CU of ContextDIE is that of the first subprogram that was emitted. This patch fixes the mismatch by looking up the CU of ContextDIE, and switching to use that. This fixes PR35212 (https://bugs.llvm.org/show_bug.cgi?id=35212) Patch by Philip Craig! Differential revision: https://reviews.llvm.org/D39981 llvm-svn: 318289
* Workaround CodeGen/WebAssembly/cfg-stackify.ll failure after r318202Ilya Biryukov2017-11-151-2/+2
| | | | | | By disabling the introduced optimization. llvm-svn: 318288
* [clangd] Support returning a limited number of completion results.Sam McCall2017-11-1515-297/+416
| | | | | | | | | | | | | | | | | | | | Summary: All results are scored, we only process CodeCompletionStrings for the winners. We now return CompletionList rather than CompletionItem[] (both are valid). sortText is now based on CodeCompletionResult::orderedName (mostly the same). This is the first clangd-only completion option, so plumbing changed. It requires a small clangd patch (exposing CodeCompletionResult::orderedName). (This can't usefully be enabled yet: we don't support server-side filtering) Reviewers: ilya-biryukov Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D39852 llvm-svn: 318287
* [clang] Expose orderedString from CodeCompletionResult. NFCSam McCall2017-11-152-16/+18
| | | | llvm-svn: 318286
* [MinGW] Ignore the --build-id, --pie-executable and ↵Martin Storsjo2017-11-151-0/+3
| | | | | | | | | | | | | | | | | | --disable-auto-image-base options LLD already writes a build id if debug info is enabled. Some projects set --pie-executable to avoid GNU ld bugs about stripping base relocations from an executable when they actually are used. Since -fixed:no is the default (and we don't support setting the -fixed option via the MinGW frontend), we don't need to handle this. --disable-auto-image-base is ignored just like --enable-auto-image-base (as we ignore from before). Differential Revision: https://reviews.llvm.org/D40031 llvm-svn: 318285
* [COFF] Always include the size of the string table size fieldMartin Storsjo2017-11-152-2/+217
| | | | | | | | | | | Even if we don't actually write any string table contents, the 4 byte size for the string table will always be written. Make sure we accommodate for this in the file size. Since this size is aligned up, this would seldom be an issue in practice. Differential Revision: https://reviews.llvm.org/D39891 llvm-svn: 318284
* [MinGW] Implement the --[no-]gc-sections and --icf optionsMartin Storsjo2017-11-153-0/+39
| | | | | | | | | GNU ld doesn't seem to support --icf at all, but this was suggested in D39885, and GNU gold seems to support it. Differential Revision: https://reviews.llvm.org/D40019 llvm-svn: 318283
* [MinGW] Implement support for the --image-base optionMartin Storsjo2017-11-153-0/+7
| | | | | | Differential Revision: https://reviews.llvm.org/D40018 llvm-svn: 318282
* [MinGW] Add support for --dynamicbase, ignore --nxcompat, --tsaware and ↵Martin Storsjo2017-11-153-0/+15
| | | | | | | | | | | | | | | --high-entropy-va All of these are disabled by default in GNU ld, but enabled by default in lld. Disable dynamicbase by default since it potentially could cause compatibility issues, but just ignore the others since the lld default should be fine for most concievable cases. Differential Revision: https://reviews.llvm.org/D40017 llvm-svn: 318281
* [MinGW] Handle --large-address-awareMartin Storsjo2017-11-153-0/+7
| | | | | | | | | In GNU ld, this option is only available on i386, not on x86_64 (where it's enabled by default with no option to disable it either). Differential Revision: https://reviews.llvm.org/D40015 llvm-svn: 318280
* [Lint] Don't warn about passing alloca'd value to tail call if using byvalMikael Holmen2017-11-152-8/+50
| | | | | | | | | | | | | | | | | | | Summary: This fixes PR35241. When using byval, the data is effectively copied as part of the call anyway, so the pointer returned by the alloca will not be leaked to the callee and thus there is no reason to issue a warning. Reviewers: rnk Reviewed By: rnk Subscribers: Ka-Ka, llvm-commits Differential Revision: https://reviews.llvm.org/D40009 llvm-svn: 318279
* [X86] Redefine the 128-bit version of VPGATHERQD and VGATHERQPS to use a VK2 ↵Craig Topper2017-11-153-14/+24
| | | | | | | | | | mask instead of a VK4 mask. This allows us to remove extra extend creation during lowering and more accurately reflects the semantics of the instruction. While there add an extra output VT to X86 masked gather node to better match the isel pattern predicate. Currently we're exploiting the fact that the isel table doesn't count how many output results a node actually has if the result type of any can be inferred from the first result and the type constraints defined in tablegen. I think we might ultimately want to lower all MGATHER/MSCATTER to an X86ISD node with the extra mask result and stop relying on this hole in the isel checking. llvm-svn: 318278
* Tolerate even more [[nodiscard]] in the STL. Reviewed as ↵Billy Robert O'Neal III2017-11-1535-100/+104
| | | | | | https://reviews.llvm.org/D39080 llvm-svn: 318277
* Tolerate [[nodiscard]] annotations in the STL. Reviewed as ↵Billy Robert O'Neal III2017-11-1558-74/+98
| | | | | | https://reviews.llvm.org/D39033 llvm-svn: 318276
* GISelWorkList.h: Fix -fmodules build in rL318210.NAKAMURA Takumi2017-11-151-0/+2
| | | | llvm-svn: 318275
* ASTMatchers.h: Avoid warnings due to "@throw". [-Wdocumentation]NAKAMURA Takumi2017-11-151-2/+2
| | | | llvm-svn: 318274
* Fix llvm/test/Transforms/LoopRotate/pr35210.ll in rL318237, it uses debug ↵NAKAMURA Takumi2017-11-151-0/+1
| | | | | | options. llvm-svn: 318273
* NFC Remove default argument of DataLayout::getPointerABIAlignmentFangrui Song2017-11-154-6/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D40005 llvm-svn: 318272
* [X86] Add getHostCPUName support for the Gemini Lake model number which also ↵Craig Topper2017-11-151-2/+3
| | | | | | uses Goldmont. llvm-svn: 318271
* [X86] Add getHostCPUName support for cannonlake.Craig Topper2017-11-152-7/+22
| | | | | | This adds an explicit model number check and fallback path to the unknown family 6 detection. llvm-svn: 318270
* First part of P0600 - '[[nodiscard] in the standard library'. Mark the ↵Marshall Clow2017-11-1528-17/+493
| | | | | | 'empty()' methods of all the containers as nodiscard. If you're calling empty() w/o looking at the result, you probably meanto to call 'clear()'. c++2a only llvm-svn: 318269
* Still more missing tests - this time for the unordered containersMarshall Clow2017-11-158-0/+432
| | | | llvm-svn: 318268
* [InstCombine] Simplify binops that are only used by a select and are fed by ↵Craig Topper2017-11-152-0/+92
| | | | | | | | | | | | | | | | | | | a select with the same condition. Summary: This patch optimizes a binop sandwiched between 2 selects with the same condition. Since we know its only used by the select we can propagate the appropriate input value from the earlier select. As I'm writing this I realize I may need to avoid doing this for division in case the select was protecting a divide by zero? Reviewers: spatel, majnemer Reviewed By: majnemer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39999 llvm-svn: 318267
OpenPOWER on IntegriCloud