summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "[CodeGen] Move printing '\n' from MachineInstr::print to ↵Francis Visoiu Mistrih2018-02-195-41/+24
| | | | | | | | MachineBasicBlock::print" This reverts commit r324681. llvm-svn: 325505
* Add SBDebugger::GetBuildConfiguration and use it to skip an XML testPavel Labath2018-02-195-1/+34
| | | | | | | | | | | | | | | | | | | | | Summary: This adds a SBDebugger::GetBuildConfiguration static function, which returns a SBStructuredData describing the the build parameters of liblldb. Right now, it just contains one entry: whether we were built with XML support. I use the new functionality to skip a test which requires XML support, but concievably the new function could be useful to other liblldb clients as well (making sure the library supports the feature they are about to use). Reviewers: zturner, jingham, clayborg, davide Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D43333 llvm-svn: 325504
* [clangd] Correct the doc, password => Personal Access Token.Haojian Wu2018-02-191-1/+1
| | | | llvm-svn: 325503
* [clangd] Add brief instructions on how to make a release for vscode-clangd ↵Haojian Wu2018-02-191-0/+25
| | | | | | | | | | | | extension. Reviewers: sammccall Subscribers: klimek, ilya-biryukov, jkorous-apple, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D43455 llvm-svn: 325499
* [CodeComplete] Avoid name clashes of 'Kind' inside CodeCompletionContext. NFCIlya Biryukov2018-02-192-13/+12
| | | | | | | | | | CodeCompletionContext had declarations of field and enum inside, both named 'Kind'. It caused gcc 4.8 to give an incorrent warning when refering to enum as `enum CodeCompletionContext::Kind`. Avoid that warning by renaming the private field to CCKind. llvm-svn: 325496
* Make gdb-client tests generate binaries in the build treePavel Labath2018-02-191-7/+1
| | | | | | | | | | | These were missed in the great refactor because they were added concurrently with it. Since we started running tests in a more parallel fashion they started to be flaky. This should fix it. Now that we are no longer polluting the source tree, I also delete the bit of custom cleanup code specific to these tests. llvm-svn: 325495
* [X86][SSE] combineTruncateWithSat - use truncateVectorWithPACK down to ↵Simon Pilgrim2018-02-193-182/+44
| | | | | | | | 64-bit subvectors Add support for chaining PACKSS/PACKUS down to 64-bit vectors by using only a single 128-bit input. llvm-svn: 325494
* [clangd] Invert return value of fuzzyFind() (fix MemIndex's return value)Sam McCall2018-02-195-10/+16
| | | | | | | Have had way too many bugs by converting between "isComplete" and "isIncomplete". LSP is immovable, so use isIncomplete everywhere. llvm-svn: 325493
* [ARM] disable FPU features when using soft floating point.Keith Walker2018-02-195-68/+458
| | | | | | | | | | | | | | | | | | | | | | | | | | | To be compatible with GCC if soft floating point is in effect any FPU specified is effectively ignored, eg, -mfloat-abi=soft -fpu=neon If any floating point features which require FPU hardware are enabled they must be disable. There was some support for doing this for NEON, but it did not handle VFP, nor did it prevent the backend from emitting the build attribute Tag_FP_arch describing the generated code as using the floating point hardware if a FPU was specified (even though soft float does not use the FPU). Disabling the hardware floating point features for targets which are compiling for soft float has meant that some tests which were incorrectly checking for hardware support also needed to be updated. In such cases, where appropriate the tests have been updated to check compiling for soft float and a non-soft float variant (usually softfp). This was usually because the target specified in the test defaulted to soft float. Differential Revision: https://reviews.llvm.org/D42569 llvm-svn: 325492
* [clangd] Attach more information about Sema completion to tracesIlya Biryukov2018-02-191-2/+5
| | | | | | | | | | | | Reviewers: hokein, ioeric, sammccall Reviewed By: sammccall Subscribers: klimek, cfe-commits, jkorous-apple Differential Revision: https://reviews.llvm.org/D43377 llvm-svn: 325491
* [CodeComplete] Add a helper to print CodeCompletionContext::KindIlya Biryukov2018-02-192-0/+78
| | | | | | | | | | | | | | Summary: Will be used in clangd. See D43377. Reviewers: sammccall Reviewed By: sammccall Subscribers: ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D43379 llvm-svn: 325490
* clang-format: [JS] fix `of` detection.Martin Probst2018-02-192-1/+2
| | | | | | | | | | | | | | | | | | | Summary: `of` is only a keyword when after an identifier, but not when after an actual keyword. Before: return of (a, b, c); After: return of(a, b, c); Reviewers: djasper Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D43440 llvm-svn: 325489
* [Transforms] Propagate new-format TBAA tags on simplification of ↵Ivan A. Kosarev2018-02-192-1/+56
| | | | | | | | | | | | | | memory-transfer intrinsics With this patch in place, when a new-format TBAA tag is available for a memory-transfer intrinsic call, we prefer propagating that new-format tag. Otherwise, we fallback to the old approach where we try to construct a proper TBAA access tag from 'tbaa.struct' metadata. Differential Revision: https://reviews.llvm.org/D41543 llvm-svn: 325488
* [llvm-opt-fuzzer] Add another pack of passes for continuous fuzzingIgor Laevsky2018-02-191-5/+25
| | | | | | Differential Revision: https://reviews.llvm.org/D43384 llvm-svn: 325487
* [clangd] Mark non-changing fields of CppFile as const. NFCIlya Biryukov2018-02-191-2/+2
| | | | llvm-svn: 325486
* Rename DynamicReloc::getAddend() to computeAddend(). NFCAlexander Richardson2018-02-192-3/+11
| | | | | | | | | | | | | Summary: Before the name of the function sounded like it was just a getter for the private class member Addend. However, it actually calculates the final value for the r_addend field in Elf_Rela that is used when writing the .rela.dyn section. I also added a comment to the UseSymVA member to explain how it interacts with computeAddend(). Differential Revision: https://reviews.llvm.org/D43161 llvm-svn: 325485
* [clangd] Bump vs-code clangd extension v0.0.3Haojian Wu2018-02-191-1/+1
| | | | | | | | | | Reviewers: sammccall Subscribers: klimek, ilya-biryukov, jkorous-apple, cfe-commits, ioeric Differential Revision: https://reviews.llvm.org/D43452 llvm-svn: 325484
* [AVR] Set the program address space in the data layoutDylan McKay2018-02-191-1/+1
| | | | | | This is accompanied by r325481 in LLVM. llvm-svn: 325483
* [clangd] Try to fix build bot failure caused by r325343: escape regex string.Eric Liu2018-02-191-1/+2
| | | | llvm-svn: 325482
* [AVR] Set the program address space in the data layoutDylan McKay2018-02-191-1/+1
| | | | | | | | | | | | This adds the program memory address space setting to the AVR data layout. This setting was very recently added under r325479. At the moment, there are no uses of this setting. In the future, things such as switch lookup tables should reside there. llvm-svn: 325481
* [clangd] Tracing: name worker threads, and enforce naming scheduled async tasksSam McCall2018-02-199-74/+116
| | | | | | | | | | | | | | | | | | | Summary: This has a bit of a blast radius, but I think there's enough value in "forcing" us to give names to these async tasks for debugging. Guessing about what multithreaded code is doing is so unfun... The "file" param attached to the tasks may seem to be redundant with the thread names, but note that thread names are truncated to 15 chars on linux! We'll be lucky to get the whole basename... Reviewers: ilya-biryukov Subscribers: klimek, jkorous-apple, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D43388 llvm-svn: 325480
* Add default address space for functions to the data layout (1/3)Dylan McKay2018-02-196-5/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This adds initial support for letting targets specify which address spaces their functions should reside in by default. If a function is created by a frontend, it will get the default address space specified in the DataLayout, unless the frontend explicitly uses a more general `llvm::Function` constructor. Function address spaces will become a part of the bitcode and textual IR forms, as we do not have access to a data layout whilst parsing LL. It will be possible to write IR that explicitly has `addrspace(n)` on a function. In this case, the function will reside in the specified space, ignoring the default in the DL. This is the first step towards placing functions into the correct address space for Harvard architectures. Full patchset * Add program address space to data layout D37052 * Require address space to be specified when creating functions D37054 * [clang] Require address space to be specified when creating functions D37057 Reviewers: pcc, arsenm, kparzysz, hfinkel, theraven Reviewed By: theraven Subscribers: arichardson, simoncook, rengolin, wdng, uabelho, bjope, asb, llvm-commits Differential Revision: https://reviews.llvm.org/D37052 llvm-svn: 325479
* [CodeGen] Initialize large arrays by copying from a globalIvan A. Kosarev2018-02-192-11/+48
| | | | | | | | | | | | | | Currently, clang compiles explicit initializers for array elements into series of store instructions. For large arrays of built-in types this results in bloated output code and significant amount of time spent on the instruction selection phase. This patch fixes the issue by initializing such arrays with global constants that store the binary image of the initializer. Differential Revision: https://reviews.llvm.org/D43181 llvm-svn: 325478
* [clangd] Add "clangd.trace" VSCode setting to enable tracing.Sam McCall2018-02-192-5/+14
| | | | | | | | | | | | | | Summary: Setting the CLANGD_TRACE environment variable directly is awkward with VSCode's "reload from the command palette" workflow. Reviewers: ilya-biryukov Subscribers: klimek, jkorous-apple, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D43385 llvm-svn: 325477
* [clangd] Fix use-after-free in SymbolYAML: strings are owned by yaml::Input!Sam McCall2018-02-194-12/+13
| | | | | | | | | | | | | | | | | | Summary: There are a few implementation options here - alternatives are either both awkward and inefficient, or really inefficient. This is at least potentially a hot path when used as a reducer for common symbols. (Also fix an unused-var that sneaked in) Reviewers: ioeric Subscribers: klimek, ilya-biryukov, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D43381 llvm-svn: 325476
* [cxx_dr_status] Tests for CWG issues 641-687.Richard Smith2018-02-192-41/+708
| | | | llvm-svn: 325475
* [AVR] Fix a lowering bug in AVRISelLowering.cppDylan McKay2018-02-191-4/+6
| | | | | | | | | | | | | | The parseFunctionArgs() method was directly reading the arguments from a Function object, but is should have used the arguments supplied by the SelectionDAGBuilder. This was causing the lowering code to only lower one argument, not two in some cases. Thanks to @brainlag on GitHub for coming up with the working fix! Patch-by: @brainlag on GitHub llvm-svn: 325474
* Add LanaiMCTargetDesc.h to LanaiInstrInfo.h to make it self containedEric Christopher2018-02-191-0/+1
| | | | | | with instruction enum definitions. llvm-svn: 325473
* [X86] Correct a typo I made in combineToExtendCMOV recently.Craig Topper2018-02-181-1/+1
| | | | | | | | We're accidentally checking that the same node is a constant twice instead of checking the other node. This isn't a functional problem since we didn't do anything below that explicitly requires constants. It just means we may have introduced a sign_extend or zero_extend that won't fold out. llvm-svn: 325469
* [Analyzer] Move UnexploredFirstStack into an anonymous namespace.Benjamin Kramer2018-02-181-0/+2
| | | | | | No functionality change intended. llvm-svn: 325468
* [tidy] Move private ast matchers into anonymous namespaces to avoid ODR ↵Benjamin Kramer2018-02-1814-17/+39
| | | | | | | | conflicts. No functionality change intended. llvm-svn: 325467
* [PatternMatch, InstSimplify] enhance m_AllOnes() to ignore undef elements in ↵Sanjay Patel2018-02-184-26/+17
| | | | | | | | | | | | | | | | | | | vectors Loosening the matcher definition reveals a subtle bug in InstSimplify (we should not assume that because an operand constant matches that it's safe to return it as a result). So I'm making that change here too (that diff could be independent, but I'm not sure how to reveal it before the matcher change). This also seems like a good reason to *not* include matchers that capture the value. We don't want to encourage the potential misstep of propagating undef values when it's not allowed/intended. I didn't include the capture variant option here or in the related rL325437 (m_One), but it already exists for other constant matchers. llvm-svn: 325466
* [InstSimplify] add tests with vector undef elts; NFCSanjay Patel2018-02-182-7/+18
| | | | llvm-svn: 325465
* Fix unused assertion variable warning.Amara Emerson2018-02-181-0/+1
| | | | llvm-svn: 325464
* [AArch64][GlobalISel] Fix an assert fail/miscompile when fp16 types are copiedAmara Emerson2018-02-182-0/+94
| | | | | | | | | | | | to gpr register banks. PR36345. rdar://36478867 Differential Revision: https://reviews.llvm.org/D43310 llvm-svn: 325463
* [AArch64][GlobalISel] Support G_INSERT/G_EXTRACT of types < s32 bits.Amara Emerson2018-02-182-16/+88
| | | | | | These are needed for operations on fp16 types in a later patch. llvm-svn: 325462
* [PatternMatch] reformatting and comment clean-ups; NFCSanjay Patel2018-02-181-98/+127
| | | | llvm-svn: 325461
* [Support] Replace hand-written scope_exit with make_scope_exit.Benjamin Kramer2018-02-181-23/+3
| | | | | | No functionality change intended. llvm-svn: 325460
* [AArch64] Coalesce Copy Zero during instruction selectionHaicheng Wu2018-02-185-3/+79
| | | | | | | | Add special case for copy of zero to avoid a double copy. Differential Revision: https://reviews.llvm.org/D36104 llvm-svn: 325459
* [clangd] Fix link failures for Preprocessor::addCommentHandlerHeejin Ahn2018-02-182-0/+2
| | | | | | | | | | | | | | | | | Summary: D42640 adds calls to `Preprocessor::addCommentHandler` in `unittests/clangd/SymbolCollectorTests.cpp` and `clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp` but does not link `clangLex` library. This causes undefined reference errors when built with `-DBUILD_SHARED_LIBS=ON`. Reviewers: ioeric Subscribers: klimek, mgorny, ilya-biryukov, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D43437 llvm-svn: 325458
* [BPF] Return true in enableMultipleCopyHints().Jonas Paulsson2018-02-1810-50/+52
| | | | | | | | | | Enable multiple COPY hints to eliminate more COPYs during register allocation. Note that this is something all targets should do, see https://reviews.llvm.org/D38128. Review: Yonghong Song llvm-svn: 325457
* [X86] Make masked pcmpeq commutable during isel so we can fold loads in ↵Craig Topper2018-02-183-5/+7
| | | | | | | | | | other operand to the shorter encoding. Previously we used the immediate encoding if the load was in operand 0 and the short encoding if the load was in operand 1. This added an insane number of bytes to the size of the isel table. I'm wondering if we should always use the immediate form during isel and change to the short form during emission. This would remove the need to pattern match every combination for both the immediate form and the short form during isel. We could do the same with vpcmpgt llvm-svn: 325456
* [X86] Add -show-mc-encoding to the avx512-vec-cmp.ll test and add test case ↵Craig Topper2018-02-181-372/+467
| | | | | | | | to show that we're failing to use the shorter pcmpeq encoding when the memory arguemnt is the first argument. This can't be spotted without showing the encodings since they have the same mnemonic. llvm-svn: 325455
* Revert: [llvm] r325448 - [ThinLTO] Add GraphTraits for FunctionSummaries Simon Pilgrim2018-02-185-239/+2
| | | | | | | | | | Add GraphTraits definitions to the FunctionSummary and ModuleSummaryIndex classes. These GraphTraits will be used to construct find SCC's in ThinLTO analysis passes. Second attempt, since last patch caused stage2 build to fail (now using function_ref rather than std::function). Reverted due to buildbot failures llvm-svn: 325454
* Simplify.Rui Ueyama2018-02-171-5/+4
| | | | llvm-svn: 325453
* Add DEBUGSERVER_PATH to the cache so it'll be available for tests.Don Hinton2018-02-171-2/+2
| | | | | | | | This fixed a problem caused by r325442. Differential Revision: https://reviews.llvm.org/D43432 llvm-svn: 325452
* Fix Wparentheses warning. NFCISimon Pilgrim2018-02-171-1/+1
| | | | llvm-svn: 325451
* [SelectionDAG] ComputeNumSignBits - add support for SMIN+SMAX clamp patternsSimon Pilgrim2018-02-174-1801/+1418
| | | | | | | | | | If we have a clamp pattern, SMIN(SMAX(X, LO),HI) or SMAX(SMIN(X, HI),LO) then we can deduce that the number of signbits will be at least the minimum of the LO and HI constants. I haven't bothered with the UMIN/UMAX equivalent as (1) we don't have any current use cases and (2) I wonder if we'd be better off immediately falling back for ComputeKnownBits for UMIN/UMAX which already has optimization patterns useful for unsigned cases. Differential Revision: https://reviews.llvm.org/D43338 llvm-svn: 325450
* [SelectionDAG] SimplifyDemandedVectorElts - add support for VECTOR_INSERT_ELTSimon Pilgrim2018-02-174-12/+38
| | | | | | Differential Revision: https://reviews.llvm.org/D43431 llvm-svn: 325449
* [ThinLTO] Add GraphTraits for FunctionSummariesCharles Saternos2018-02-175-2/+239
| | | | | | | | Add GraphTraits definitions to the FunctionSummary and ModuleSummaryIndex classes. These GraphTraits will be used to construct find SCC's in ThinLTO analysis passes. Second attempt, since last patch caused stage2 build to fail (now using function_ref rather than std::function). llvm-svn: 325448
OpenPOWER on IntegriCloud