summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Recommit r343498 "[X86] Improve test instruction shrinking when the sign ↵Craig Topper2018-10-013-41/+41
| | | | | | | | | | | | | | | flag is used and the output of the and is truncated." This includes a fix to prevent i16 compares with i32/i64 ands from being shrunk if bit 15 of the and is set and the sign bit is used. Original commit message: Currently we skip looking through truncates if the sign flag is used. But that's overly restrictive. It's safe to look through the truncate as long as we ensure one of the 3 things when we shrink. Either the MSB of the mask at the shrunken size isn't set. If the mask bit is set then either the shrunk size needs to be equal to the compare size or the sign There are still missed opportunities to shrink a load and fold it in here. This will be fixed in a future patch. llvm-svn: 343539
* Sort expected test output after previous commitStephen Kelly2018-10-011-6/+6
| | | | llvm-svn: 343538
* [MinGW] Allow using ASanMartin Storsjo2018-10-014-4/+42
| | | | | | | | | | | | | | | | | | Linking to ASan for MinGW is similar to MSVC, but MinGW always links the MSVCRT dynamically, so there is only one of the MSVC cases to consider. When linking to a shared compiler runtime library on MinGW, the suffix of the import library is .dll.a. The existing case of .dll as suffix for windows in general doesn't seem correct (since this is used for linking). As long as callers never actually set the Shared flag, the default static suffix of .lib also worked fine for import libraries as well. Differential Revision: https://reviews.llvm.org/D52538 llvm-svn: 343537
* [clang-query] Test non-code-completion on single letter shortcutsStephen Kelly2018-10-011-0/+10
| | | | llvm-svn: 343536
* [clang-query] Add missing quit testStephen Kelly2018-10-011-0/+9
| | | | llvm-svn: 343535
* [sanitizer] Small buffer tests for __sanitizer_symbolize_pcVitaly Buka2018-10-011-3/+20
| | | | llvm-svn: 343534
* [clang-query] Add missing 'l' command handlingStephen Kelly2018-10-012-0/+7
| | | | | | | | | | | | The `let` command was added in commit 045c15ba (Add new 'let' command to bind arbitrary values into constants., 2014-04-23). The `let` command and the non-existant `l` command were documented in commit 233092a0 (Add 'let' to the help message., 2015-02-27). Implement the `l` command now for completeness. llvm-svn: 343533
* [clang-query] Sort command optionsStephen Kelly2018-10-011-2/+2
| | | | llvm-svn: 343532
* Revert r343518.Akira Hatanaka2018-10-0130-340/+82
| | | | | | | | | Bots are still failing. http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/24420 http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/12958 llvm-svn: 343531
* Update CMakeLists.txt snippet so that example compilesStephen Kelly2018-10-011-0/+1
| | | | | | | | | | | | | | | | Summary: Previous to this the example didn't work out of the box, it seems some cmake config changed between when this was written and now. Author: Dan Zimmerman <daniel.zimmerman@me.com> Reviewers: modocache, steveire Reviewed By: steveire Subscribers: smeenai, steveire, cfe-commits Differential Revision: https://reviews.llvm.org/D52664 llvm-svn: 343530
* [InstCombine] add inverse test for vector trunc canonical form; NFCSanjay Patel2018-10-011-2/+14
| | | | llvm-svn: 343529
* [clang-tidy] Build it even without static analyzerStephen Kelly2018-10-0119-38/+75
| | | | | | | | | | | | | | | | | | | | | | Conditionally compile the parts of clang-tidy which depend on the static analyzer. Funnily enough, I made the patch to exclude this from the build in 2013, and it was committed with the comment that the tool should not be fully excluded, but only the parts of it which depend on the analyzer should be excluded. http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20130617/081797.html This commit implements that idea. Reviewed By: aaron.ballman Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D52334 llvm-svn: 343528
* [InstCombine] regenerate test checks; NFCSanjay Patel2018-10-012-32/+32
| | | | | | | These files used an old version of the script. We regex more now. llvm-svn: 343527
* [clangd] exclude check-clangd from check-all, fix buildbot failure.Haojian Wu2018-10-011-0/+3
| | | | | | | | check-clangd is included via check-clang-tools, otherwise we will run two instances of check-clangd in parallel when running 'check-all', which may have race condition. llvm-svn: 343526
* [PowerPC] Folding XForm to DForm loads requires alignment for some DForm loads.Stefan Pintilie2018-10-012-0/+24
| | | | | | | | | | | Going from XForm Load to DSForm Load requires that the immediate be 4 byte aligned. If we are not aligned we must leave the load as LDX (XForm). This bug is causing a compile-time failure in the benchmark h264ref. Differential Revision: https://reviews.llvm.org/D51988 llvm-svn: 343525
* Remove a path-length limitation for the xray logfile.Douglas Yung2018-10-011-3/+2
| | | | | | | | | | | | Reviewers: MaskRay Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52728 Patch by Jeremy Morse! llvm-svn: 343524
* Switch syscall(2)/__syscall(2) calls to libc calls on NetBSDKamil Rytarowski2018-10-014-51/+351
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When possible, switch syscall(2)/__syscall(2) calls to direct calls of internal libc symbols. Add a new function to detect address of a libc symbol of a function that could be intercepted. With the address detector in GetRealLibcAddress(), an optional interceptor of libc call will be bypassed. The original approach with syscall(2)/__syscall(2) wasn't portable across supported ABIs and CPU architectures. The indirect syscall interface is also a candidate for removal in future revisions of NetBSD, as the C language ABI is not a good domain for serialization of arbitrary functions arguments. Switch the following functions to libc calls: - internal_mmap() - internal_munmap() - internal_mprotect() - internal_close() - internal_open() - internal_read() - internal_write() - internal_ftruncate() - internal_stat() - internal_lstat() - internal_fstat() - internal_dup2() - internal_readlink() - internal_unlink() - internal_rename() - internal_sched_yield() - internal__exit() - internal_sleep() - internal_execve() - NanoTime() - internal_clock_gettime() - internal_waitpid() - internal_getpid() - internal_getppid() - internal_getdents() - internal_lseek() - internal_sigaltstack() - internal_fork() - internal_sigprocmask() - internal_sysctl() - internal_sigemptyset() - internal_sigfillset() - GetTid() - TgKill() This revision leaves room for refactoring in subsequent commits. Reviewers: vitalybuka, kcc, joerg Reviewed By: vitalybuka Subscribers: mgorny, fedor.sergeev, jfb, loverszhaokai, devnexen, kubamracek, llvm-commits, ro, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D51419 llvm-svn: 343523
* Temporarily revert "[GVNHoist] Re-enable GVNHoist by default"Eric Christopher2018-10-017-30/+26
| | | | | | | | | This reverts commit r342387 as it's showing significant performance regressions in a number of benchmarks. Followed up with the committer and original thread with an example and will get performance numbers before recommitting. llvm-svn: 343522
* [globalisel] Add a combiner helpers for extending loads and use them in a ↵Daniel Sanders2018-10-0114-12/+844
| | | | | | | | | | | | | | pre-legalize combiner for AArch64 Summary: Depends on D45541 Reviewers: ab, aditya_nandakumar, bogner, rtereshin, volkan, rovka, javed.absar, aemerson Subscribers: aemerson, rengolin, mgorny, javed.absar, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D45543 llvm-svn: 343521
* X86, AArch64, ARM: Do not attach debug location to spill/reload instructionsMatthias Braun2018-10-016-31/+56
| | | | | | | | | | | Spill/reload instructions are artificially generated by the compiler and have no relation to the original source code. So the best thing to do is not attach any debug location to them (instead of just taking the next debug location we find on following instructions). Differential Revision: https://reviews.llvm.org/D52125 llvm-svn: 343520
* [X86] Add more test shrinking with truncate and sign bit usage tests. NFCCraig Topper2018-10-011-5/+142
| | | | llvm-svn: 343519
* Distinguish `__block` variables that are captured by escaping blocksAkira Hatanaka2018-10-0130-82/+340
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from those that aren't. This patch changes the way __block variables that aren't captured by escaping blocks are handled: - Since non-escaping blocks on the stack never get copied to the heap (see https://reviews.llvm.org/D49303), Sema shouldn't error out when the type of a non-escaping __block variable doesn't have an accessible copy constructor. - IRGen doesn't have to use the specialized byref structure (see https://clang.llvm.org/docs/Block-ABI-Apple.html#id8) for a non-escaping __block variable anymore. Instead IRGen can emit the variable as a normal variable and copy the reference to the block literal. Byref copy/dispose helpers aren't needed either. This reapplies r341754, which was reverted in r341757 because it broke a couple of bots. r341754 was calling markEscapingByrefs after the call to PopFunctionScopeInfo, which caused the popped function scope to be cleared out when the following code was compiled, for example: $ cat test.m struct A { id data[10]; }; void foo() { __block A v; ^{ (void)v; }; } This commit calls markEscapingByrefs before calling PopFunctionScopeInfo to prevent that from happening. rdar://problem/39352313 Differential Revision: https://reviews.llvm.org/D51564 llvm-svn: 343518
* [clang-format] Update comment, NFCIKrasimir Georgiev2018-10-011-4/+0
| | | | | | | | The initializer of `ParameterCount` was updated from 1 to 0 in r175165, but the comment was never touched: https://github.com/llvm-mirror/clang/commit/9fc56f2636137fcde8acb38865555ed6c7b84dfd llvm-svn: 343517
* Revert r343499 and r343498. X86 test improvementsCraig Topper2018-10-013-59/+50
| | | | | | | | There's a subtle bug in the handling of truncate from i32/i64 to i32 without minsize. I'll be adding more test cases and trying to find a fix. llvm-svn: 343516
* [ELF] [HEXAGON] Add support for PLT_B22_PCREL and HEX_32_PCRELSid Manning2018-10-012-13/+25
| | | | | | | | Update testcase. Differential Revision: https://reviews.llvm.org/D52734 llvm-svn: 343515
* [Hexagon] Remove incorrect pattern for swizKrzysztof Parzyszek2018-10-012-59/+0
| | | | | | | | | | | | The pattern had a couple of problems: - It was checking for loads of bytes in the reverse order to what it should have been looking for. - It would replace loads of bytes with a load of a word without making sure that the alignment was correct. Thanks to Eli Friedman for pointing it out. llvm-svn: 343514
* [clang-format] Fix typo in comment, NFCIKrasimir Georgiev2018-10-011-1/+1
| | | | llvm-svn: 343513
* Unbreak linux cfi buildDavid Carlier2018-10-011-0/+1
| | | | llvm-svn: 343512
* [analyzer][NFC] Refactor functions in PlistDiagnostics to take Preproc as ↵Kristof Umann2018-10-011-71/+72
| | | | | | | | | | parameter This is patch is a preparation for the proposed inclusion of macro expansions in the plist output. Differential Revision: https://reviews.llvm.org/D52735 llvm-svn: 343511
* [Cfi] Compiling cfi library on FreeBSD and NetBSDDavid Carlier2018-10-014-9/+36
| | | | | | | | | | | | Making the library slighty more portable. Reviewers: vitalybuka, krytarowski Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D51682 llvm-svn: 343510
* [AMDGPU] Fixed SIInstrInfo::getOpSize to handle subregsStanislav Mekhanoshin2018-10-011-0/+5
| | | | | | | | | | Currently it returns incorrect operand size for a target independet node such as COPY if operand is a register with subreg. Instead of correct subreg size it returns a size of the whole superreg. Differential Revision: https://reviews.llvm.org/D52736 llvm-svn: 343508
* [PDB] Add support for dumping Typedef records.Zachary Turner2018-10-0113-3/+275
| | | | | | | | | | These work a little differently because they are actually in the globals stream and are treated as symbol records, even though DIA presents them as types. So this also adds the necessary infrastructure to cache records that live somewhere other than the TPI stream as well. llvm-svn: 343507
* [PDB] Add support for parsing VFTable Shape records.Zachary Turner2018-10-0111-9/+132
| | | | | | This allows them to be returned from the native API. llvm-svn: 343506
* MIRParser: Check that instructions only reference DILocation metadataMatthias Braun2018-10-012-0/+17
| | | | llvm-svn: 343505
* Remove redundant null pointer check in operator deleteFangrui Song2018-10-011-5/+3
| | | | | | | | | | | | | | | | | | | | | | | Summary: C89 4.10.3.2 The free function C99 7.20.3.2 The free function C11 7.22.3.3 The free function If ptr is a null pointer, no action shall occur. _aligned_free on MSDN: If memblock is a NULL pointer, this function simply performs no actions. Reviewers: EricWF, mclow.lists, khng300, hotpxl Reviewed By: mclow.lists, khng300, hotpxl Subscribers: lichray, llvm-commits, hotpxl, khng300, christof, ldionne, cfe-commits, libcxx-commits Differential Revision: https://reviews.llvm.org/D52401 llvm-svn: 343503
* Fix tests affected by printing change.Jonas Devlieghere2018-10-012-2/+2
| | | | | | | I forgot to update some tests that were affected by the escaping of backticks in the format string, landed in r343471. llvm-svn: 343502
* [WebAssembly] Fixed AsmParser not allowing instructions with /Wouter van Oortmerssen2018-10-012-10/+35
| | | | | | | | | | | | | | | | | | | Summary: The AsmParser Lexer regards these as a seperate token. Here we expand the instruction name with them if they are adjacent (no whitespace). Tested: the basic-assembly.s test case has one case with a / in it. The currently are also instructions with : in them, which we intend to rename rather than fix them here. Reviewers: tlively, dschuff Subscribers: sbc100, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52442 llvm-svn: 343501
* Fix build with GCC < 5.0 (PR39131)Tatyana Krasnukha2018-10-011-1/+1
| | | | llvm-svn: 343500
* [X86] Enable load folding in the test shrinking codeCraig Topper2018-10-012-17/+29
| | | | | | | | This patch adds load folding support to the test shrinking code. This was noticed missing in the review for D52669 Differential Revision: https://reviews.llvm.org/D52699 llvm-svn: 343499
* [X86] Improve test instruction shrinking when the sign flag is used and the ↵Craig Topper2018-10-013-41/+38
| | | | | | | | | | | | | | output of the and is truncated Currently we skip looking through truncates if the sign flag is used. But that's overly restrictive. It's safe to look through the truncate as long as we ensure one of the 3 things when we shrink. Either the MSB of the mask at the shrunken size isn't set. If the mask bit is set then either the shrunk size needs to be equal to the compare size or the sign flag needs to be unused. There are still missed opportunities to shrink a load and fold it in here. This will be fixed in a future patch. Differential Revision: https://reviews.llvm.org/D52669 llvm-svn: 343498
* [lldb] Start a new line for the next output if there are no symbols in the ↵Aaron Smith2018-10-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | current symtab Summary: If there is no newline the "lldb" prompt could be on the wrong line. To reproduce the missing newline you can do 'image dump smytab' on any binary. Previously Symtab, file = D:\upstream\build\Debug\bin\clang-diff.exe, num_symbols = 0(lldb) Now Symtab, file = D:\upstream\build\Debug\bin\clang-diff.exe, num_symbols = 0 (lldb) Reviewers: zturner, aleksandr.urakov, lldb-commits Subscribers: abidh Differential Revision: https://reviews.llvm.org/D52627 llvm-svn: 343497
* [NFC] Fix `-Wcast-qual` warnings in Darwin `internal_sysctl(...)` ↵Dan Liew2018-10-011-2/+2
| | | | | | | | | | | | | | implementation. Summary: The warnings were introduced in r341187 and r341192. Reviewers: kubamracek, george.karpenkov, krytarowski Subscribers: #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D52717 llvm-svn: 343496
* Add an explanation about cross linking.Rui Ueyama2018-10-011-2/+17
| | | | | | Differential Revision: https://reviews.llvm.org/D52567 llvm-svn: 343495
* [X86][Btver2] Fix BT(C|R|S)mr & BT(C|R|S)mi schedule latency + uop countsSimon Pilgrim2018-10-013-38/+38
| | | | | | Match AMD Fam16h SOG + llvm-exegesis tests llvm-svn: 343494
* DAGCombiner: StoreMerging: Fix bad index calculating when adjusting ↵Matthias Braun2018-10-012-17/+28
| | | | | | | | | | | | | | | | mismatching vector types This fixes a case of bad index calculation when merging mismatching vector types. This changes the existing code to just use the existing extract_{subvector|element} and a bitcast (instead of bitcast first and then newly created extract_xxx) so we don't need to adjust any indices in the first place. rdar://44584718 Differential Revision: https://reviews.llvm.org/D52681 llvm-svn: 343493
* [OPENMP][NVPTX] Handle `requires datasharing` flag correctly withAlexey Bataev2018-10-014-4/+30
| | | | | | | | lightweight runtime. The datasharing flag must be set to `1` when executing SPMD-mode compatible directive with reduction|lastprivate clauses. llvm-svn: 343492
* [x86] add tests for 256- and 512-bit vector types for scalar-to-vector ↵Sanjay Patel2018-10-011-0/+162
| | | | | | transform; NFC llvm-svn: 343491
* [X86] Create schedule classes for BT(C|R|S)mi and BT(C|R|S)mr instructionsSimon Pilgrim2018-10-0111-49/+71
| | | | llvm-svn: 343490
* [AArch64] Refactor cheap cost modelEvandro Menezes2018-10-011-12/+23
| | | | | | | Refactor the order in `TII::isAsCheapAsAMove()` to ease future development and maintenance. Practically NFC. llvm-svn: 343489
* [Basic] Update clang tests (really testing sys::fs) that broke with r343460Sam McCall2018-10-011-51/+25
| | | | llvm-svn: 343488
OpenPOWER on IntegriCloud