summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Wdocumentation fixSimon Pilgrim2017-01-121-1/+1
| | | | llvm-svn: 291761
* Fix windows buildbots building llvm-xraySimon Pilgrim2017-01-122-8/+13
| | | | | | | | | | 2 issues: 1 - replaced unix-style pid_t with cross-platform llvm::sys::ProcessInfo::ProcessId 2 - fixed shadow variable warning in lambda expression Reviewed by @filcab llvm-svn: 291760
* Add format_provider for the Error classPavel Labath2017-01-123-0/+31
| | | | | | | | | | | | | | | Summary: The formatter supports the same options as the string-like classes, i.e. the ability to truncate the displayed string. I don't anticipate it would be much used, but it seems consistent. Reviewers: zturner, clayborg Subscribers: mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D28519 llvm-svn: 291759
* [ELF] - Reuse Decompressor class.George Rimar2017-01-125-66/+17
| | | | | | | | | | | Intention of change is to get rid of code duplication. Decompressor was introduced in D28105. Change allows to get rid of few methods relative to decompression. Differential revision: https://reviews.llvm.org/D28106 llvm-svn: 291758
* Avoid multiple -Wunreachable-code diagnostics that are triggered byAlex Lorenz2017-01-123-5/+80
| | | | | | | | | | | the same source range and use the unary operator fixit only when it actually silences the warning. rdar://24570531 Differential Revision: https://reviews.llvm.org/D28231 llvm-svn: 291757
* Fix build for clang r291753Pavel Labath2017-01-121-2/+1
| | | | llvm-svn: 291756
* [analyzer] Avoid a crash in DereferenceChecker on string literal initializers.Artem Dergachev2017-01-122-0/+13
| | | | | | | | | | | | A hotfix for pr31592 that fixes the crash but not the root cause of the problem. We need to update the analyzer engine further to account for AST changes introduced in r289618. At the moment we're erroneously performing a redundant lvalue-to-rvalue cast in this scenario, and squashing the rvalue of the object bound to the reference into the reference itself. rdar://problem/28832541 llvm-svn: 291754
* PR31469: Don't add friend template class decls to redecl chain in dependent ↵Vassil Vassilev2017-01-1211-12/+61
| | | | | | | | | | | | | | | | | contexts. Fixes a crash in modules where the template class decl becomes the most recent decl in the redeclaration chain and forcing the template instantiator try to instantiate the friend declaration, rather than the template definition. In practice, A::list<int> produces a TemplateSpecializationType A::__1::list<int, allocator<type-parameter-0-0> >' failing to replace to subsitute the default argument to allocator<int>. Kudos Richard Smith (D28399). llvm-svn: 291753
* [ELF] - Make x86 unknown relocations messages to be consistent with x64 onesGeorge Rimar2017-01-122-3/+3
| | | | | | | Addded quotes to be consistent with x64 messages, where quotes were used for nicer reporting 'Unknown' relocations initially. llvm-svn: 291752
* [ELF] - Explicitly list supported relocations for x64 target.George Rimar2017-01-122-4/+12
| | | | | | | | | The same we did for x86 earlier: list supported relocations explicitly and error out on unknown. Differential revision: https://reviews.llvm.org/D28564 llvm-svn: 291751
* [XRay] Include <numeric> for std::accumulate.Dean Michael Berris2017-01-121-0/+1
| | | | | | Fix-up following D24377. llvm-svn: 291750
* [XRay] Implement the `llvm-xray account` subcommandDean Michael Berris2017-01-129-0/+860
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is the third of a multi-part change to implement subcommands for the `llvm-xray` tool. Here we define the `account` subcommand which does simple function call accounting, generating basic statistics on function calls we find in an XRay log/trace. We support text output and csv output for this subcommand. This change also supports sorting, summing, and filtering the top N results. Part of this tool will later be turned into a library that could be used for basic function call accounting. Depends on D24376. Reviewers: dblaikie, echristo Subscribers: mehdi_amini, dberris, beanz, llvm-commits Differential Revision: https://reviews.llvm.org/D24377 llvm-svn: 291749
* AMDGPU: Fix sub_oneuse being marked commutativeMatt Arsenault2017-01-121-1/+2
| | | | llvm-svn: 291748
* [AVX-512] Improve lowering of zero_extend of v4i1 to v4i32 and v2i1 to v2i64 ↵Craig Topper2017-01-122-157/+46
| | | | | | with VLX, but no DQ or BW support. llvm-svn: 291747
* [AVX-512] Improve lowering of sign_extend of v4i1 to v4i32 and v2i1 to v2i64 ↵Craig Topper2017-01-122-154/+73
| | | | | | when avx512vl is available, but not avx512dq. llvm-svn: 291746
* [X86][AVX512] Fix PR31515 - Do not flip vselect condition if it's not a vXi1 ↵Elad Cohen2017-01-122-5/+27
| | | | | | | | | | | | | | | mask r289653 added a case where `vselect <cond> <vector1> <all-zeros>` is transformed to: `vselect xor(cond, DAG.getConstant(1, DL, CondVT) <all-zeros> <vector1>` This was not aimed to catch cases where Cond is not a vXi1 mask but it does. Moreover, when Cond type is VxiN (N > 1) then xor(cond, DAG.getConstant(1, DL, CondVT) != NOT(cond). This patch changes the above to xor with allones, and avoids entering the case for non-mask Conds. llvm-svn: 291745
* [AVX-512] Add more varied avx512 feature command lines to the avx512-cvt.ll ↵Craig Topper2017-01-121-590/+954
| | | | | | | | test to show some poor codegen examples. We're definitely doing bad things when avx512vl is enabled without avx512dq. It looks like avx512vl/dq without avx512bw may also have some issues. llvm-svn: 291744
* [libc++] Pair _aligned_malloc with _aligned_freeShoaib Meenai2017-01-121-0/+4
| | | | | | | | | | | | | | | | | | Attempting to pair an `_aligned_malloc` with a regular free causes heap corruption. Pairing with `_aligned_free` is required instead. Makes the following libc++ tests pass on Windows: ``` std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp ``` Differential Revision: https://reviews.llvm.org/D28512 llvm-svn: 291743
* disable use of __builtin_memcmp temporarily to get the tests passing againMarshall Clow2017-01-121-3/+24
| | | | llvm-svn: 291742
* Implement P0426: Constexpr for std::char_traitsMarshall Clow2017-01-1217-52/+386
| | | | llvm-svn: 291741
* Make a test actually test what it set out to test.Chandler Carruth2017-01-121-11/+50
| | | | | | | | | | | | | | This test seems to have largely been relying on asserts being tripped. It had a very specific and somewhat uninteresting grep of the output, but it never really did anything to cause SCEV to be preserved across loop simplify, certainly not explicitly. And a later addition to it actually added CHECK lines despite the test never running FileCheck. Now we actually print SCEV before and after loop simplify to make sure it is *changing* and being *updated*. Which seems to be much more likely the point of the test. llvm-svn: 291740
* PDB: Merge type info.Rui Ueyama2017-01-125-363/+632
| | | | | | | | | | | | | | | | | | | This patch is to merge type info in multiple .debug$T sections. One mystery that needs to be solved is that it is not clear how the MSVC linker uses TPI and IPI streams. Both streams contain type info, and it is not obvious what kind of record should go which. dumppdb command in microsoft-pdb repository prints out IPI stream contents as "IDs" and TPI stream as "TYPES", but looks like the tool don't really care about which stream type recrods were read from. For now, in this patch, I emit all type records to TPI stream. It might just work with other tools. If not, we need to investigate it more. llvm-svn: 291739
* Update to match clang r291737.Richard Smith2017-01-121-3/+2
| | | | llvm-svn: 291738
* Remove redundant passing around of a "ContainsAutoType" flag.Richard Smith2017-01-1212-86/+65
| | | | | | | | | | | | This flag serves no purpose other than to prevent us walking through a type to check whether it contains an 'auto' specifier; this duplication of information is error-prone, does not appear to provide any performance benefit, and will become less practical once we support C++1z deduced class template types and eventually constrained types from the Concepts TS. No functionality change intended. llvm-svn: 291737
* Revert "[sancov] moving sancov rt to sancov/ directory"Mike Aizatsky2017-01-1223-56/+16
| | | | | | | | This reverts commit https://reviews.llvm.org/rL291734 Reason: mac breakage http://lab.llvm.org:8080/green//job/clang-stage1-configure-RA_build/28798/consoleFull#1657087648e9a0fee5-ebcc-4238-a641-c5aa112c323e llvm-svn: 291736
* [sancov] there are windows tests that check linker symbolsMike Aizatsky2017-01-121-2/+0
| | | | llvm-svn: 291735
* [sancov] moving sancov rt to sancov/ directoryMike Aizatsky2017-01-1223-14/+58
| | | | | | | | Subscribers: kubabrecka, mgorny Differential Revision: https://reviews.llvm.org/D28541 llvm-svn: 291734
* AMDGPU: Fold fneg into fma or fmadMatt Arsenault2017-01-122-0/+332
| | | | | | Patch mostly by Fiona Glaser llvm-svn: 291733
* AMDGPU: Fold fneg into fmulMatt Arsenault2017-01-124-12/+206
| | | | | | Patch mostly by Fiona Glaser llvm-svn: 291732
* AMDGPU: Fold fneg into faddMatt Arsenault2017-01-123-0/+240
| | | | | | Patch mostly by Fiona Glaser llvm-svn: 291731
* Revert "[CMake][compiler-rt] Mark libcxx build for tsan as standalone"Petr Hosek2017-01-121-1/+0
| | | | | | This reverts commit 08dbefb847bb765b387c67dc2dc2ef90a4927312. llvm-svn: 291730
* AMDGPU: Pull fneg/fabs out of a selectMatt Arsenault2017-01-113-2/+803
| | | | | | Allows better source modifier usage. llvm-svn: 291729
* Revert "[CMake][libcxx] Move Python check to main CMake file"Petr Hosek2017-01-112-9/+7
| | | | | | This reverts commit 39441fe9f00a58ffc2fdff92a4b0e8a280a5f444. llvm-svn: 291728
* Revert "[CMake][libcxx] Do not rely on the existence of c++abi or unwind ↵Petr Hosek2017-01-112-6/+4
| | | | | | | | targets" This reverts commit 94fc5a96f58071703d81d14690094dcd266a5e17. llvm-svn: 291727
* Revert "[CMake][libcxx] Check that we have libcxxabi before using it"Petr Hosek2017-01-111-2/+1
| | | | | | This reverts commit 8c91834411b322ab360eb1f193f489327e719652. llvm-svn: 291726
* [NewGVN] Fixup store count for the `initial` congruency class.Davide Italiano2017-01-111-3/+6
| | | | | | | | | | | | It was always zero. When we move a store from `initial` to its own congruency class, we end up with a negative store count, which is obviously wrong. Also, while here, change StoreCount to be signed so that the assertions actually fire. Ack'ed by Daniel Berlin. llvm-svn: 291725
* [CodeView] Finish decoupling TypeDatabase from TypeDumper.Zachary Turner2017-01-1112-613/+706
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the type dumper itself was passed around to a lot of different places and manipulated in ways that were more appropriate on the type database. For example, the entire TypeDumper was passed into the symbol dumper, when all the symbol dumper wanted to do was lookup the name of a TypeIndex so it could print it. That's what the TypeDatabase is for -- mapping type indices to names. Another example is how if the user runs llvm-pdbdump with the option to dump symbols but not types, we still have to visit all types so that we can print minimal information about the type of a symbol, but just without dumping full symbol records. The way we did this before is by hacking it up so that we run everything through the type dumper with a null printer, so that the output goes to /dev/null. But really, we don't need to dump anything, all we want to do is build the type database. Since TypeDatabaseVisitor now exists independently of TypeDumper, we can do this. We just build a custom visitor callback pipeline that includes a database visitor but not a dumper. All the hackery around printers etc goes away. After this patch, we could probably even delete the entire CVTypeDumper class since really all it is at this point is a thin wrapper that hides the details of how to build a useful visitation pipeline. It's not a priority though, so CVTypeDumper remains for now. After this patch we will be able to easily plug in a different style of type dumper by only implementing the proper visitation methods to dump one-line output and then sticking it on the pipeline. Differential Revision: https://reviews.llvm.org/D28524 llvm-svn: 291724
* [CMake][libcxx] Check that we have libcxxabi before using itPetr Hosek2017-01-111-1/+2
| | | | | | | | | When doing standalone build, check that we actually have libcxxabi before attempting to use it. Differential Revision: https://reviews.llvm.org/D28580 llvm-svn: 291723
* [CMake][compiler-rt] Mark libcxx build for tsan as standalonePetr Hosek2017-01-111-0/+1
| | | | | | | | This is to ensure that the libcxx build is properly configured. Differential Revision: https://reviews.llvm.org/D28579 llvm-svn: 291722
* X86: Remove dead code. NFC.Peter Collingbourne2017-01-111-10/+0
| | | | llvm-svn: 291721
* AMDGPU: Fix shrinking of addc/subb.Matt Arsenault2017-01-112-7/+317
| | | | | | To shrink to VOP2 the input carry must also be VCC. llvm-svn: 291720
* Add -Wl,-color-diagnostics if a linker supports the option.Rui Ueyama2017-01-112-0/+16
| | | | | | Differential Revision: https://reviews.llvm.org/D28046 llvm-svn: 291719
* Update tests to more precise analysis results in LLVM coreTobias Grosser2017-01-111-2/+2
| | | | | | | LLVM's range analysis became a little tighter, which means Polly can derive tighter bounds as well. llvm-svn: 291718
* AMDGPU: Fix sext_inreg for i1 in i16Matt Arsenault2017-01-112-0/+138
| | | | | | | | This produces worse code when i16 is legal, mostly due to combines getting confused by conversions inserted for uniform 16-bit operations. llvm-svn: 291717
* AMDGPU: Fix breaking VOP3 v_add_i32sMatt Arsenault2017-01-112-1/+316
| | | | | | | This was shrinking the instruction even though the carry output register was a virtual register, not known VCC. llvm-svn: 291716
* [asan] Set alignment of __asan_global_* globals to sizeof(GlobalStruct)Kuba Mracek2017-01-112-7/+4
| | | | | | | | When using profiling and ASan together (-fprofile-instr-generate -fcoverage-mapping -fsanitize=address), at least on Darwin, the section of globals that ASan emits (__asan_globals) is misaligned and starts at an odd offset. This really doesn't have anything to do with profiling, but it triggers the issue because profiling emits a string section, which can have arbitrary size. This patch changes the alignment to sizeof(GlobalStruct). Differential Revision: https://reviews.llvm.org/D28573 llvm-svn: 291715
* Repoison the entire ASan chunk if it is not in active use.Alex Shlyapnikov2017-01-112-11/+38
| | | | | | | | | | | | | | | | | | Summary: Repoisoning just the minimal redzones might leave an unpoisoned gap of the size of the actual redzone minus minimal redzone size. After ASan activation the actual redzone might be bigger than the minimal size and ASan allocator assumes that the chunk returned by the common allocator is either entirely poisoned or entirely not poisoned (it's too expensive to check the entire chunk or always poison one). Reviewers: eugenis Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D28577 llvm-svn: 291714
* Use EXPECT_EQ instead of ASSERT_EQ in a unit test.Rui Ueyama2017-01-111-10/+10
| | | | llvm-svn: 291713
* Revert "[NewGVN] Strengthen a couple of assertions."Davide Italiano2017-01-111-2/+2
| | | | | | It's breaking some bots. Will investigate and recommit. llvm-svn: 291712
* AMDGPU: Fix folding immediates into mac src2Matt Arsenault2017-01-112-2/+96
| | | | | | | Whether it is legal or not needs to check for the instruction it will be replaced with. llvm-svn: 291711
OpenPOWER on IntegriCloud