summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Exempt some compilers from new static variable test.Jonas Devlieghere2018-06-121-8/+34
| | | | | | | | Apparently some compilers generate incomplete debug information which caused the updated test to fail. Therefore I've extracted the new check into a separate test case with the necessary decorators. llvm-svn: 334456
* Fix a buildbot error reported by sanitizer-x86_64-linux-fast:Wei Mi2018-06-111-0/+2
| | | | | | Function::getGUID may complain if its input is an empty StringRef. llvm-svn: 334455
* [Test] Update static variable test.Jonas Devlieghere2018-06-111-4/+23
| | | | | | | | | | Before Pavel's change in r334181, we were printing too many global variables. This patch updates the test suite to ensure we don't regress again in the future. rdar://problem/29180927 llvm-svn: 334454
* Fix a warning issued by clang.Wei Mi2018-06-111-1/+1
| | | | llvm-svn: 334453
* [CMake] Fix dropped dependency in install-llvm-headersJustin Bogner2018-06-111-0/+1
| | | | | | | | | This dependency was accidentally dropped in r319480, causing install-distribution and install-llvm-headers to install an incomplete set of headers (the generated Intrinsics and Attributes would be missing). llvm-svn: 334452
* Simplify; NFCGeorge Burgess IV2018-06-111-1/+1
| | | | | | Not shown in the diff: AQ is a `vector<SUnit *>`, and SU is a `SUnit *` llvm-svn: 334451
* [sanitizer] Add fgets, fputs and puts into sanitizer_commonPeter Wu2018-06-1110-29/+210
| | | | | | | | | | | | | | | Summary: Add fgets, fputs and puts to sanitizer_common. This adds ASAN coverage for these functions, extends MSAN support from fgets to fputs/puts and extends TSAN support from puts to fputs. Fixes: https://github.com/google/sanitizers/issues/952 Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D46545 llvm-svn: 334450
* Fix a warning reported by clang but not by gcc.Wei Mi2018-06-111-1/+1
| | | | llvm-svn: 334449
* - Add "AV" as new default acronym. - Add support for "I" and "A" in ↵Yan Zhang2018-06-112-1/+3
| | | | | | | | | | | | | | | | lowerCamelCase pattern Summary: Now we can support property names like "hasADog" correctly. Reviewers: benhamilton, hokein Reviewed By: benhamilton Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D48039 llvm-svn: 334448
* [SampleFDO] Add a new compact binary format for sample profile.Wei Mi2018-06-1110-86/+418
| | | | | | | | | | | | | | Name table occupies a big chunk of size in current binary format sample profile. In order to reduce its size, the patch changes the sample writer/reader to save/restore MD5Hash of names in the name table. Sample annotation phase will also use MD5Hash of name to query samples accordingly. Experiment shows compact binary format can reduce the size of sample profile by 2/3 compared with binary format generally. Differential Revision: https://reviews.llvm.org/D47955 llvm-svn: 334447
* TableGen: Change some pointer parameters to references since they're never ↵David Blaikie2018-06-112-21/+22
| | | | | | null anyway llvm-svn: 334446
* [CMake] Use libc++ and compiler-rt for bootstrap Fuchsia ClangPetr Hosek2018-06-111-0/+7
| | | | | | | | | | We want to build the second stage compiler with libc++ and compiler-rt, also include builtins and runtimes into extra bootstrap components to ensure these get built. Differential Revision: https://reviews.llvm.org/D47356 llvm-svn: 334445
* AMDGPU/LLD: Handle R_AMDGPU_REL64 relocationKonstantin Zhuravlyov2018-06-112-0/+14
| | | | | | | | Requires r334443 from llvm Differential Revision: https://reviews.llvm.org/D47734 llvm-svn: 334444
* AMDGPU: Add 64-bit relative variant kindKonstantin Zhuravlyov2018-06-114-1/+10
| | | | | | Differential Revision: https://reviews.llvm.org/D47601 llvm-svn: 334443
* Document how lldb uses the DBGSourcePathRemapping Jason Molenda2018-06-112-11/+14
| | | | | | | source path remapping src/dest path pairs with respect to the DBGVersion number in the plist. llvm-svn: 334442
* Add DebugNamesDWARFIndex.cpp.Jason Molenda2018-06-111-0/+6
| | | | llvm-svn: 334441
* DAG: Fix extract_subvector combine for a single elementMatt Arsenault2018-06-112-5/+27
| | | | | | | | | | | | | | | | This would fail before because 1x vectors aren't legal, so instead just use the scalar type. Avoids regressions in a future AMDGPU commit to add v4i16/v4f16 as legal types. Test update is just the one test that this triggers on in tree now. It wasn't checking anything before. The result is completely changed since the selects are eliminated. Not sure if it's considered better or not. llvm-svn: 334440
* Add a new SBTarget::LoadCore() overload which surfaces errors if the load failsLeonard Mosescu2018-06-114-67/+102
| | | | | | | | | | | | | There was no way to find out what's wrong if SBProcess SBTarget::LoadCore(const char *core_file) failed. Additionally, the implementation was unconditionally setting sb_process, so it wasn't even possible to check if the return SBProcess is valid. This change adds a new overload which surfaces the errors and also returns a valid SBProcess only if the core load succeeds: SBProcess SBTarget::LoadCore(const char *core_file, SBError &error); Differential Revision: https://reviews.llvm.org/D48049 llvm-svn: 334439
* [Sanitizers] %tool_options -> %env_tool_opts in allocator_returns_null.ccAlex Shlyapnikov2018-06-111-14/+14
| | | | | | Use proper substitution in the common allocator_returns_null.cc test. llvm-svn: 334438
* [CMake] Allow specifying extra dependencies of bootstrap stagePetr Hosek2018-06-111-0/+4
| | | | | | | | | This allows adding additional bootstrap dependencies to the bootstrap compiler that may be needed by later stages. Differential Revision: https://reviews.llvm.org/D47355 llvm-svn: 334437
* [X86] Push some variable declarations down into the individual switch cases ↵Craig Topper2018-06-111-3/+4
| | | | | | | | that need them. NFC All of the cases are already wrapped in curly braces so declaring a variable there isn't an issue. And the variables aren't assigned or used in the larger scope. llvm-svn: 334436
* [SLP] Add testcases of min/max reduction pattern for AMDGPU.Farhana Aleen2018-06-111-0/+260
| | | | | Author: FarhanaAleen llvm-svn: 334435
* Fix incorrect CHECK-LABELTim Shen2018-06-111-1/+1
| | | | llvm-svn: 334434
* [Sanitizers] Move allocator_returns_null.cc test to common.Alex Shlyapnikov2018-06-113-320/+39
| | | | | | | | | | | | | | | | Summary: Add allocator_returns_null.cc test to sanitizer_common and remove all sanitizer-specific ones except: - HWASan is not covered by sanitizer_common - TSan allocator does not have comprehensive error reporting yet Reviewers: vitalybuka Subscribers: kubamracek, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D47971 llvm-svn: 334433
* [ELF] Fix copy relocation when two symbols share the same Symbol instance.Fangrui Song2018-06-113-4/+31
| | | | | | | | | | In glibc libc.so.6, the multiple versions of sys_errlist share the same Symbol instance. When sys_errlist is copy relocated, we would replace SharedSymbol with Defined in the first iteration of the following loop: for (SharedSymbol *Sym : getSymbolsAt<ELFT>(SS)) Then in the second iteration, we think the symbol (which has been changed to Defined) is still SharedSymbol and screw up (the address ends up in the `Size` field). llvm-svn: 334432
* Mark the test using <experimental/memory_resource> to require c++experimental.Volodymyr Sapsai2018-06-111-0/+1
| | | | | | | | | | | | | | | | | When built against the old libc++ version the test was causing linker error Undefined symbols for architecture x86_64: "std::experimental::fundamentals_v1::pmr::new_delete_resource()", referenced from: void test_evil<WidgetV0, WidgetV0>() in construct_piecewise_pair_evil.pass.cpp.o void test_evil<WidgetV0, WidgetV1>() in construct_piecewise_pair_evil.pass.cpp.o void test_evil<WidgetV0, WidgetV2>() in construct_piecewise_pair_evil.pass.cpp.o void test_evil<WidgetV0, WidgetV3>() in construct_piecewise_pair_evil.pass.cpp.o void test_evil<WidgetV1, WidgetV0>() in construct_piecewise_pair_evil.pass.cpp.o void test_evil<WidgetV1, WidgetV1>() in construct_piecewise_pair_evil.pass.cpp.o void test_evil<WidgetV1, WidgetV2>() in construct_piecewise_pair_evil.pass.cpp.o ... llvm-svn: 334431
* [X86] Reorder some type constraints to force things to be vectors and ↵Craig Topper2018-06-111-4/+4
| | | | | | | | integer/fp before forcing them to be the same size. This may be needed by another patch that I'm working on. It should have no effect on any of the generated outputs. llvm-svn: 334430
* [SCEV] Add transform zext((A * B * ...)<nuw>) --> (zext(A) * zext(B) * ↵Justin Lebar2018-06-112-0/+43
| | | | | | | | | | | | ...)<nuw>. Reviewers: sanjoy Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D48041 llvm-svn: 334429
* [SCEV] Add nuw/nsw to mul ops in StrengthenNoWrapFlags where safe.Justin Lebar2018-06-1115-28/+56
| | | | | | | | | | | | | Summary: Previously we would add them for adds, but not multiplies. Reviewers: sanjoy Subscribers: llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D48038 llvm-svn: 334428
* Fix indentation in ScalarEvolution.cpp.Justin Lebar2018-06-111-26/+26
| | | | | | Whitespace-only change. (clang-formatted the whole block.) llvm-svn: 334427
* [Hexagon] Late predicate producers cannot be used as dot-new sourcesKrzysztof Parzyszek2018-06-112-4/+49
| | | | llvm-svn: 334426
* [SCEV] Canonicalize "A /u C1 /u C2" to "A /u (C1*C2)".Tim Shen2018-06-112-0/+43
| | | | | | | | | | | | Summary: FWIW InstCombine already folds this. Also avoid the case where C1*C2 overflows. Reviewers: sunfish, sanjoy Subscribers: hiraditya, bixia, llvm-commits Differential Revision: https://reviews.llvm.org/D47965 llvm-svn: 334425
* [Sanitizers] Move pvalloc overflow tests to common.Alex Shlyapnikov2018-06-116-99/+61
| | | | | | | | | | | | | | | | | | | Summary: Now all sanitizers with improved allocator error reporting are covered by these common tests. Also, add pvalloc-specific checks to LSan. HWASan is not covered by sanitizer_common, hence its own pvalloc and other allocator tests. Reviewers: vitalybuka Subscribers: srhines, kubamracek, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D47970 llvm-svn: 334424
* [X86][AVX512] Tag AVX5124FMAPS/AVX5124VNNIW with missing scheduler classesSimon Pilgrim2018-06-111-6/+12
| | | | | | | | Necessary for D46276 as even though btver2 doesn't use these instructions, its now flagged as complete so complains if ANY instruction isn't tagged..... UnsupportedFeatures wouldn't help here as these instructions don't appear to have a feature predicate (like a lot of AVX512). llvm-svn: 334423
* [X86] Fix operand order in the shuffle created for blend builtins.Craig Topper2018-06-111-1/+1
| | | | | | This was broken when the builtin was added in r334249. llvm-svn: 334422
* [clang-fuzzer] Modified protobuf and converter to add new signature, remove ↵Matt Morehouse2018-06-112-12/+29
| | | | | | | | | | | | conditionals. Changed the function signature and removed conditionals from loop body. Patch By: emmettneyman Differential Revision: https://reviews.llvm.org/D47964 llvm-svn: 334421
* [AMDGPU] Do not consider indirect acces through phi for wave limiterStanislav Mekhanoshin2018-06-112-6/+26
| | | | | | | | | | | Rational: if there is indirect access that is usually an issue because load is not ready by the use. However, if use is inside a loop and load is outside that is potentially an issue for a first iteration only. Differential Revision: https://reviews.llvm.org/D47740 llvm-svn: 334420
* [mips] Fix spill slot for mips3, n64 abiAleksandar Beserminji2018-06-112-3/+100
| | | | | | | | | | | | | | When program is compiled for mips3 with n64 abi, wrong register class is used for creating an emergency spill slot. This patch fixes the correct register class to be chosen. This patch resolves PR35859. Thanks to John Baldwin for reporting the issue! Differential Revision: https://reviews.llvm.org/D47938 llvm-svn: 334419
* Enable crash recovery tests on Windows, globs work in the lit internal shell nowReid Kleckner2018-06-114-16/+1
| | | | llvm-svn: 334418
* [MS] Use mangled names and comdats for string merging with ASanReid Kleckner2018-06-111-7/+5
| | | | | | | | This should reduce the binary size penalty of ASan on Windows. After r334313, ASan will add red zones to globals in comdats, so we will still find OOB accesses to string literals. llvm-svn: 334417
* [X86] Properly account for the immediate being multiplied by 8 in the ↵Craig Topper2018-06-111-1/+1
| | | | | | | | immediate range checking for BI__builtin_ia32_psrldqi128 and friends. The limit was set to 1023 which only up to 127*8. It needs to be 2047 to allow 255*8. llvm-svn: 334416
* clang-format: [JS] strict prop init annotation.Martin Probst2018-06-112-1/+13
| | | | | | | | | | | | | | | | | | | | | | Summary: TypeScript uses the `!` token for strict property initialization assertions, as in: class X { strictPropAsserted!: string; } Previously, clang-format would wrap between the `!` and the `:` for overly long lines. This patch fixes that by generally preventing the wrap in that location. Reviewers: krasimir Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D48030 llvm-svn: 334415
* [Driver] Add aliases for -Qn/-QyMikhail Maltsev2018-06-112-1/+6
| | | | | | | | | This patch adds aliases for -Qn (-fno-ident) and -Qy (-fident) which look less cryptic than -Qn/-Qy. The aliases are compatible with GCC. Differential Revision: https://reviews.llvm.org/D48021 llvm-svn: 334414
* Drop unnecessary whitespace [NFCI]Tobias Grosser2018-06-111-2/+2
| | | | llvm-svn: 334413
* [ScopBuilder] Slightly improve code structure [NFCI]Tobias Grosser2018-06-111-1/+2
| | | | | | | | First build the surrounding loops and then build up the polyhedral structures. Before r326664 we had to mix these updates, clean this up to improve readability (slightly). llvm-svn: 334412
* Fix tuple getter in std unique pointer pretty-printerPavel Labath2018-06-113-0/+18
| | | | | | | | | | | | | Summary: Check case when _M_t child member is not present. Reviewers: labath, tberghammer Reviewed By: labath, tberghammer Differential Revision: https://reviews.llvm.org/D47932 Patch by Aleksandr Urakov <aleksandr.urakov@jetbrains.com>. llvm-svn: 334411
* [scudo] Improve the scalability of the shared TSD modelKostya Kortchinsky2018-06-116-51/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The shared TSD model in its current form doesn't scale. Here is an example of rpc2-benchmark (with default parameters, which is threading heavy) on a 72-core machines (defaulting to a `CompactSizeClassMap` and no Quarantine): - with tcmalloc: 337K reqs/sec, peak RSS of 338MB; - with scudo (exclusive): 321K reqs/sec, peak RSS of 637MB; - with scudo (shared): 241K reqs/sec, peak RSS of 324MB. This isn't great, since the exclusive model uses a lot of memory, while the shared model doesn't even come close to be competitive. This is mostly due to the fact that we are consistently scanning the TSD pool starting at index 0 for an available TSD, which can result in a lot of failed lock attempts, and touching some memory that needs not be touched. This CL attempts to make things better in most situations: - first, use a thread local variable on Linux (intead of pthread APIs) to store the current TSD in the shared model; - move the locking boolean out of the TSD: this allows the compiler to use a register and potentially optimize out a branch instead of reading it from the TSD everytime (we also save a tiny bit of memory per TSD); - 64-bit atomic operations on 32-bit ARM platforms happen to be expensive: so store the `Precedence` in a `uptr` instead of a `u64`. We lose some nanoseconds of precision and we'll wrap around at some point, but the benefit is worth it; - change a `CHECK` to a `DCHECK`: this should never happen, but if something is ever terribly wrong, we'll crash on a near null AV if the TSD happens to be null; - based on an idea by dvyukov@, we are implementing a bound random scan for an available TSD. This requires computing the coprimes for the number of TSDs, and attempting to lock up to 4 TSDs in an random order before falling back to the current one. This is obviously slightly more expansive when we have just 2 TSDs (barely noticeable) but is otherwise beneficial. The `Precedence` still basically corresponds to the moment of the first contention on a TSD. To seed on random choice, we use the precedence of the current TSD since it is very likely to be non-zero (since we are in the slow path after a failed `tryLock`) With those modifications, the benchmark yields to: - with scudo (shared): 330K reqs/sec, peak RSS of 327MB. So the shared model for this specific situation not only becomes competitive but outperforms the exclusive model. I experimented with some values greater than 4 for the number of TSDs to attempt to lock and it yielded a decrease in QPS. Just sticking with the current TSD is also a tad slower. Numbers on platforms with less cores (eg: Android) remain similar. Reviewers: alekseyshl, dvyukov, javed.absar Reviewed By: alekseyshl, dvyukov Subscribers: srhines, kristof.beyls, delcypher, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D47289 llvm-svn: 334410
* [AVR] Set trackLivenessAfterRegAllocDylan McKay2018-06-112-0/+341
| | | | | | | | | | | | | | | | | This sets trackLivenessAfterRegAlloc on AVRRegisterInfo. Most existing targets set this flag. Without it, specific IR inputs cause LLVM to fail with: Assertion failed: (getParent()->getProperties().hasProperty( MachineFunctionProperties::Property::TracksLiveness) && "Liveness information is accurate"), function livein_begin file MachineBasicBlock.cpp, line 1354. With this commit, this no longer happens. Patch by Peter Nimmervoll. llvm-svn: 334409
* clang-format: Introduce BreakInheritanceList optionFrancois Ferrand2018-06-116-43/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This option replaces the BreakBeforeInheritanceComma option with an enum, thus introducing a mode where the colon stays on the same line as constructor declaration: // When it fits on line: class A : public B, public C { ... }; // When it does not fit: class A : public B, public C { ... }; This matches the behavior of the `BreakConstructorInitializers` option, introduced in https://reviews.llvm.org/D32479. Reviewers: djasper, klimek Reviewed By: djasper Subscribers: mzeren-vmw, cfe-commits Differential Revision: https://reviews.llvm.org/D43015 llvm-svn: 334408
* [X86] Fix skylake server scheduling info.Clement Courbet2018-06-1136-1644/+2077
| | | | | | | | | | | | | | Summary: This fixes most of the scheduling info for SKX vector operations. I had to split a lot of the YMM/ZMM classes into separate classes for YMM and ZMM. The before/after llvm-exegesis analysis are in the phabricator diff. Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D47721 llvm-svn: 334407
OpenPOWER on IntegriCloud