summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [SelectionDAG] Enable SimplifyDemandedVectorElts support for simplifying ↵Simon Pilgrim2018-02-164-55/+56
| | | | | | | | | | shuffle masks Based off the DemandedElts mask the and UNDEF elements returned from the SimplifyDemandedVectorElts calls to the shuffle operands, we can attempt to simplify the shuffle mask. I had to be very conservative here as accepting post-legalized shuffle masks could cause problems for targets that legalize UNDEF mask elements back to inrange values (PowerPC), similarly combining to identity shuffle masks could cause too much UNDEF information to disappear for later combines. llvm-svn: 325354
* [InstCombine] reduce code duplication; NFCSanjay Patel2018-02-161-31/+19
| | | | llvm-svn: 325353
* Use Token::isOneOf method in Parser.Frederich Munch2018-02-161-3/+3
| | | | | | | | | | | | | | Summary: Easier to read and possibly optimize. Reviewers: rsmith, sepavloff Reviewed By: sepavloff Subscribers: sepavloff, cfe-commits Differential Revision: https://reviews.llvm.org/D36701 llvm-svn: 325352
* [ARM] Add tests for the vcvtr builtinsSjoerd Meijer2018-02-162-22/+53
| | | | | | | | | This adds Sema and Codegen tests for the vcvtr builtins (because they were missing). Differential Revision: https://reviews.llvm.org/D43372 llvm-svn: 325351
* [X86][SSE] Allow float domain crossing if we are merging 2 or more shuffles ↵Simon Pilgrim2018-02-166-43/+27
| | | | | | and the root started as a float domain shuffle llvm-svn: 325349
* [PowerPC] Fix transform in table gen file causing UBNemanja Ivanovic2018-02-161-1/+1
| | | | | | | | Running a bootstrap build with UBSan produces a number of instances where we have signed integer overflow due to this transform. Change the type to long to prevent this UB on 64-bit build machines. llvm-svn: 325347
* [clangd] remove redundant ';' introduced in r325343Eric Liu2018-02-161-1/+1
| | | | llvm-svn: 325346
* Add initial XRay support for NetBSDKamil Rytarowski2018-02-163-4/+5
| | | | | | | | | | | | | | | | | | | Summary: Reuse the existing FreeBSD code as it is. Sponsored by <The NetBSD Foundation> Reviewers: dberris, rnk, vitalybuka Reviewed By: dberris Subscribers: mclow.lists, emaste, mgorny, llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D43370 llvm-svn: 325345
* [clangd] collect symbol #include & insert #include in global code completion.Eric Liu2018-02-1627-39/+1457
| | | | | | | | | | | | | | | | | | Summary: o Collect suitable #include paths for index symbols. This also does smart mapping for STL symbols and IWYU pragma (code borrowed from include-fixer). o For global code completion, add a command for inserting new #include in each code completion item. Reviewers: sammccall Reviewed By: sammccall Subscribers: klimek, mgorny, ilya-biryukov, jkorous-apple, hintonda, cfe-commits Differential Revision: https://reviews.llvm.org/D42640 llvm-svn: 325343
* [Coroutines] Use target-agnostic size_t in testBrian Gesiak2018-02-161-6/+6
| | | | | | | | | | | | | | | | Summary: Fix a test failure on ARM hosts that was caused by a difference in the type of size_t, by using a target-agnostic definiton. Test Plan: ``` clang -cc1 -internal-isystem build/lib/clang/7.0.0/include -nostdsysteminc \ -std=c++14 -fcoroutines-ts -verify clang/test/SemaCXX/coroutines.cpp \ -fcxx-exceptions -fexceptions \ -triple armeb-none-eabi ``` llvm-svn: 325342
* [mips] Remove codegen support from some 16 bit instructionsSimon Dardis2018-02-167-331/+271
| | | | | | | | | | | | These instructions conflict with their full length variants for the purposes of FastISel as they cannot be distingushed based on the number and type of operands and predicates. Reviewers: atanasyan Differential Revision: https://reviews.llvm.org/D41285 llvm-svn: 325341
* Shorten socket names in TestPlatformProcessConnectPavel Labath2018-02-161-3/+3
| | | | | | | | | | | The test was generating long unix socket names, and the addition of a new folder in the previous patch pushed it over the limit (although linux has a fairly generous limit for path names, this does not apply to unix sockets). Modify the test to use a shorter name instead. llvm-svn: 325340
* Re-enable lang/objc/modules/TestObjCModulesJonas Devlieghere2018-02-161-4/+0
| | | | | | | | The reason this test was disabled is no longer relevant. However, it didn't turn into an unexpected success because of a syntax error in the test itself. This commit fixes that and re-enables the test. llvm-svn: 325339
* [SelectionDAG] Add initial SimplifyDemandedVectorElts support for ↵Simon Pilgrim2018-02-162-4/+20
| | | | | | | | simplifying VSELECT operands This just adds a basic pass through - we can add constant selection mask handling in a future patch to fully match InstCombine. llvm-svn: 325338
* [clangd] Assert path is absolute when assigning to URIForFile.Ilya Biryukov2018-02-164-27/+38
| | | | | | | | | | | | | | | | Summary: The assertion will point directly to misbehaving code, so that debugging related problems (like the one fixed by r325029) is easier. Reviewers: hokein, ioeric, sammccall Reviewed By: sammccall Subscribers: klimek, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D43246 llvm-svn: 325337
* [clang-format] Enable google text proto formatting in R"proto('sKrasimir Georgiev2018-02-161-0/+2
| | | | llvm-svn: 325336
* Revert r325321 "[Sema] Take into account the current context when checking the"Hans Wennborg2018-02-162-40/+0
| | | | | | | | | | | | | | This broke the Chromium build, see https://crbug.com/813017 > accessibility of a class member. > > This fixes PR32898. > > rdar://problem/33737747 > > Differential revision: https://reviews.llvm.org/D36918 llvm-svn: 325335
* Fix paralelization of remote testsPavel Labath2018-02-161-1/+1
| | | | | | | | | | Since we now can run multiple tests from the same directory at once, we need to include the test name in the remote test directory instead. I'm not sure if the test_number in the remote path is necessary anymore (or even if it was ever necessary), but I choose to leave it in for now. llvm-svn: 325334
* [ELF] Extend symbol-order-warnings test case for ICFJames Henderson2018-02-161-1/+19
| | | | | | | | | | | | Reviewed by: rafael Differential Revision: https://reviews.llvm.org/D43336 There is some discussion as to the exact behaviour of combining ICF and --symbol-ordering-file, but it seems beneficial to warn when attempting to order the removed symbol regardless of the preferred approach. llvm-svn: 325333
* [ELF] - Fix comment. NFC.George Rimar2018-02-161-1/+1
| | | | | | Addresses forgotten comment for D43071. llvm-svn: 325332
* [ELF] - Support COPY, INFO, OVERLAY output sections attributes.George Rimar2018-02-164-4/+47
| | | | | | | | | | | | | | This is PR36298. (COPY), (INFO), (OVERLAY) all have the same effect: section should be marked as non-allocatable. (https://www.eecs.umich.edu/courses/eecs373/readings/Linker.pdf, 3.6.8.1 Output Section Type) Differential revision: https://reviews.llvm.org/D43071 llvm-svn: 325331
* [Transforms] Propagate TBAA info in SROAIvan A. Kosarev2018-02-162-173/+335
| | | | | | | | | | | | | | | Now that we have the new TBAA metadata format that is capable of representing accesses to aggregates, we can propagate TBAA access tags from memory setting and transferring intrinsics to load and store instructions and vice versa. Since SROA produces lots of new loads and stores on optimized builds, this change significantly decreases the share of undecorated memory accesses on such builds. Differential Revision: https://reviews.llvm.org/D41563 llvm-svn: 325329
* Ensure that Elf_Rel addends are always written for dynamic relocationsAlexander Richardson2018-02-167-7/+62
| | | | | | | | | | | | Summary: This follows up on r321889 where writing of Elf_Rel addends was partially moved to RelocationBaseSection. This patch ensures that the addends are always written to the output section when a input section uses RELA but the output is REL. Differential Revision: https://reviews.llvm.org/D42843 llvm-svn: 325328
* [ARM] Return true in enableMultipleCopyHints().Jonas Paulsson2018-02-168-147/+145
| | | | | | | | | | 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: Eli Friedman llvm-svn: 325327
* [clangd] TestFS cleanup: getVirtualBlahBlah -> testPath/testRoot. Remove ↵Sam McCall2018-02-168-87/+79
| | | | | | SmallString micro-opt for more ergonomic tests. NFC llvm-svn: 325326
* [LegalizeDAG] Fix legalization of SETCCMikhail Maltsev2018-02-162-1/+24
| | | | | | | | | | | | | | | | | | | Summary: Currently when expanding a SETCC node into a SELECT_CC, LLVM uses an incorrect type for determining BooleanContent of the result. This patch fixes the issue. Fixes PR36079. Reviewers: rogfer01, javed.absar, efriedma Reviewed By: efriedma Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D43282 llvm-svn: 325325
* [lldb][PPC64] Fixed vector and struct return valuePavel Labath2018-02-162-145/+575
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: The PowerPC64 ABI plugin was modified to: - properly handle vector type return values - implement support for struct/class return values A refactoring in the code that handles return values was also performed, to make it possible to handle structs without repeating (when possible) code that handles its fields. There was also an issue with CreateInstance(), that only created an instance in the first time it was called and then cached it in a static var. When restarting a process under LLDB's control, the ABI's process weak pointer would become null, and using it would result in a segmentation fault. This issue became more evident after the latest changes to PPC64 plugin, that now uses the process pointer to get the target byte order, making LLDB to seg fault when restarting a program. This was fixed by making CreateInstance() to always create a new ABI instance. All of LLDB's ReturnValue tests are passing for PPC64le now. It should work for PPC64be too, although this was not tested. Reviewers: labath, clayborg Reviewed By: labath Subscribers: lbianc, anajuliapc, llvm-commits, alexandreyy, nemanjai, kbarton Differential Revision: https://reviews.llvm.org/D42468 Patch by Leandro Lupori <leandro.lupori@gmail.com>. llvm-svn: 325324
* [ARM] Materialise some boolean values to avoid a branchRoger Ferrer Ibanez2018-02-1621-723/+929
| | | | | | | | | | | | | This patch combines some cases of ARMISD::CMOV for integers that arise in comparisons of the form a != b ? x : 0 a == b ? 0 : x and that currently (e.g. in Thumb1) are emitted as branches. Differential Revision: https://reviews.llvm.org/D34515 llvm-svn: 325323
* [dosep] Run tests in a more parallel fashionPavel Labath2018-02-162-61/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Due to in-tree builds, we were parallelizing the tests at the directory level. Now that the tests are built out-of-tree, we can remove this limitation and paralelize at file level instead. This decreases test suite time by about 10% for me, which is not world-shattering, but it makes the code slightly simpler and will also allow us to merge tests which were artificially spread over multiple folders (TestConcurrentEvents...) to work-around this limitation. To make this work, I've also needed to include the test file name in the build directory name, as just the test method name is not unique enough (plenty of tests have a test method called "test" or similar). While doing this, I've found a couple of tests that are taking waaay longer then they ought to (TestBreakpointCaseSensitivity -- 90 seconds), which I plan to look into in the future. Reviewers: aprantl Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D43335 llvm-svn: 325322
* [Sema] Take into account the current context when checking theAkira Hatanaka2018-02-162-0/+40
| | | | | | | | | | | | accessibility of a class member. This fixes PR32898. rdar://problem/33737747 Differential revision: https://reviews.llvm.org/D36918 llvm-svn: 325321
* [ThinLTO] Import global variablesEugene Leviant2018-02-165-22/+126
| | | | | | Differential revision: https://reviews.llvm.org/D43077 llvm-svn: 325320
* [Coverage] Handle break/continue outside of loop bodiesVedant Kumar2018-02-162-8/+27
| | | | | | | | | Teach the coverage mapping logic to handle break or continue statements within for loop increments. Fixes llvm.org/PR36406. llvm-svn: 325319
* [X86] Allow CMOVs of constants to be sign extended from i32.Craig Topper2018-02-163-23/+18
| | | | | | Sign extending i32 constants only requires a REX prefix as does widening the CMOV. This is cheaper than the explicit sign extend op. llvm-svn: 325318
* [X86] Don't zero_extend cmov up to i64, stop at i32.Craig Topper2018-02-162-12/+27
| | | | | | Zero extend from i32 to i64 is free. So extend from i16 to i32, and then use a free zero extend to finish. llvm-svn: 325317
* Fix an issue that weak bit is dropped when there's a lazy object symbol.Rui Ueyama2018-02-162-2/+24
| | | | | | | | Previously, we accidentally dropped STB_WEAK bit from an undefined symbol if there is a lazy object symbol with the same name. That caused a compatibility issue with GNU gold. llvm-svn: 325316
* Reintroduce FreeBSD support in test/xrayKamil Rytarowski2018-02-161-3/+8
| | | | | | | | | | Tested by Douglas Yung. The original patch from D43278 has been reverted. New patch by myself. llvm-svn: 325315
* [ELF] Fix use after free in case of using --whole-archive.Igor Kudrin2018-02-164-3/+18
| | | | | | Differential Revision: https://reviews.llvm.org/D34554 llvm-svn: 325313
* [DOXYGEN] There was a request in the review D41507 to change the notation ↵Ekaterina Romanova2018-02-162-65/+67
| | | | | | | | for hex numbers in doxygen documentation from <...>h to 0x<...>. Both of these notations were used in x86 intrinsics documentation. I promised to change them to 0x<...> for consistency. Differential Revision: https://reviews.llvm.org/D41888 llvm-svn: 325312
* [APInt] Fix extractBits to correctly handle Result.isSingleWord() case.Tim Shen2018-02-162-1/+9
| | | | | | | | | | | | Summary: extractBits assumes that `!this->isSingleWord() implies !Result.isSingleWord()`, which may not necessarily be true. Handle both cases. Reviewers: RKSimon Subscribers: sanjoy, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D43363 llvm-svn: 325311
* Remove brittle check lines from a test, NFCVedant Kumar2018-02-161-41/+0
| | | | llvm-svn: 325310
* Revert part of SVN r. 325240 in lit.cfgKamil Rytarowski2018-02-161-9/+3
| | | | | | | | | | | | | The original change broke a llvm-clang-lld-x86_64-debian setup. This change will be investigated and reintroduced in future. Original commit: "Add Xray instrumentation support to FreeBSD" https://reviews.llvm.org/D43278 llvm-svn: 325309
* [GVN] Partially revert debug info salvage change (r325063)Vedant Kumar2018-02-162-2/+1
| | | | | | | | | | | | | In r325063, we salvaged debug values from dying instructions in GVN::processBlock() and GVN::performScalarPRE(). The change in performScalarPRE(), while correct, is unhelpful. It introduced a call to salvageDebugInfo() which was immediately followed by a RAUW, meaning it prevented the RAUW from efficiently updating dbg.value intrinsics. This commit reverts the mistake and tightens up the affected test case. llvm-svn: 325308
* Relax relocation type checking in a non-ALLOC section.Rui Ueyama2018-02-163-14/+40
| | | | | | | | | | | | | | | | | | Even though it doesn't make sense, there seems to be multiple programs in the wild that create PC-relative relocations in non-ALLOC sections. I believe this is caused by the negligence of GNU linkers to not report any errors for such relocations. Currently, lld emits warnings against such relocations and exits. So, you cannot link any program that contains wrong relocations until you fix an issue in a program that generates wrong ELF files. It's often impractical to fix a program because it's not always easy. This patch relaxes the error checking and emit a warning instead. Differential Revision: https://reviews.llvm.org/D43351 llvm-svn: 325307
* [X86] Add the test cases that were supposed to go with r325287.Craig Topper2018-02-161-0/+242
| | | | llvm-svn: 325306
* [Modules] Extend -fmodule-name semantic for frameworks with private modulesBruno Cardoso Lopes2018-02-162-4/+34
| | | | | | | | | | | | | Assume Foo.framework with two module maps and two modules Foo and Foo_Private. Framework authors need to skip building both Foo and Foo_Private when using -fmodule-name=Foo, since both are part of the framework and used interchangeably during compilation. rdar://problem/37500098 llvm-svn: 325305
* [OPENMP] Fix PR36399: Crash on C code with ordered doacross construct.Alexey Bataev2018-02-152-0/+63
| | | | | | | | | Codegen for ordered with doacross construct might produce incorrect code because of missing cleanup scope for the construct. Without this scope the final runtime function call could be emitted in the wrong order that leads to incorrect codegen. llvm-svn: 325304
* Allow 0 to be a valid value pruning interval in C LTO API. Value 0 will ↵Ekaterina Romanova2018-02-154-6/+28
| | | | | | cause garbage collector to run. This matches the behavior in C++ LTO API. llvm-svn: 325303
* [OPENMP] Fix PR38398: compiler crash on standalone pragma ordered with ↵Alexey Bataev2018-02-152-119/+118
| | | | | | | | | depend sink|source clause. Patch fixes compiler crash on standalone #pragmas ordered with depend(sink|source) clauses. llvm-svn: 325302
* [DCE] Salvage debug info from dead instsVedant Kumar2018-02-152-4/+11
| | | | | | | This results in small increases in the size of the .debug_loc section and the number of unique source variables in a stage2 build of opt. llvm-svn: 325301
* [asan] Add "arm64" into the list of 64-bit architecturesKuba Mracek2018-02-151-3/+3
| | | | | | | | It looks like get_bits_for_arch doesn't recognize "arm64" as a 64-bit architecture, and it actually matches the "arm" regexp, which marks it as 32-bit. Let's fix that by matching the 64-bit list first and addin "arm64" into the list. Differential Revision: https://reviews.llvm.org/D43155 llvm-svn: 325300
OpenPOWER on IntegriCloud