summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Revert r291526: Re-enable /linkrepro test on Windows.Rui Ueyama2017-01-101-1/+1
| | | | | | | | | | | | | | | This broke the following two bots: lld-x86_64-win7: the test failed because a diff command is not available on that bot. That's a configuration error of the bot and will be fixed soon. llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast: "tar xf" failed on that bot. I suspect that it is due to the maximum path limitation on Windows. A build directory contains a buildbot name, so it's longer than usual on that machine. On Windows, many filesystem operations fail if a path is longer than 255 characters. I'll try to address that in another patch. llvm-svn: 291527
* Re-enable /linkrepro test on Windows.Rui Ueyama2017-01-101-1/+1
| | | | | | | I think generated tar files are more compatible with old tar commands because of r291494 and r291340, so I want to enable this test on buildbots. llvm-svn: 291526
* [NFC] Rename RAII ExpressionEvaluationContext variable from Unevaluated to ↵Faisal Vali2017-01-101-1/+1
| | | | | | | | ConstantEvaluated when parsing a constant expression. This renaming makes it consistent with the context it actually sets: Sema::ConstantEvaluated. llvm-svn: 291525
* ELF: Reserve space for copy relocations of read-only symbols in relro.Peter Collingbourne2017-01-109-14/+110
| | | | | | | | | | | | | | When reserving copy relocation space for a shared symbol, scan the DSO's program headers to see if the symbol is in a read-only segment. If so, reserve space for that symbol in a new synthetic section named .bss.rel.ro which will be covered by the relro program header. This fixes the security issue disclosed on the binutils mailing list at: https://sourceware.org/ml/libc-alpha/2016-12/msg00914.html Differential Revision: https://reviews.llvm.org/D28272 llvm-svn: 291524
* ELF: Place relro sections after non-relro sections in r/w segment.Peter Collingbourne2017-01-1085-618/+630
| | | | | | | | | | | | This is in preparation for my next change, which will introduce a relro nobits section. That requires that relro sections appear at the end of the progbits part of the r/w segment so that the relro nobits section can appear contiguously. Because of the amount of churn required in the test suite, I'm making this change separately. llvm-svn: 291523
* Stop limiting the number of TSan backtrace size to 8Kuba Mracek2017-01-101-1/+2
| | | | | | | | We currently limit the length of TSan returned backtraces to 8, which is not necessary (and a bug, most likely). Let's remove this. Differential Revision: https://reviews.llvm.org/D28035 llvm-svn: 291522
* Delete stray isl_map_dump call.Eli Friedman2017-01-101-2/+0
| | | | llvm-svn: 291521
* [CodeGen] Implement the SUnit::print() methodEvandro Menezes2017-01-101-9/+9
| | | | | | | | | | This method seems to have had a troubled life. This patch proposes that it replaces the recently added helper function dumpSUIdentifier. This way, the method can be used in other files using the SUnit class. Differential revision: https://reviews.llvm.org/D28488 llvm-svn: 291520
* Try once again to fix the MSVC build of AlignedCharArrayUnionReid Kleckner2017-01-101-2/+4
| | | | | | | | | | | | It was complaining about ambiguity between llvm::detail and llvm::support::detail: error C2872: 'detail': ambiguous symbol note: could be 'llvm::detail' note: or 'llvm::support::detail' Standardize on llvm::support::detail to hide these symbols further. llvm-svn: 291519
* [ThinLTO] Hash more part of the config to build cache entriesMehdi Amini2017-01-101-2/+34
| | | | | | | This has been fixed in the "new" LTO API used by Gold/LLD, this is fixing the same issue in the libLTO API used by ld64 (amongst other) llvm-svn: 291518
* [Chrono][Darwin] Include header for gettimeofdayBruno Cardoso Lopes2017-01-101-1/+1
| | | | | | | Followup on r291466 and include the proper header. This fixes: https://build.chromium.org/p/chromium.fyi/builders/ClangToTMac/builds/12620/steps/gclient%20runhooks/logs/stdio llvm-svn: 291517
* Add an assert for hasLoopInvariantOperandsXin Tong2017-01-101-0/+3
| | | | | | | | | | | | Summary: Add an assert for hasLoopInvariantOperands Reviewers: danielcdh, sanjoy Subscribers: mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D28501 llvm-svn: 291516
* Revert the attempt to optimize the constexpr functions. MSVC does not handle ↵Reid Kleckner2017-01-101-4/+3
| | | | | | this yet llvm-svn: 291515
* Fix MSVC build of AlignedCharArrayUnionReid Kleckner2017-01-101-10/+8
| | | | | | | | Use constexpr recursion for alignof like we do for sizeof. Seems to work with Clang and MSVC. Also, don't recurse twice to avoid slowdowns in compilers that don't memoize constexpr results (Clang). llvm-svn: 291514
* [coroutines] Sema: Allow co_return all by itself.Gor Nishanov2017-01-103-17/+1
| | | | | | | | | | Reviewers: rsmith, EricWF Subscribers: mehdi_amini, llvm-commits, EricWF Differential Revision: https://reviews.llvm.org/D26038 llvm-svn: 291513
* Check that template template arguments match template template parametersRichard Smith2017-01-095-36/+53
| | | | | | | | | | | | | | | properly even when a non-type template parameter has a dependent type. Previously, if a non-type template parameter was dependent, but not dependent on an outer level of template parameter, we would not match the type of the parameter. Under [temp.arg.template], we are supposed to check that the types are equivalent, which means checking for syntactic equivalence in the dependent case. This also fixes some accepts-invalids when passing templates with auto-typed non-type template parameters as template template arguments. llvm-svn: 291512
* ASAN activate/deactive controls thread_local_quarantine_size_kb option.Alex Shlyapnikov2017-01-092-3/+11
| | | | | | | | | | | | Summary: Also, bypass quarantine altogether when quarantine size is set ot zero. Reviewers: eugenis Subscribers: kubabrecka, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D28480 llvm-svn: 291511
* Bypass quarantine when quarantine size is set ot zero.Alex Shlyapnikov2017-01-091-2/+14
| | | | llvm-svn: 291510
* ASAN activate/deactive controls thread_local_quarantine_size_kb option.Alex Shlyapnikov2017-01-093-14/+19
| | | | llvm-svn: 291509
* [cmake] Obtain LLVM_CMAKE_PATH from llvm-config if availableMichal Gorny2017-01-091-1/+12
| | | | | | | | Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from llvm-config. Fallback to local reconstruction if llvm-config does not support this option. llvm-svn: 291508
* [cmake] Obtain LLVM_CMAKE_PATH from llvm-config if availableMichal Gorny2017-01-091-1/+12
| | | | | | | | Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from llvm-config. Fallback to local reconstruction if llvm-config does not support this option. llvm-svn: 291506
* [cmake] Obtain LLVM_CMAKE_PATH from llvm-config if availableMichal Gorny2017-01-091-1/+12
| | | | | | | | Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from llvm-config. Fallback to local reconstruction if llvm-config does not support this option. llvm-svn: 291505
* [cmake] Obtain LLVM_CMAKE_PATH from llvm-config if availableMichal Gorny2017-01-091-2/+12
| | | | | | | | Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from llvm-config. Fallback to local reconstruction if llvm-config does not support this option. llvm-svn: 291504
* Lift the 10-type limit for AlignedCharArrayUnionSean Callanan2017-01-092-28/+39
| | | | | | | | | | This patch uses C++11 parameter packs and constexpr functions to allow AlignedCharArrayUnion to hold an arbitrary number of types. Differential Revision: https://reviews.llvm.org/D28429 llvm-svn: 291503
* [cmake] Obtain LLVM_CMAKE_PATH from llvm-configMichal Gorny2017-01-091-1/+2
| | | | | | | Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from llvm-config instead of reconstructing it locally. llvm-svn: 291502
* [ELF] Fix `_gp` linker script testMeador Inge2017-01-091-7/+1
| | | | | | | | | | Rafael suggested in review to wrap the `.` in an `ABSOLUTE` op to force the section to be in the *ABS* "section": * http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170109/417865.html llvm-svn: 291501
* [cmake] Obtain LLVM_CMAKE_PATH from llvm-configMichal Gorny2017-01-091-2/+3
| | | | | | | Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from llvm-config instead of reconstructing it locally. llvm-svn: 291500
* Commit a test for match-full-lines.James Y Knight2017-01-092-14/+53
| | | | | | | | | | | I unfortunately neglected to add it in r260540, but it has been sitting in my working dir ever since. D'oh. Modified to work with r290069, which made the CHECK patterns themselves whitespace-sensitive as well, and remove the test added then, as this tests both strict and non-strict modes. llvm-svn: 291499
* [WebAssembly] Add return type annotations in fast isel.Dan Gohman2017-01-091-0/+3
| | | | llvm-svn: 291498
* Adorn __call_once_proxy with `inline` and `_LIBCPP_INLINE_VISIBILITY`Justin Bogner2017-01-091-0/+1
| | | | | | | As per discussion with mclow and EricWF on irc, this is small and simple enough to deserve being inlined. llvm-svn: 291497
* Support non-regular output files.Rui Ueyama2017-01-092-4/+7
| | | | | | | | | This patch enables something like "-o /dev/null". Previouly, it failed because such files cannot be renamed. Differential Revision: https://reviews.llvm.org/D28010 llvm-svn: 291496
* [cmake] Obtain LLVM_CMAKE_PATH from llvm-configMichal Gorny2017-01-091-2/+3
| | | | | | | | | Use the new --cmakedir option to obtain LLVM_CMAKE_PATH straight from llvm-config instead of reconstructing it locally. Differential Revision: https://reviews.llvm.org/D26900 llvm-svn: 291495
* TarWriter: Fix a bug in Ustar header.Rui Ueyama2017-01-093-2/+91
| | | | | | | | | | If we split a filename into `Name` and `Prefix`, `Prefix` is at most 145 bytes. We had a bug that didn't split a path correctly. This bug was pointed out by Rafael in the post commit review. This patch adds a unit test for TarWriter to verify the fix. llvm-svn: 291494
* Add a test for diagnose_if.George Burgess IV2017-01-091-0/+8
| | | | | | Forgot to add this file as a part of r291418. llvm-svn: 291493
* Swap two lines in __mutex_base. On systems with high clock rates, we could ↵Marshall Clow2017-01-091-1/+1
| | | | | | mistakenly return no_timeout when a mutex had timed out if we got a tick between these two lines. Thanks to Brian Cain for the bug report. llvm-svn: 291492
* Fixing test to work when the compiler defaults to a different C++ standard ↵Douglas Yung2017-01-091-3/+26
| | | | | | | | version. Differential Revision: https://reviews.llvm.org/D28418 llvm-svn: 291491
* [NVPTX] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2017-01-098-167/+227
| | | | | | other minor fixes (NFC). llvm-svn: 291490
* MSVC seems to use (void) in __FUNCSIG__ for a zero-parameter function even ↵Richard Smith2017-01-092-5/+10
| | | | | | in C++. Follow suit. llvm-svn: 291489
* [X86][AVX512VL] Added AVX512VL to 128/256 bit vector shift testsSimon Pilgrim2017-01-097-1/+842
| | | | llvm-svn: 291488
* Refactor inline threshold update code.Easwaran Raman2017-01-091-22/+19
| | | | | | | | | | Functional change: Previously, if a callee is cold, we used ColdThreshold if it minimizes the existing threshold. This was irrespective of whether we were optimizing for minsize (-Oz) or not. But -Oz uses very low threshold to begin with and the inlining with -Oz is expected to be tuned for lowering code size, so there is no good reason to set an even lower threshold for cold callees. We now lower the threshold for cold callees only when -Oz is not used. For default values of -inlinethreshold and -inlinecold-threshold, this change has no effect and this simplifies the code. NFC changes: Group all threshold updates that are guarded by !Caller->optForMinSize() and within that group threshold updates that require profile summary info. Differential revision: https://reviews.llvm.org/D28369 llvm-svn: 291487
* [SimplifyLibCalls] pow(x, -0.5) -> 1.0 / sqrt(x).Davide Italiano2017-01-092-1/+28
| | | | | | Differential Revision: https://reviews.llvm.org/D28479 llvm-svn: 291486
* Support outputting to /dev/null.Rafael Espindola2017-01-092-23/+46
| | | | | | | | When writing to a non regular file we cannot rename to it. Since we have to write, we may as well create a temporary file to avoid trying to create an unique file in /dev when trying to write to /dev/null. llvm-svn: 291485
* PR31587: Fix handling of __FUNCSIG__ in C.Richard Smith2017-01-092-8/+27
| | | | | | | | Fix crash if __FUNCSIG__ is used in a function without a prototype, and use "(void)" as parameter list instead of "()" for a function with a no-parameters prototype, matching MSVC's observed behavior. llvm-svn: 291484
* PeepholeOptimizer: Do not replace SubregToReg(bitcast like)Matthias Braun2017-01-092-1/+50
| | | | | | | | | | | While we can usually replace bitcast like instructions (MachineInstr::isBitcast()) with a COPY this is not legal if any of the users uses SUBREG_TO_REG to assert the upper bits of the result are zero. Differential Revision: https://reviews.llvm.org/D28474 llvm-svn: 291483
* Drive by typo fixMatthias Braun2017-01-092-2/+2
| | | | llvm-svn: 291482
* MachineInstr: Print name for subreg index in SUBREG_TO_REGMatthias Braun2017-01-091-1/+2
| | | | | | | | SUBREG_TO_REG takes a subregister index as 3rd operand, print the name instead of a number. We already do the same for INSERT_SUBREG and REG_SEQUENCE. llvm-svn: 291481
* Allow constexpr construction of subobjects unconditionally, not just in C++14.David L. Jones2017-01-093-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Per https://wg21.link/CWG1677, the C++11 standard did not clarify that constant initialization of an object allowed constexpr brace-or-equal initialization of subobjects: struct foo_t { union { int i; volatile int j; } u; }; __attribute__((__require_constant_initialization__)) static const foo_t x = {{0}}; Because foo_t::u has a volatile member, the initializer for x fails. However, there is really no good reason, because this: union foo_u { int i; volatile int j; }; __attribute__((__require_constant_initialization__)) static const foo_u x = {0}; does have a constant initializer. (This was triggered by musl's pthread_mutex_t type when building under C++11.) Reviewers: rsmith Subscribers: EricWF, cfe-commits Differential Revision: https://reviews.llvm.org/D28427 llvm-svn: 291480
* TarWriter: Set "00" to Ustar version field.Rui Ueyama2017-01-091-5/+10
| | | | | | | | Most (maybe all?) tar commands can handle tar archives with blank version fields, but POSIX requires "00" to be set to the field, so doing it is good for compliance. llvm-svn: 291479
* Revert r291092 because it introduces a crash.Michael Kuperstein2017-01-092-170/+0
| | | | | | See PR31589 for details. llvm-svn: 291478
* [Frontend] Correct values of ATOMIC_*_LOCK_FREE to match builtinMichal Gorny2017-01-092-10/+4
| | | | | | | | | | | | | | | | | | | | | | | Correct the logic used to set ATOMIC_*_LOCK_FREE preprocessor macros not to rely on the ABI alignment of types. Instead, just assume all those types are aligned correctly by default since clang uses safe alignment for _Atomic types even if the underlying types are aligned to a lower boundary by default. For example, the 'long long' and 'double' types on x86 are aligned to 32-bit boundary by default. However, '_Atomic long long' and '_Atomic double' are aligned to 64-bit boundary, therefore satisfying the requirements of lock-free atomic operations. This fixes PR #19355 by correcting the value of __GCC_ATOMIC_LLONG_LOCK_FREE on x86, and therefore also fixing the assumption made in libc++ tests. This also fixes PR #30581 by applying a consistent logic between the functions used to implement both interfaces. Differential Revision: https://reviews.llvm.org/D28213 llvm-svn: 291477
OpenPOWER on IntegriCloud