summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Move _PairT declaration out of __hash_combine to avoid warning under C++98Dimitry Andric2017-01-091-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Some parts of the FreeBSD tree are still compiled with C++98, and until rL288554 this has always worked fine. After that, a complaint about the newly introduced local _PairT is produced: /usr/include/c++/v1/memory:3354:27: error: template argument uses local type '_PairT' [-Werror,-Wlocal-type-template-args] typedef __scalar_hash<_PairT> _HashT; ^~~~~~ /usr/include/c++/v1/memory:3284:29: error: template argument uses local type '_PairT' [-Werror,-Wlocal-type-template-args] : public unary_function<_Tp, size_t> ^~~ /usr/include/c++/v1/memory:3356:12: note: in instantiation of template class 'std::__1::__scalar_hash<_PairT, 2>' requested here return _HashT()(__p); ^ As far as I can see, there should be no problem moving the _PairT struct to just before the __hash_combine() function, which fixes this particular warning. Reviewers: mclow.lists, EricWF Subscribers: cfe-commits, emaste Differential Revision: https://reviews.llvm.org/D28472 llvm-svn: 291476
* Added XFAIL for the apple versions of clang as wellMarshall Clow2017-01-096-0/+6
| | | | llvm-svn: 291475
* ELF: Discard .gnu.linkonce.* sections.Peter Collingbourne2017-01-092-0/+17
| | | | | | | | | | | | | | | | The linkonce feature is a sort of proto-comdat. As far as I am aware no compiler produces linkonce sections anymore, but some glibc i386 object files contain definitions of symbol "__x86.get_pc_thunk.bx" in linkonce sections. Drop those sections to avoid duplicate symbol errors. This is glibc PR20543, we should remove this hack once that has been fixed for a while. Fixes PR31215. Differential Revision: https://reviews.llvm.org/D28430 llvm-svn: 291474
* X86-specific path: Implemented the fusing of MUL+ADDSUB to FMADDSUB.Vyacheslav Klochkov2017-01-092-41/+283
| | | | | | Differential Revision: https://reviews.llvm.org/D28087 llvm-svn: 291473
* [InstCombine] add test to show missed fold using llvm.assume; NFCSanjay Patel2017-01-091-0/+13
| | | | llvm-svn: 291472
* Revert "[ObjectYAML] Support for DWARF line tables"Chris Bieneman2017-01-099-1004/+12
| | | | | | | | This reverts commit r291470 due to failing bots: http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/47209/steps/test_llvm/logs/stdio llvm-svn: 291471
* [ObjectYAML] Support for DWARF line tablesChris Bieneman2017-01-099-12/+1004
| | | | | | This patch adds support for the DWARF debug_lines section. The line table state machine opcodes are preserved, so this can be used to test the state machine evaluation directly. llvm-svn: 291470
* [InstCombine] regenerate checks; NFCSanjay Patel2017-01-091-13/+12
| | | | llvm-svn: 291469
* [ValueTracking] regenerate checks; NFCSanjay Patel2017-01-091-7/+15
| | | | llvm-svn: 291468
* Fix function regex in update_tests so it can handle {}'s in function argsDaniel Berlin2017-01-091-1/+1
| | | | llvm-svn: 291467
* [Chrono][Darwin] Make steady_clock use CLOCK_UPTIME_RAWBruno Cardoso Lopes2017-01-091-3/+45
| | | | | | | | | | | | | | Use CLOCK_UPTIME_RAW in case clock_gettime is available on Darwin. On Apple platforms only CLOCK_UPTIME_RAW or mach_absolute_time are able to time functions in the nanosecond range. Thus, they are the only acceptable implementations of steady_clock. Differential Revision: https://reviews.llvm.org/D27429 rdar://problem/29449467 llvm-svn: 291466
* PCH: fix a regression that reports a module is defined in both pch and pcm.Manman Ren2017-01-0912-11/+45
| | | | | | | | | | | | | | | | | In r276159, we started to say that a module X is defined in a pch if we specify -fmodule-name when building the pch. This caused a regression that reports module X is defined in both pch and pcm if we generate the pch with -fmodule-name=X and then in a separate clang invocation, we include the pch and also import X.pcm. This patch adds an option CompilingPCH similar to CompilingModule. When we use -fmodule-name=X while building a pch, modular headers in X will be textually included and the compiler knows that we are not building module X, so we don't put module X in SUBMODULE_DEFINITION of the pch. Differential Revision: http://reviews.llvm.org/D28415 llvm-svn: 291465
* [InstCombine] regenerate checks; NFCSanjay Patel2017-01-091-66/+63
| | | | llvm-svn: 291464
* [InstCombine] remove unnecessary attribute comments from test files; NFCSanjay Patel2017-01-092-21/+0
| | | | llvm-svn: 291463
* [LV] Fix-up external IV users after updating dominator treeMatthew Simpson2017-01-092-7/+65
| | | | | | | | | | | | | This patch delays the fix-up step for external induction variable users until after the dominator tree has been properly updated. This should fix PR30742. The SCEVExpander in InductionDescriptor::transform can generate code in the wrong location if the dominator tree is not up-to-date. We should work towards keeping the dominator tree up-to-date throughout the transformation. Reference: https://llvm.org/bugs/show_bug.cgi?id=30742 Differential Revision: https://reviews.llvm.org/D28168 llvm-svn: 291462
OpenPOWER on IntegriCloud