summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [AMDGPU][MC] Corrected GATHER4 opcodesDmitry Preobrazhensky2018-03-1211-3039/+1206
| | | | | | | | | See bug 36252: https://bugs.llvm.org/show_bug.cgi?id=36252 Differential Revision: https://reviews.llvm.org/D43874 Reviewers: artem.tamazov, arsenm llvm-svn: 327278
* [llvm-readobj] Make header self-containedBenjamin Kramer2018-03-121-0/+1
| | | | | | Patch by Dean Sturtevant! llvm-svn: 327277
* Updating MIR Language Reference to include new syntax for symbols and physregs.Puyan Lotfi2018-03-121-32/+32
| | | | | | | External symbols now get the sigil '&' while physical registers get the sigil '$' for their prefix. llvm-svn: 327276
* [clangd] Collect the number of files referencing a symbol in the static index.Sam McCall2018-03-129-25/+89
| | | | | | | | | | | | | | | Summary: This is an important ranking signal. It's off for the dynamic index for now. Correspondingly, tell the index infrastructure only to report declarations for the dynamic index. Reviewers: ioeric, hokein Subscribers: klimek, ilya-biryukov, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D44315 llvm-svn: 327275
* [DebugInfo] Replace unreachable with NoneJonas Devlieghere2018-03-121-1/+1
| | | | | | | | | Invalid user input should not trigger assertions and unreachables. We already return an Option so we should just return None here. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5532 llvm-svn: 327274
* [Hexagon] fix 'must explicitly initialize the const member' error which ↵Sam McCall2018-03-121-2/+2
| | | | | | clang 3.8 emits llvm-svn: 327273
* [ELF] - Removed excessive lookup. NFC.George Rimar2018-03-121-3/+2
| | | | llvm-svn: 327272
* [Hexagon] Add more lit testsKrzysztof Parzyszek2018-03-12386-0/+32789
| | | | llvm-svn: 327271
* [analyzer] Trying to fix Windows buildbots after r327258Maxim Ostapenko2018-03-121-1/+1
| | | | llvm-svn: 327270
* AMDGPU/GlobalISel: Legality and RegBankInfo for G_{INSERT|EXTRACT}_VECTOR_ELTMatt Arsenault2018-03-126-0/+462
| | | | llvm-svn: 327269
* AMDGPU/GlobalISel: InstrMapping for G_MERGE_VALUESMatt Arsenault2018-03-123-1/+57
| | | | llvm-svn: 327268
* AMDGPU/GlobalISel: Make some G_MERGE_VALUEs legalMatt Arsenault2018-03-123-0/+174
| | | | llvm-svn: 327267
* Revert r326710 "Fuzzer: remove temporary files after we're done with them."Hans Wennborg2018-03-123-10/+0
| | | | | | | | | | | | This broke some Windows buildbots; see llvm-commits thread. > These were just copies of the relevant fuzzer binary with (presumably) > meaningful suffixes, but accounted for more than 10% of my build > directory (> 8GB). Hard drive space is cheap, but not that cheap. (Also reverts follow-up r326710 which didn't help.) llvm-svn: 327266
* [mips] Split out ASEPredicate from InsnPredicates (NFC)Simon Dardis2018-03-125-38/+38
| | | | | | | | | | | This simplifies tagging instructions with the correct ISA and ASE, albeit making instruction definitions a bit more verbose. Reviewers: atanasyan, abeserminji Differential Revision: https://reviews.llvm.org/D44299 llvm-svn: 327265
* Update the supported C language standards in the user manual.Aaron Ballman2018-03-121-4/+5
| | | | | | Remove mention of -std=c94 (it is spelled iso9899:1994, not c94) and add mention of -std=c17 and -std=gnu17. llvm-svn: 327264
* [analyzer] Trying to fix buildbots after r327258Maxim Ostapenko2018-03-121-2/+2
| | | | llvm-svn: 327263
* MC intel asm parser: Allow @ at the start of function names.Nico Weber2018-03-122-2/+9
| | | | | | | | Ports parts of r193000 to the intel parser. Fixes part of PR36676. https://reviews.llvm.org/D44359 llvm-svn: 327262
* Make lld-link shout at me less.Nico Weber2018-03-124-15/+15
| | | | | | | | | This makes the output of some flag names in warning messages consistent with the output of /? and the output of flags in most other diagnostics. https://reviews.llvm.org/D44307 llvm-svn: 327261
* [ELF] - Change consume()->expect() in INSERT AFTER parsing.George Rimar2018-03-122-1/+7
| | | | | | | | AFTER keyword is mandatory and consume() was used by mistake here. We accepted broken script before this patch, testcase shows the issue. llvm-svn: 327260
* [X86][SSE] createVariablePermute - PSHUFB requires SSSE3 not just SSE3Simon Pilgrim2018-03-122-17/+458
| | | | llvm-svn: 327259
* [analyzer] Add scope information to CFGMaxim Ostapenko2018-03-1212-10/+1437
| | | | | | | | | | | This patch adds two new CFG elements CFGScopeBegin and CFGScopeEnd that indicate when a local scope begins and ends respectively. We use first VarDecl declared in a scope to uniquely identify it and add CFGScopeBegin and CFGScopeEnd elements into corresponding basic blocks. Differential Revision: https://reviews.llvm.org/D16403 llvm-svn: 327258
* [lld-link] For suppressible warnings, print the warning number.Nico Weber2018-03-122-3/+3
| | | | | | | The warning can be suppressed by passing the number to /ignore:. https://reviews.llvm.org/D44297 llvm-svn: 327257
* Fix compilation on Darwin with expensive checks.Jonas Devlieghere2018-03-121-5/+10
| | | | | | | | | | | | | | | | | | After r327219 was landed, the bot with expensive checks on GreenDragon started failing. The problem was missing symbols `regex_t` and `regmatch_t` in `xlocale/_regex.h`. The latter was included because after the change in r327219, `random` is needed, which transitively includes `xlocale.h.` which in turn conditionally includes `xlocale/_regex.h` when _REGEX_H_ is defined. Because this is the header guard in `regex_impl.h` and because `regex_impl.h` was included before the other LLVM includes, `xlocale/_regex.h` was included without the necessary types being available. This commit fixes this by moving the include of `regex_impl.h` all the way down. I also added a comment to stress the significance of its position. llvm-svn: 327256
* clang-format: Properly handle implicit string concatenation in text protosDaniel Jasper2018-03-125-5/+24
| | | | | | | | | | | | | Three issues to fix: - char_constants weren't properly treated as string literals - Prevening the break after "label: " does not make sense in concunction with AlwaysBreakBeforeMultilineStrings. It leads to situations where clang-format just cannot find a viable format (it must break and yet it must not break). - AlwaysBreakBeforeMultilineStrings should not be on for LK_TextProto in Google style. llvm-svn: 327255
* [ThinLTO] Recommit of import global variablesEugene Leviant2018-03-128-23/+170
| | | | | | | This wasreverted in r326638 due to link problems and fixed afterwards llvm-svn: 327254
* Don't re-format raw string literal contents when formatting is disableDaniel Jasper2018-03-122-1/+15
| | | | | | | Not entirely sure this is the best place to put this check, but it fixes the immediate issue. llvm-svn: 327253
* Back out "Re-land: Teach CorrelatedValuePropagation to reduce the width of ↵Justin Lebar2018-03-123-250/+0
| | | | | | | | | | | udiv/urem instructions." This reverts r326908, originally landed as D44102. Reverted for causing performance regressions on x86. (These regressions are not yet understood.) llvm-svn: 327252
* [X86] Don't compute known bits twice for the same SDValue in LowerMUL.Craig Topper2018-03-121-4/+8
| | | | | | We called MaskedValueIsZero with two different masks, but underneath that calls computeKnownBits before applying the mask. This means we compute the same known bits twice due to the two calls. Instead just call computeKnownBits directly and apply the two masks ourselves. llvm-svn: 327251
* [CGP] Fix the remove of matched phis in complex addressing modeSerguei Katkov2018-03-122-1/+40
| | | | | | | | | | | | | | | | | | When we replace the Phi we created with matched ones it is possible that there are two identical phi nodes in IR. And matcher is smart enough to find that new created phi matches both of them. So we try to replace our phi node with matched ones twice and what is bad we delete our phi node twice causing a crash. As soon as we found that we have two identical Phi nodes it makes sense to do a clean-up and replace one phi node by other one. The patch implements it. Reviewers: john.brawn, reames Reviewed By: john.brawn Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D43758 llvm-svn: 327250
* [Driver] Update the comment about incompatible sanitizersPetr Hosek2018-03-121-1/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D44371 llvm-svn: 327249
* For most Targets the _GLOBAL_OFFSET_TABLE_ symbol is expected to be atPeter Smith2018-03-1117-42/+85
| | | | | | | | | | | | | | | | | | the start of the .got.plt section so that _GLOBAL_OFFSET_TABLE_[0] = reserved value that is by convention the address of the dynamic section. Previously we had defined _GLOBAL_OFFSET_TABLE_ as either the start or end of the .got section with the intention that the .got.plt section would follow the .got. However this does not always hold with the current default section ordering so _GLOBAL_OFFSET_TABLE_[0] may not be consistent with the reserved first entry of the .got.plt. X86, X86_64, Arm and AArch64 will use the .got.plt. Mips and Power use .got Fixes PR36555 Differential Revision: https://reviews.llvm.org/D44259 llvm-svn: 327248
* [X86][MMX] Support MMX build vectors to avoid SSE usage (PR29222)Simon Pilgrim2018-03-115-1650/+646
| | | | | | | | | | | | 64-bit MMX vector generation usually ends up lowering into SSE instructions before being spilled/reloaded as a MMX type. This patch creates a MMX vector from MMX source values, taking the lowest element from each source and constructing broadcasts/build_vectors with direct calls to the MMX PUNPCKL/PSHUFW intrinsics. We're missing a few consecutive load combines that could be handled in a future patch if that would be useful - my main interest here is just avoiding a lot of the MMX/SSE crossover. Differential Revision: https://reviews.llvm.org/D43618 llvm-svn: 327247
* [X86][AVX512] Added more non-VLX test casesSimon Pilgrim2018-03-112-264/+197
| | | | | | Cleaned up check prefixes so that they actually share a bit more llvm-svn: 327246
* [X86][AVX] createVariablePermute - scale v16i16 variable permutes to use ↵Simon Pilgrim2018-03-112-561/+104
| | | | | | | | v32i8 codegen XOP was already doing this, and now AVX performs v32i8 variable permutes as well. llvm-svn: 327245
* [X86][AVX] createVariablePermute - widen permutes for cases where the source ↵Simon Pilgrim2018-03-113-88/+119
| | | | | | vector is wider than the destination type llvm-svn: 327244
* [InstCombine] add tests for casted sign-bit cmp (PR36682); NFCSanjay Patel2018-03-111-2/+27
| | | | llvm-svn: 327243
* [X86][AVX] createVariablePermute - use PSHUFB+PCMPGT+SELECT for v32i8 ↵Simon Pilgrim2018-03-112-1198/+93
| | | | | | | | variable permutes Same as the VPERMILPS/VPERMILPD approach for v8f32/v4f64 cases, rely on PSHUFB using bits[3:0] for indexing - we can ignore the sign bit (zero element) as those index vector values are considered undefined. The select between the lo/hi permute results based on the index size. llvm-svn: 327242
* Fix for buildbots which didn't like makeArrayRef with initializer lists.Simon Pilgrim2018-03-111-2/+2
| | | | llvm-svn: 327241
* [X86][SSE] Generalized SplitBinaryOpsAndApply to SplitOpsAndApply to support ↵Simon Pilgrim2018-03-111-44/+54
| | | | | | | | any number of ops. I've kept SplitBinaryOpsAndApply as a wrapper to avoid a lot of makeArrayRef code. llvm-svn: 327240
* [X86][AVX] createVariablePermute - use 2xVPERMIL+PCMPGT+SELECT for ↵Simon Pilgrim2018-03-112-251/+158
| | | | | | | | | | v8i32/v8f32 and v4i64/v4f64 variable permutes As VPERMILPS/VPERMILPD only selects elements based on the bits[1:0]/bit[1] then we can permute both the (repeated) lo/hi 128-bit vectors in each case and then select between these results based on whether the index was for for lo/hi. For v4i64/v4f64 this avoids some rather nasty v4i64 multiples on the AVX2 implementation, which seems to be worse than the extra port5 pressure from the additional shuffles/blends. llvm-svn: 327239
* [X86][AVX512] createVariablePermute - Non-VLX targets can widen v4i64/v8f64 ↵Simon Pilgrim2018-03-112-74/+40
| | | | | | | | variable permutes to v8i64/v8f64 Permutes in the upper elements will be undefined, but they will be discarded anyway. llvm-svn: 327238
* fix a typo on the websiteSylvestre Ledru2018-03-111-1/+1
| | | | llvm-svn: 327237
* [x86][SSE] Add widenSubVector helper. NFCI.Simon Pilgrim2018-03-111-9/+17
| | | | | | | | Helper function to insert a subvector into the bottom elements of a larger zero/undef vector with the same scalar type. I've converted a couple of INSERT_SUBVECTOR calls to use it, there are plenty more although in some cases I was worried it might make the code more ambiguous. llvm-svn: 327236
* [MemorySSA] Fix comment + remove redundant dyn_casts; NFCGeorge Burgess IV2018-03-111-18/+12
| | | | | | StartingAccess is already a MemoryUseOrDef. llvm-svn: 327235
* Test commit - change comment slightly.Michael Bedy2018-03-111-2/+2
| | | | llvm-svn: 327234
* Add REQUIRES: arm-registered-target to test using an arm-apple-ios triple.Nico Weber2018-03-111-0/+1
| | | | | | | Else, the test fails in LLVM_TARGETS_TO_BUILD=X86 builds like so: bin/llvm-mc: : error: unable to get target for 'arm64-apple-ios7.0.0' llvm-svn: 327233
* [WebAssembly] Improve logging and comments around relocations. NFC.Sam Clegg2018-03-112-8/+16
| | | | | | Differential Revision: https://reviews.llvm.org/D44350 llvm-svn: 327232
* [TargetSchedule] Minor refactor in computeInstrLatency. NFCAndrea Di Biagio2018-03-111-6/+4
| | | | | | | | The intent of revision r300311 was to add a check for invalid scheduling class descriptors. However, it ended up adding a redundant call in a basic block that should not be reachable. llvm-svn: 327231
* Revert r327199: "Clean up a temp file on the buildbots"George Burgess IV2018-03-101-2/+0
| | | | | | | "I'll revert this tomorrow," I said yesterday. This should've reached all the bots it can by now. llvm-svn: 327230
* [CodeGen] Eagerly emit lifetime.end markers for callsGeorge Burgess IV2018-03-102-6/+129
| | | | | | | | | | | | | | | | | | | | | | In C, we'll wait until the end of the scope to clean up aggregate temporaries used for returns from calls. This means in cases like: { // Assuming that `Bar` is large enough to warrant indirect returns struct Bar b = {}; b = foo(&b); b = foo(&b); b = foo(&b); b = foo(&b); } ...We'll allocate space for 5 Bars on the stack (`b`, and 4 temporaries). This becomes painful in things like large switch statements. If cleaning up sooner is trivial, we should do it. llvm-svn: 327229
OpenPOWER on IntegriCloud