summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "[PowerPC] LSR tunings for PowerPC"Stefan Pintilie2018-03-093-73/+0
| | | | | | | | Revert the rest of the LST tune commit. It seems that the LSR tune commit breaks internal tests. Reverting the commit. llvm-svn: 327143
* Revert "[PowerPC] Move test to correct location."Stefan Pintilie2018-03-091-0/+0
| | | | | | Revert part of the LSR tune commit. llvm-svn: 327142
* Tidyup comment that was destroyed by clang-format. NFCI.Simon Pilgrim2018-03-091-3/+4
| | | | llvm-svn: 327141
* [X86][SSE] createVariablePermute - move index vector canonicalization to top ↵Simon Pilgrim2018-03-091-11/+11
| | | | | | | | of function. NFCI. This is to make it easier to return early from the switch statement with custom lowering. llvm-svn: 327140
* Try to fix Windows bot by forcing "rm".Tim Northover2018-03-093-10/+10
| | | | llvm-svn: 327139
* [LangRef] make it clear that FP instructions do not have side effectsSanjay Patel2018-03-091-5/+20
| | | | | | | | | | | | | | | | | Also, fix the undef vs. UB example to use 'sdiv' because that can trigger div-by-zero UB. The existing text for the constrained intrinsics says: "By default, LLVM optimization passes assume that the rounding mode is round-to-nearest and that floating point exceptions will not be monitored. Constrained FP intrinsics are used to support non-default rounding modes and accurately preserve exception behavior without compromising LLVM’s ability to optimize FP code when the default behavior is used." ...so the additional text with the normal FP opcodes should make the different modes clear. Differential Revision: https://reviews.llvm.org/D44216 llvm-svn: 327138
* [dsymutil] Unify error handling and add colorJonas Devlieghere2018-03-094-19/+46
| | | | | | | | | We improved the handling of errors and warnings in dwarfdump's verifier in rL314498. This patch does the same thing for dsymutil. Differential revision: https://reviews.llvm.org/D44052 llvm-svn: 327137
* [OPENMP] Fix the address of the original variable in task reductions.Alexey Bataev2018-03-092-1/+6
| | | | | | | | If initialization of the task reductions requires pointer to original variable, which is stored in the threadprivate storage, we used the address of this pointer instead. llvm-svn: 327136
* CMake: Make libxml2 show up in --system-libs (PR36660)Hans Wennborg2018-03-091-2/+3
| | | | | | | | | | lib/WindowsManifest/CMakeLists.txt adds it to LLVM_SYSTEM_LIBS on that target, but it was never getting picked up in tools/llvm-config/CMakeLists.txt. Differential Revision: https://reviews.llvm.org/D44302 llvm-svn: 327135
* [SemaOverload] Fixed crash on code completionIlya Biryukov2018-03-092-6/+19
| | | | | | | | | | | | | | | | | | Summary: The relevant failing assertion message is: ../tools/clang/lib/Sema/SemaInit.cpp:8411: PerformCopyInitialization(): Assertion `InitE && "No initialization expression?"' failed. See the added test case for a repro. Reviewers: bkramer, sammccall, ioeric, hokein Reviewed By: sammccall Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D44300 llvm-svn: 327134
* Make TestCompletion work on windowsPavel Labath2018-03-091-58/+0
| | | | | | | | | | | The test I added in r327110 is failing on windows because of "import pexpect". However, this import is no longer necessary as these tests don't use pexpect anymore. In fact, it seems that all TestCompletion tests are passing on windows after this, so I enable all of them. llvm-svn: 327133
* [x86][aarch64] ask the backend whether it has a vector blend instructionSebastian Pop2018-03-095-26/+43
| | | | | | | | | | | | | The code to match and produce more x86 vector blends was enabled for all architectures even though the transform may pessimize the code for other architectures that do not provide a vector blend instruction. Added an aarch64 testcase to check that a VZIP instruction is generated instead of byte movs. Differential Revision: https://reviews.llvm.org/D44118 llvm-svn: 327132
* [clangd] Fix failing lit test.Haojian Wu2018-03-091-2/+2
| | | | | | This test is missed in r327129. llvm-svn: 327131
* [clangd-vscode] Add package-lock.json to .gitignoreEric Liu2018-03-091-1/+2
| | | | llvm-svn: 327130
* [clangd] Use identifier range as the definition range.Haojian Wu2018-03-097-39/+117
| | | | | | | | | | | | Summary: This also matches the range in symbol index. Reviewers: sammccall Subscribers: klimek, ilya-biryukov, jkorous-apple, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D44247 llvm-svn: 327129
* [llvm-mca] Move the logic that prints the summary into its own view. NFCIAndrea Di Biagio2018-03-096-91/+193
| | | | llvm-svn: 327128
* [clangd] Don't index template specializations.Sam McCall2018-03-092-1/+20
| | | | | | | | | | | | | | Summary: These have different USRs than the underlying entity, but are not typically interesting in their own right and can be numerous (e.g. generated traits). Reviewers: ioeric Subscribers: klimek, ilya-biryukov, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D44298 llvm-svn: 327127
* [CMake] Properly conditionalize installation of lld librariesDavid Zarzycki2018-03-091-1/+1
| | | | | | | | | | | | | | In what appears to be a copy-and-paste error, lld currently only installs libraries if the lld tools are configured to build. Instead, lld should allow the libraries to be installed even if the lld tools are not being built. Additionally, if users want to only install the tools and not the libraries, the LLVM way of doing that is by checking for LLVM_INSTALL_TOOLCHAIN_ONLY. This fixes PR35960. llvm-svn: 327126
* [llvm-mca] Run clang-format on the source code. NFCAndrea Di Biagio2018-03-096-24/+28
| | | | llvm-svn: 327125
* [lld-link] Add support for /ignore:4037.Nico Weber2018-03-093-4/+16
| | | | | | | Fixes PR36657. https://reviews.llvm.org/D44286 llvm-svn: 327124
* [elf] Remove one copy of the section merging codePavel Labath2018-03-092-32/+46
| | | | | | | | | | | | | | | | Summary: Besides being superfluous, this double merging was actually wrong and causing some sections to be added twice. The reason for that was that the code assumes section IDs are unique in the section list, but this is only true if all sections in the list come from the same object file. Reviewers: fjricci, jankratochvil Subscribers: emaste, lldb-commits, arichardson Differential Revision: https://reviews.llvm.org/D44157 llvm-svn: 327123
* [asan] Try to unbreak arm build bots by only running the test onDan Liew2018-03-091-0/+1
| | | | | | | x86_64 and x86_64H (and not in the iOS simulator) where it seems to work. We need to properly fix the test when time permits. llvm-svn: 327122
* TableGen: Add a defset statementNicolai Haehnle2018-03-098-10/+205
| | | | | | | | | | | | | | | | | | | | | | | | Allows capturing a list of concrete instantiated defs. This can be combined with foreach to create parallel sets of def instantiations with less repetition in the source. This purpose is largely also served by multiclasses, but in some cases multiclasses can't be used. The motivating example for this change is having a large set of intrinsics, which are generated from the IntrinsicsBackend.td file included by Intrinsics.td, and a corresponding set of instruction selection patterns, which are generated via the backend's .td files. Multiclasses cannot be used to eliminate the redundancy in this case, because a multiclass cannot span both LLVM's common .td files and the backend .td files at the same time. Change-Id: I879e35042dceea542a5e6776fad23c5e0e69e76b Differential revision: https://reviews.llvm.org/D44109 llvm-svn: 327121
* TableGen: Allow arbitrary list values as ranges of foreachNicolai Haehnle2018-03-095-29/+51
| | | | | | | | | The changes to FieldInit are required to make field references (Def.field) work inside a ForeachDeclaration: previously, Def.field wasn't resolved immediately when Def was already a fully resolved DefInit. Change-Id: I9875baec2fc5aac8c2b249e45b9cf18c65ae699b llvm-svn: 327120
* TableGen: Remove unused ParseForeachModeNicolai Haehnle2018-03-092-3/+2
| | | | | | | | | | | | | | | Use the default ParseValueMode instead of ParseForeachMode when parsing the rule ForeachDeclaration ::= ID '=' '[' ValueList ']' because the only difference between the two is how an open brace '{' is handled at the end. In the context of foreach, the 'in' keyword will appear after the ForeachDeclaration, so this special handling of '{' is not required. Change-Id: I4d86bb73bab9ec26752e1273e5213df77cf28d1d llvm-svn: 327119
* TableGen: More helpful error messagesNicolai Haehnle2018-03-091-8/+22
| | | | | Change-Id: Ic78afd0cd765fdb4cf1b7ecfb6bba22653ce6d29 llvm-svn: 327118
* TableGen: add !isa operationNicolai Haehnle2018-03-098-1/+169
| | | | | | | | Change-Id: Iddb724c3ae706d82933a2d82c91d07e0e36b30e3 Differential revision: https://reviews.llvm.org/D44105 llvm-svn: 327117
* [DebugInfo/AccelTable] Fix inconsistency in getDIEOffset implementationsPavel Labath2018-03-096-20/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Even though the getDIEOffset offset function was common for the two accelerator table implementations, it was doing two different things: for the Apple tables, it was returning the die offset relative to the start of the section, whereas for DWARF v5 tables, it was relative to the start of the CU. I resolve this by renaming the function to getDIESectionOffset to make it obvious what the function returns, and change the DWARF implementation to return the section offset. I also keep the CU-relative accessor, but only in the DWARF implementation (there is no way to get this information for the Apple tables). This was not caught by existing tests because the hand-written inputs also erroneously used section offsets instead of CU-relative ones. While looking at this, I noticed that the Apple implementation was not fully correct either -- the header contains a DIEOffsetBase field, which should be added to offsets encoded with the DW_FORM_ref*** family, but this was not being used. This went unnoticed because all current writers set this field to zero anyway. I fix this as well and add a hand-written test which demonstrates the issue. Reviewers: JDevlieghere, dblaikie Subscribers: aprantl, llvm-commits Differential Revision: https://reviews.llvm.org/D44202 llvm-svn: 327116
* [clang-tidy] fix header guardSam McCall2018-03-091-3/+3
| | | | llvm-svn: 327115
* [clang-tidy] Add check: replace string::find(...) == 0 with absl::StartsWithHaojian Wu2018-03-0912-0/+347
| | | | | | | | | | | | Patch by Niko Weh! Reviewers: hokein Subscribers: klimek, cfe-commits, ioeric, ilya-biryukov, ahedberg Differential Revision: https://reviews.llvm.org/D43847 llvm-svn: 327111
* Move option parsing out of the Args classPavel Labath2018-03-099-713/+612
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The args class is used in plenty of places (a lot of them in the lower lldb layers) for representing a list of arguments, and most of these places don't care about option parsing. Moving the option parsing out of the class removes the largest external dependency (there are a couple more, but these are in static functions), and brings us closer to being able to move it to the Utility module). The new home for these functions is the Options class, which was already used as an argument to the parse calls, so this just inverts the dependency between the two. The functions are themselves are mainly just copied -- the biggest functional change I've made to them is to avoid modifying the input Args argument (getopt likes to permute the argument vector), as it was weird to have another class reorder the entries in Args class. So now the functions don't modify the input arguments, and (for those where it makes sense) return a new Args vector instead. I've also made the addition of a "fake arg0" (required for getopt compatibility) an implementation detail rather than a part of interface. While doing that I noticed that ParseForCompletion function was recording the option indexes in the shuffled vector, but then the consumer was looking up the entries in the unshuffled one. This manifested itself as us not being able to complete "watchpoint set variable foo --" (because getopt would move "foo" to the end). Surprisingly all other completions (e.g. "watchpoint set variable foo --w") were not affected by this. However, I couldn't find a comprehensive test for command argument completion, so I consolidated the existing tests and added a bunch of new ones. Reviewers: davide, jingham, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D43837 llvm-svn: 327110
* [LV] Fix vectorizer's isUniform() abuse triggers assert in SCEVRenato Golin2018-03-091-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes PR36311. See more detailed analysis in https://bugs.llvm.org/show_bug.cgi?id=36311. isUniform() information is recomputed after LV started transforming the underlying IR and that triggered an assert in SCEV. From vectorizer's architectural perspective, such information, while still useful in vector code gen, should not be recomputed after the start of transforming the LLVM IR. Instead, we should collect and cache such information during the analysis phase of LV and use the cached info during code gen. From the symptom perspective, this assert as it stands right now is not very useful. Legality already rejected loops that would trigger the assert. As such, commenting out the assert is NFC from vectorizer's functionality perspective. On top of that, just above the assertion, we check for unit-strided load/store or gather scatter. Addresses can't be uniform below that check. From vectorization theory point of view, we don't have to reject all cases of stores to uniform addresses. Eventually, we should support safe/profitable cases. This patch resolves the issue by removing the useless assertion that is invoking LAA's isUniform() that requires up-to-date DomTree ---- once vector code gen starts modifying CFG, we don't have an up-to-date DomTree. Patch by Hideki Saito <hideki.saito@intel.com>. llvm-svn: 327109
* [Support] Move syntax highlighting into supportJonas Devlieghere2018-03-099-89/+98
| | | | | | | | | | | | Move the DWARF syntax highlighting into support. This has several advantages, most notably that this makes the WithColor RAII wrapper available outside libDebugInfo. Furthermore, several projects all have their own code for handling colored output. This provides a place to centralize it. Differential revision: https://reviews.llvm.org/D44215 llvm-svn: 327108
* [AArch64] Fix use of a regex in the win-alloca.ll test. NFC.Martin Storsjo2018-03-091-1/+1
| | | | | | | Check that the variable actually is the same as the one previously matched. llvm-svn: 327107
* [AMDGPU] Fixed V_DIV_FIXUP_F16 selection on GFX9Stanislav Mekhanoshin2018-03-092-71/+71
| | | | | | | | GFX9 should select opsel version. Differential Revision: https://reviews.llvm.org/D44279 llvm-svn: 327106
* CodeGen: simplify and validate exception personalitiesSaleem Abdulrasool2018-03-095-19/+323
| | | | | | | | | | | | Simplify the dispatching for the personality routines. This really had no test coverage previously, so add test coverage for the various cases. This turns out to be pretty complicated as the various languages and models interact to change personalities around. You really should feel bad for the compiler if you are using exceptions. There is no reason for this type of cruelty. llvm-svn: 327105
* [X86] Remove duplicate isel pattern. NFCCraig Topper2018-03-091-1/+0
| | | | llvm-svn: 327104
* Revert "[clang-doc] Setup clang-doc frontend framework"Julie Hockett2018-03-0925-2183/+0
| | | | | | | This reverts commit r327102, since it was breaking the linux-abi-test on x86. llvm-svn: 327103
* [clang-doc] Setup clang-doc frontend frameworkJulie Hockett2018-03-0925-0/+2183
| | | | | | | | | | | | | | | | Setting up the mapper part of the frontend framework for a clang-doc tool. It creates a series of relevant matchers for declarations, and uses the ToolExecutor to traverse the AST and extract the matching declarations and comments. The mapper serializes the extracted information to individual records for reducing and eventually doc generation. For a more detailed overview of the tool, see the design document on the mailing list: http://lists.llvm.org/pipermail/cfe-dev/2017-December/056203.html Differential Revision: https://reviews.llvm.org/D41102 llvm-svn: 327102
* Don't treat .symver as a regular alias definition.Rafael Espindola2018-03-096-6/+25
| | | | | | | | | | | | | | This patch starts simplifying the handling of .symver. For now it just moves the responsibility for creating an alias down to the streamer. With that the asm streamer can pass a .symver unchanged, which is nice since gas cannot parse "foo@bar = zed". In a followup I hope to move the handling down to the writer so that we don't need special hacks for avoiding breaking names with @@@ on windows. llvm-svn: 327101
* Attempt to fix vecreduce-propagate-sd-flags.ll test.Matt Morehouse2018-03-091-1/+1
| | | | | | Buildbots have been failing since r327079. llvm-svn: 327100
* PR36645: Go looking for an appropriate array bound when constant-evaluating aRichard Smith2018-03-092-4/+16
| | | | | | name of an array object. llvm-svn: 327099
* [analyzer] MmapWriteExecChecker: Add support for mprotect().Artem Dergachev2018-03-092-3/+12
| | | | | | | | | | | mprotect() allows setting memory access flags similarly to mmap(), causing similar security issues if these flags are needlessly broad. Patch by David Carlier! Differential Revision: https://reviews.llvm.org/D44250 llvm-svn: 327098
* I added CFLAGS etc to one part of the project file I should not have.Jason Molenda2018-03-091-49/+1
| | | | llvm-svn: 327097
* [CFG] [analyzer] Add construction context for implicit constructor conversions.Artem Dergachev2018-03-094-5/+108
| | | | | | | | | | | | | Implicit constructor conversions such as A a = B() are represented by surrounding the constructor for B() with an ImplicitCastExpr of CK_ConstructorConversion kind, similarly to how explicit constructor conversions are surrounded by a CXXFunctionalCastExpr. Support this syntax pattern when extracting the construction context for the implicit constructor that performs the conversion. Differential Revision: https://reviews.llvm.org/D44051 llvm-svn: 327096
* More cleanups of debugserver project file and the libpmenergy/libpmsampleJason Molenda2018-03-091-67/+132
| | | | | | | | stuff. Activate it when an internal SDK is selected. Update the name of the LDFLAGS to match the rest of the settings. Update the default arch for ios builds. llvm-svn: 327095
* Revert "[ThinLTO] Keep available_externally symbols live"Eric Christopher2018-03-094-53/+3
| | | | | | This reverts commit r327041 and the followup attempts at fixing the testcase as they're still failing. llvm-svn: 327094
* [X86] Remove SRAs from v16i8 multiply lowering on sse2 targetsCraig Topper2018-03-094-93/+49
| | | | | | | | | | Previously we unpacked the even bytes of each input into the high byte of 16-bit elements then did an v8i16 arithmetic shift right by 8 bits to fill the upper bits of each word with sign bits. Then we did the v8i16 multiply and then masked to zero the upper 8-bits of each result. The similar was done for all the odd bytes. The results are then packed together with packuswb Since we are masking each multiply result element to 8-bits, and those 8-bits are determined only by the lower 8-bits of each of the inputs, we don't need to fill the upper bits with sign bits. So we can just unpack into the low byte of each element and treat the upper bits as garbage. This is what gcc also does. Differential Revision: https://reviews.llvm.org/D44267 llvm-svn: 327093
* LowerDbgDeclare: ignore dbg.declares for allocas with volatile accessAdrian Prantl2018-03-093-20/+116
| | | | | | | | | | | There is no point in lowering a dbg.declare describing an alloca that has volatile loads or stores as users, since the alloca cannot be elided. Lowering the dbg.declare will result in larger debug info that may also have worse coverage than just describing the alloca. rdar://problem/34496278 llvm-svn: 327092
* Mark the -overlap tests are "UNSUPPORTED: android". Android test harness ↵Kuba Mracek2018-03-094-0/+7
| | | | | | doesn't know how to handle suppression files. llvm-svn: 327091
OpenPOWER on IntegriCloud