summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ARM] Add MemOperand to LDRcp to enable DCE.Eli Friedman2018-11-092-1/+62
| | | | | | | | | | | | LDRcp should be deleted when the dest register is dead in register coalescing. Without MemOp, dead LDRcp will cause dead constant pool value which references to non-existing label. Patch by Yin Ma. Differential Revision: https://reviews.llvm.org/D54173 llvm-svn: 346563
* [JumpThreading] Fix exponential time algorithm computing known values.Eli Friedman2018-11-093-34/+90
| | | | | | | | | | | | | | | | | | | ComputeValueKnownInPredecessors has a "visited" set to prevent infinite loops, since a value can be visited more than once. However, the implementation didn't prevent the algorithm from taking exponential time. Instead of removing elements from the RecursionSet one at a time, we should keep around the whole set until ComputeValueKnownInPredecessors finishes, then discard it. The testcase is synthetic because I was having trouble effectively reducing the original. But it's basically the same idea. Instead of failing, we could theoretically cache the result instead. But I don't think it would help substantially in practice. Differential Revision: https://reviews.llvm.org/D54239 llvm-svn: 346562
* Work with a gdb-remote target that doesn't handle theJason Molenda2018-11-093-2/+77
| | | | | | | | | | | | | | | | | | | | | | | | | qWatchpointSupportInfo packet correctly. In GDBRemoteCommunicationClient::GetWatchpointSupportInfo, if the response to qWatchpointSupportInfo does not include the 'num' field, then we did not get an answer we understood, mark this target as not supporting that packet. In Target.cpp, rename the very confusingly named CheckIfWatchpointsExhausted to CheckIfWatchpointsSupported, and check the error status returned by Process::GetWatchpointSupportInfo. If we cannot determine what the number of supported watchpoints are, assume that they will work. We'll handle the failure later when we try to create/enable the watchpoint if the Z2 packet isn't supported. Add a gdb_remote_client test case. <rdar://problem/42621432> llvm-svn: 346561
* Re-land r343606 "[winasan] Unpoison the stack in NtTerminateThread"Reid Kleckner2018-11-092-1/+12
| | | | | | | | | This change was reverted because it caused some nacl tests in chromium to fail. I attempted to reproduce those problems locally, but I was unable to. Let's reland this and let Chromium's test infrastructure discover any problems. llvm-svn: 346560
* Revert "Exclude wasm target from Windows packaging due to PR39448"Thomas Lively2018-11-091-2/+2
| | | | | | | | | | | | | | Summary: This reverts r346122 now that the failing tests have been disabled. Depends on D54353. Reviewers: aheejin, dschuff Subscribers: fedor.sergeev, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D54354 llvm-svn: 346559
* [WebAssembly] Disable custom NaN payload testsThomas Lively2018-11-091-15/+19
| | | | | | | | | | | | | | | | | Summary: These tests fail on 32-bit builds because NaN payload bits in floating point immediates are not necessarily preserved through compilation. This is because the MC layer uses native doubles to store these values. The tests will be reenabled once this problem has been fixed or deleted if we decide we don't care about lowering payload bits. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D54353 llvm-svn: 346558
* [hwasan] Add entire report to abort message on Android.Evgeniy Stepanov2018-11-096-9/+82
| | | | | | | | | | | | | | Summary: When reporting a fatal error, collect and add the entire report text to android_set_abort_message so that it can be found in the tombstone. Reviewers: kcc, vitalybuka Subscribers: srhines, kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D54284 llvm-svn: 346557
* Revert "Revert rL346454: Fix a use-after-free introduced by r344915."Adrian Prantl2018-11-092-1/+11
| | | | | | This un-reverts commit 346454 with a relaxed CHECK for Windows. llvm-svn: 346556
* [clang-tidy] fix PR39583 - ignoring ParenCast for string-literals in ↵Jonas Toth2018-11-092-4/+9
| | | | | | | | | | | | | | | | | | | pro-bounds-array-to-pointer-decay Summary: The fix to the issue that `const char* p = ("foo")` is diagnosed as decay is to ignored the ParenCast. Resolves PR39583 Reviewers: aaron.ballman, alexfh, hokein Reviewed By: aaron.ballman Subscribers: nemanjai, xazax.hun, kbarton, cfe-commits Differential Revision: https://reviews.llvm.org/D54281 llvm-svn: 346555
* [ASTMatchers] overload ignoringParens for ExprJonas Toth2018-11-094-3/+39
| | | | | | | | | | | | | | | | Summary: This patch allows fixing PR39583. Reviewers: aaron.ballman, sbenza, klimek Reviewed By: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D54307 llvm-svn: 346554
* Remove llvm include from debugserver, change Jason Molenda2018-11-092-5/+3
| | | | | | | | LLVM_FALLTHROUGH's to [[clang::fallthrough]] - debugserver is only ever compiled on darwin systems with clang. llvm-svn: 346553
* [X86] Move the promotion of v16i16->v16i8 for avx512f but not avx512bw from ↵Craig Topper2018-11-0914-146/+156
| | | | | | | | | | lowering to isel. Change to use vpmovzx instead of vpmovsx. With avx512f but not avx512bw we need to extend to v16i32 then truncate that to to v16i8. Previously we emitted both nodes during lowering, but I'm trying to switch to using target independent nodes and with that switched the extend+truncate wou This patch changes the implementation to what will be necessary with that patch which helps minimize test diffs. llvm-svn: 346552
* [OPENMP][NVPTX]Extend number of constructs executed in SPMD mode.Alexey Bataev2018-11-098-57/+88
| | | | | | | | | If the statements between target|teams|distribute directives does not require execution in master thread, like constant expressions, null statements, simple declarations, etc., such construct can be xecuted in SPMD mode. llvm-svn: 346551
* Branch/tag all projects with a single commit in release-tagging script.James Y Knight2018-11-091-15/+31
| | | | | | | | | | | | | | | This change updates the release script to use svnmucc to create all the branches with one commit. This will ensure that the git tag won't bounce around if the git migration runs in-between separate commits creating a branch. Additionally, update the list of projects to include all of the projects in the monorepo, plus test-suite. Differential Revision: https://reviews.llvm.org/D53467 llvm-svn: 346550
* Revert rL346454: Fix a use-after-free introduced by r344915.Simon Pilgrim2018-11-092-11/+1
| | | | | | | | | | | | | | r344915 added a call to ApplyDebugLocation to the sanitizer check function emitter. Some of the sanitizers are emitted in the function epilogue though and the LexicalScopeStack is emptied out before. By detecting this situation and early-exiting from ApplyDebugLocation the fallback location is used, which is equivalent to the return location. rdar://problem/45859802 ........ Causes EXPENSIVE_CHECKS build bot failures: http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win llvm-svn: 346549
* Use the correct address space when bitcasting func pointer to int pointerDylan McKay2018-11-091-1/+5
| | | | | | | | | | | | | | | | | | | | When we cast a function pointer to an int pointer, at some pointer later it gets bitcasted back to a function and called. In backends that have a nonzero program memory address space specified in the data layout, the old code would lose the address space data. When LLVM later attempted to generate the bitcast from i8* to i8(..)* addrspace(1), it would fail because the pointers are not in the same address space. With this patch, the address space of the function will carry on to the address space of the i8* pointer. This is because all function pointers in Harvard architectures need to be assigned to the correct address space. This has no effect to any in-tree backends except AVR. llvm-svn: 346548
* Allow a double-underscore spelling of Clang attributes using double square ↵Aaron Ballman2018-11-093-7/+25
| | | | | | | | | | bracket syntax. This matches a similar behavior with GCC accepting [[gnu::__attr__]] as a alias for [[gnu::attr]] in that clang attributes can now be spelled with two leading and trailing underscores. I had always intended for this to work, but missed the critical bit. We already had an existing test in test/Preprocessor/has_attribute.cpp for [[clang::__fallthrough__]] but using that spelling would still give an "unknown attribute" diagnostic. llvm-svn: 346547
* [AArch64] Support HiSilicon's TSV110 processorBryan Chan2018-11-0914-4/+82
| | | | | | | | | | | | Reviewers: t.p.northover, SjoerdMeijer, kristof.beyls Reviewed By: kristof.beyls Subscribers: olista01, javed.absar, kristof.beyls, kristina, llvm-commits Differential Revision: https://reviews.llvm.org/D53908 llvm-svn: 346546
* [llvm-mca] Account for buffered resources when analyzing "Super" resources.Andrea Di Biagio2018-11-091-1/+28
| | | | | | | | | | | | | | | | | | | | This was noticed when working on PR3946. By construction, a group cannot be used as a "Super" resource. That constraint is enforced by method `SubtargetEmitter::ExpandProcResource()`. A Super resource S can be part of a group G. However, method `SubtargetEmitter::ExpandProcResource()` would not update the number of consumed resource cycles in G based on S. In practice, this is perfectly fine because the resource usage is correctly computed for processor resource units. However, llvm-mca should still check if G is a buffered resource. Before this patch, llvm-mca didn't correctly check if S was part of a group that defines a buffer. So, the instruction descriptor was not correctly set. For now, the semantic change introduced by this patch doesn't affect any of the upstream scheduling models. However, it will allow to make some progress on PR3946. llvm-svn: 346545
* [MS demangler] Use a slightly shorter unmangling for mangled strings.Nico Weber2018-11-093-377/+376
| | | | | | | | | | Before: const wchar_t * {L"%"} Now: L"%" See also PR39593. Differential Revision: https://reviews.llvm.org/D54294 llvm-svn: 346544
* [Hexagon] Fix some -Wunused-function with LLVM_DUMP_METHOD and -Wunused-variableFangrui Song2018-11-092-4/+9
| | | | llvm-svn: 346543
* Fix a nondeterminism in the debug info for VLA size expressions.Adrian Prantl2018-11-094-8/+17
| | | | | | | | | | | The artificial variable describing the array size is supposed to be called "__vla_expr", but this was implemented by retrieving the name of the associated alloca, which isn't a reliable source for the name, since nonassert compilers may drop names from LLVM IR. rdar://problem/45924808 llvm-svn: 346542
* [SystemZ] Add a couple of missing testsUlrich Weigand2018-11-091-10/+55
| | | | | | | | | | | A few fp128 tests were omitted from test/CodeGen/SystemZ/fp-round-01.ll since in early days, LLVM couldn't handle implicitly generated library calls to functions with long double arguments on SystemZ. This deficiency was actually long since fixed, but those tests are still missing. This patch adds the missing tests. NFC. llvm-svn: 346541
* [DWARFv5] Emit normal type units in .debug_info comdats.Paul Robinson2018-11-095-39/+52
| | | | | | Differential Revision: https://reviews.llvm.org/D54282 llvm-svn: 346540
* [X86] Turn X86ISD::VSEXT into X86ISD::VZEXT if the upper bits aren't demanded.Craig Topper2018-11-0922-222/+235
| | | | | | | | This makes X86ISD::VSEXT more similar to ISD::SIGN_EXTEND and ISD::ZERO_EXTEND. I'm hoping to replace X86ISD::VSEXT/VZEXT with target independent nodes. Making the target specific nodes similar to the target independent nodes helps minimize test diffs in that patch. llvm-svn: 346539
* [CostModel][X86] SK_ExtractSubvector is free if the subvector is at the ↵Simon Pilgrim2018-11-0913-697/+751
| | | | | | start of the source vector llvm-svn: 346538
* [Hexagon] Fix unused variable warning in release buildsJordan Rupprecht2018-11-091-0/+1
| | | | llvm-svn: 346537
* [HIP] Remove useless sections in linked filesYaxun Liu2018-11-091-0/+4
| | | | | | | | | | | clang-offload-bundler creates __CLANG_OFFLOAD_BUNDLE__* sections in the bundles, which get into the linked files. These sections are useless after linking. They waste disk space and cause confusion for clang when directly linked with other object files, therefore should be removed. Differential Revision: https://reviews.llvm.org/D54275 llvm-svn: 346536
* [WebAssembly] Hotfix of WebAssemblyInstructionTableSize after rL346465Fangrui Song2018-11-091-0/+2
| | | | llvm-svn: 346535
* [TTI] Flip vector types in getShuffleCost SK_ExtractSubvector callSimon Pilgrim2018-11-091-1/+1
| | | | | | | | For SK_ExtractSubvector, the default 'Ty' type is the source operand type and 'SubTy' is the destination subvector type I got this the wrong way around when I added rL346510 llvm-svn: 346534
* [AMDGPU] Cleanup optimize-if-exec-masking.mir test. NFC.Stanislav Mekhanoshin2018-11-091-272/+42
| | | | llvm-svn: 346533
* [Hexagon] Implement noreturn optimizationBrendon Cahoon2018-11-095-1/+133
| | | | | | | | | | | Eliminate the stack frame in functions with the noreturn nounwind attributes, and when the noreturn-stack-elim target feature is enabled. This reduces the code and stack space needed for noreturn functions. Differential Revision: https://reviews.llvm.org/D54210 llvm-svn: 346532
* Add total function byte size and inline function byte size to ↵Greg Clayton2018-11-092-11/+38
| | | | | | | | "llvm-dwarfdump --statistics" Differential Revision: https://reviews.llvm.org/D54217 llvm-svn: 346531
* [DAGCombiner][X86][Mips] Enable combineShuffleOfScalars to run between ↵Craig Topper2018-11-097-151/+116
| | | | | | | | | | | | vector op legalization and DAG legalization. Fix bad one use check in combineShuffleOfScalars It's possible for vector op legalization to generate a shuffle. If that happens we should give a chance for DAG combine to combine that with a build_vector input. I also fixed a bug in combineShuffleOfScalars that was considering the number of uses on a undef input to a shuffle. We don't care how many times undef is used. Differential Revision: https://reviews.llvm.org/D54283 llvm-svn: 346530
* [llvm-strings] Fix whitespaces to match strings output.Jordan Rupprecht2018-11-096-35/+72
| | | | | | | | | | | | | | | | | Summary: The current implementation prepends a space on every line, making it difficult to compare against GNU strings. The space appears to have come from handling --radix in rL292707. The space is for making sure there's a space between the radix and the value; however the space is still emitted even when there is no radix. This change fixes that so the space is only emitted when there is a radix. Reviewers: jhenderson Reviewed By: jhenderson Subscribers: llvm-commits, compnerd Differential Revision: https://reviews.llvm.org/D54238 llvm-svn: 346529
* [AMDGPU] Always pass TRI into findRegister[Use/Def]OperandIdxStanislav Mekhanoshin2018-11-094-7/+10
| | | | | | | | This only covers AMDGPU BE, hopefully all occurrences. Differential Revision: https://reviews.llvm.org/D54235 llvm-svn: 346528
* Add missing includeAdrian Prantl2018-11-091-0/+1
| | | | llvm-svn: 346527
* Driver: Make -fsanitize=shadow-call-stack compatible with ↵Peter Collingbourne2018-11-092-1/+5
| | | | | | | | -fsanitize-minimal-runtime. Differential Revision: https://reviews.llvm.org/D54330 llvm-svn: 346526
* Add missing includeAdrian Prantl2018-11-091-0/+1
| | | | llvm-svn: 346525
* [clangd] Fix clang-tidy warnings.Kadir Cetinkaya2018-11-091-5/+5
| | | | llvm-svn: 346524
* [Hexagon] Place globals with explicit .sdata section in small dataKrzysztof Parzyszek2018-11-092-5/+16
| | | | | | | | Both -fPIC and -G0 disable placement of globals in small data section, but if a global has an explicit section assigmnent placing it in small data, it should go there anyway. llvm-svn: 346523
* Type safe version of MachinePassRegistrySerge Guelton2018-11-098-85/+81
| | | | | | | | | | | Previous version used type erasure through a `void* (*)()` pointer, which triggered gcc warning and implied a lot of reinterpret_cast. This version should make it harder to hit ourselves in the foot. Differential revision: https://reviews.llvm.org/D54203 llvm-svn: 346522
* Introduce the _Clang scoped attribute token.Aaron Ballman2018-11-098-38/+100
| | | | | | Currently, we only accept clang as the scoped attribute identifier for double square bracket attributes provided by Clang, but this has the potential to conflict with user-defined macros. To help alleviate these concerns, this introduces the _Clang scoped attribute identifier as an alias for clang. It also introduces a warning with a fixit on the off chance someone attempts to use __clang__ as the scoped attribute (which is a predefined compiler identification macro). llvm-svn: 346521
* Use the correct address space when emitting the ctor function listDylan McKay2018-11-091-2/+3
| | | | | | | | | | | | | | | | | This patch modifies clang so that, if compiling for a target that explicitly specifies a nonzero program memory address space, the constructor list global will have the same address space as the functions it contains. AVR is the only in-tree backend which has a nonzero program memory address space. Without this, the IR verifier would always fail if a constructor was used on a Harvard architecture backend. This has no functional change to any in-tree backends except AVR. llvm-svn: 346520
* Annotate switch with LLVM_FALLTHROUGHAdrian Prantl2018-11-092-2/+3
| | | | llvm-svn: 346519
* [docs][statepoints] Reformulate open issues listPhilip Reames2018-11-091-45/+63
| | | | | | Some have been partially resolved, so update that. And restructure to make it easie to find and search. llvm-svn: 346518
* [NativePDB] Fix completion of enum types.Zachary Turner2018-11-092-1/+3
| | | | | | | | | | | | | This was originally submitted in a patch which fixed two unrelated bugs at the same time. This portion of the fix was reverted because it broke several other things. However, the fix employed originally was totally wrong, and attempted to change something in the ValueObject printer when actually the bug was in the NativePDB plugin. We need to mark forward enum decls as having external storage, otherwise we won't be asked to complete them when the time comes. This patch implements the proper fix, and updates tests accordingly. llvm-svn: 346517
* [WebAssembly] Respect `--no-mangle` in more locationsSam Clegg2018-11-095-14/+17
| | | | | | | | | | | | | `--no-demangle` now also applies to the name section. This change was motivated by the rust team that have a slightly different name mangling scheme to the standard C++ itanium one and prefer to do their de-mangling as a post-link setp. Patch by Alex Crichton! Differential Revision: https://reviews.llvm.org/D54279 llvm-svn: 346516
* Fix -Wsign-compare warningFangrui Song2018-11-091-1/+1
| | | | llvm-svn: 346515
* [llvm-cov] Remove "default:" label in the switch covering all enum values.Max Moroz2018-11-091-2/+0
| | | | | | | | | | | | | | | | Summary: Fixing the build breakage: http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/27309 Reviewers: vsk, allevato, Dor1s Reviewed By: Dor1s Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54323 llvm-svn: 346514
OpenPOWER on IntegriCloud