summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AARCH64] Enable AARCH64 lit tests on windows dev machinesSimon Pilgrim2016-07-19177-212/+193
| | | | | | | | | | As discussed on PR27654, this patch fixes the triples of a lot of aarch64 tests and enables lit tests on windows This will hopefully help stop cases where windows developers break the aarch64 target Differential Revision: https://reviews.llvm.org/D22191 llvm-svn: 275973
* Fix build with gcc 6.Rafael Espindola2016-07-194-11/+11
| | | | llvm-svn: 275972
* Get rid of VS2015 operator precedence warning. NFCI.Simon Pilgrim2016-07-191-1/+1
| | | | llvm-svn: 275971
* Deprecated (legacy) string literal conversion to 'char *' causes strange ↵Dmitry Polukhin2016-07-193-4/+16
| | | | | | | | | | | | | | overloading resolution It's a patch for PR28050. Seems like overloading resolution wipes out the first standard conversion sequence (before user-defined conversion) in case of deprecated string literal conversion. Differential revision: https://reviews.llvm.org/D21228 Patch by Alexander Makarov llvm-svn: 275970
* GPGPU: Disable invariant load hoisting for GPU code generationTobias Grosser2016-07-191-0/+5
| | | | | | | | This simplifies the upcoming patches to add code generation for ScopStmts. Load hoisting support will later be added in a separate commit. This commit will be implicitly tested by the subsequent GPGPU changes. llvm-svn: 275969
* [mips][ias] R_MIPS_GOT_(PAGE|OFST) do not need symbolsDaniel Sanders2016-07-192-9/+35
| | | | | | | | | | Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: https://reviews.llvm.org/D22458 llvm-svn: 275968
* [mips] Correct label prefixes for N32 and N64.Daniel Sanders2016-07-1935-280/+400
| | | | | | | | | | | | | | | | | Summary: N32 and N64 follow the standard ELF conventions (.L) whereas O32 uses its own ($). This fixes the majority of object differences between -fintegrated-as and -fno-integrated-as. Reviewers: sdardis Subscribers: dsanders, sdardis, llvm-commits Differential Revision: https://reviews.llvm.org/D22412 llvm-svn: 275967
* [mips] Recognise the triple used by Debian stretch for mips64el.Daniel Sanders2016-07-192-2/+6
| | | | | | | | | | | | | Summary: The triple used for this distribution is mips64el-linux-gnuabi64. Reviewers: sdardis Subscribers: sdardis, llvm-commits Differential Revision: https://reviews.llvm.org/D22406 llvm-svn: 275966
* [ELF] Minimal PHDRS parser and section to segment assignment supportEugene Leviant2016-07-195-66/+343
| | | | llvm-svn: 275965
* [InstCombine] Minor cleanup of cast simplification code [NFC]Tobias Grosser2016-07-193-60/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch cleans up parts of InstCombine to raise its compliance with the LLVM coding standards and to increase its readability. The changes and according rationale are summarized in the following: - Rename `ShouldOptimizeCast()` to `shouldOptimizeCast()` since functions should start with a lower case letter. - Move `shouldOptimizeCast()` from InstCombineCasts.cpp to InstCombineAndOrXor.cpp since it's only used there. - Simplify interface of `shouldOptimizeCast()`. - Minor code style adaptions in `shouldOptimizeCast()`. - Remove the documentation on the function definition of `shouldOptimizeCast()` since it just repeats the documentation on its declaration. Also enhance the documentation on its declaration with more information describing its intended use and make it doxygen-compliant. - Change a comment in `foldCastedBitwiseLogic()` from `fold (logic (cast A), (cast B)) -> (cast (logic A, B))` to `fold logic(cast(A), cast(B)) -> cast(logic(A, B))` since the surrounding comments use this format. - Remove comment `Only do this if the casts both really cause code to be generated.` in `foldCastedBitwiseLogic()` since it just repeats parts of the documentation of `shouldOptimizeCast()` and does not help to improve readability. - Simplify the interface of `isEliminableCastPair()`. - Removed the documentation on the function definition of `isEliminableCastPair()` which only contained obvious statements about its implementation. Instead added more general doxygen-compliant documentation to its declaration. - Renamed parameter `DoXform` of `transformZExtIcmp()` to `DoTransform` to make its intention clearer. - Moved documentation of `transformZExtIcmp()` from its definition to its declaration and made it doxygen-compliant. Reviewers: vtjnash, grosser Subscribers: majnemer, llvm-commits Differential Revision: https://reviews.llvm.org/D22449 Contributed-by: Matthias Reisinger llvm-svn: 275964
* Style: drop some unnecessary ';' [NFC]Tobias Grosser2016-07-193-7/+7
| | | | llvm-svn: 275963
* test: Add missing 'REQUIRES' lineTobias Grosser2016-07-191-0/+2
| | | | llvm-svn: 275962
* Reformat comment from 3 to 2 lines. NFC.George Rimar2016-07-191-2/+1
| | | | llvm-svn: 275961
* test: Add missing 'REQUIRES' lineTobias Grosser2016-07-191-0/+2
| | | | llvm-svn: 275960
* Fixed comment. NFC.George Rimar2016-07-191-1/+1
| | | | llvm-svn: 275959
* [clang-rename] add support for overridden functionsKirill Bobyrev2016-07-191-42/+102
| | | | | | | | Reviewers: klimek Differential Revision: https://reviews.llvm.org/D22408 llvm-svn: 275958
* GPGPU: Emit in-kernel synchronization statementsTobias Grosser2016-07-192-0/+54
| | | | | | | We use this opportunity to further classify the different user statements that can arise and add TODOs for the ones not yet implemented. llvm-svn: 275957
* GPGPU: generate control flow within the kernelTobias Grosser2016-07-194-9/+35
| | | | llvm-svn: 275956
* GPGPU: add scop parameters to kernel argumentsTobias Grosser2016-07-192-1/+57
| | | | llvm-svn: 275955
* GPGPU: add host iterators to kernel argumentsTobias Grosser2016-07-192-1/+26
| | | | llvm-svn: 275954
* GPGPU: add intrinsic functions to obtain a kernels thread and block idsTobias Grosser2016-07-193-0/+75
| | | | llvm-svn: 275953
* GPGPU: create kernel function skeletonTobias Grosser2016-07-192-7/+229
| | | | | | | | | Create for each kernel a separate LLVM-IR module containing a single function marked as kernel function and taking one pointer for each array referenced by this kernel. Add debugging output to verify the kernels are generated correctly. llvm-svn: 275952
* [driver][mips] Remove empty folder from test inputsSimon Atanasyan2016-07-190-0/+0
| | | | llvm-svn: 275951
* AVX-512: Fixed BT instruction selection.Elena Demikhovsky2016-07-193-477/+139
| | | | | | | | | | | The following condition expression ( a >> n) & 1 is converted to "bt a, n" instruction. It works on all intel targets. But on AVX-512 it was broken because the expression is modified to (truncate (a >>n) to i1). I added the new sequence (truncate (a >>n) to i1) to the BT pattern. Differential Revision: https://reviews.llvm.org/D22354 llvm-svn: 275950
* [driver][mips] Support MIPS targets in modern Android NDKSimon Atanasyan2016-07-1929-41/+121
| | | | | | Initial patch provided by Duane Sand. llvm-svn: 275949
* [esan|wset] Fix flaky sampling testsDerek Bruening2016-07-198-18/+42
| | | | | | | Adds a new esan public interface routine __esan_get_sample_count() and uses it to ensure that tests of sampling receive the minimum number of samples. llvm-svn: 275948
* [OPENMP] Removed loop statement as its body executes at most once, NFC.Alexey Bataev2016-07-191-10/+4
| | | | | | | Removed not required loop statement, addressing comments from Richard Smith. llvm-svn: 275947
* [esan] Fix sideline thread flaky assertDerek Bruening2016-07-191-1/+8
| | | | | | | | Fixes an esan sideline thread CHECK that failed to account for the sideline thread reaching its code before the internal_clone() return value was assigned in the parent. llvm-svn: 275946
* [OPENMP] Improved processing of 'priority' clause, NFC.Alexey Bataev2016-07-191-3/+1
| | | | | | | Removed some old comments + improved handling of 'priority' clause value during codegen after comments from Richard Smith. llvm-svn: 275945
* Ignore clang-module-cache directories that may be createdJason Molenda2016-07-191-0/+2
| | | | | | in the testsuite directory while it runs. llvm-svn: 275944
* clang-rename: fix referenced variable in vim-scriptSaleem Abdulrasool2016-07-191-1/+1
| | | | llvm-svn: 275943
* [AVX512] Give priority to EVEX encoded PSHUFB over the VEX versions.Craig Topper2016-07-192-8/+18
| | | | llvm-svn: 275942
* [X86] Remove superfluous parameter from a multiclass. All instantiations ↵Craig Topper2016-07-191-9/+8
| | | | | | passed the same value. llvm-svn: 275941
* [MemorySSA] Update to the new shiny walker.George Burgess IV2016-07-194-311/+838
| | | | | | | | | | | | | | | | | | | | | | | | This patch updates MemorySSA's use-optimizing walker to be more accurate and, in some cases, faster. Essentially, this changed our core walking algorithm from a cache-as-you-go DFS to an iteratively expanded DFS, with all of the caching happening at the end. Said expansion happens when we hit a Phi, P; we'll try to do the smallest amount of work possible to see if optimizing above that Phi is legal in the first place. If so, we'll expand the search to see if we can optimize to the next phi, etc. An iteratively expanded DFS lets us potentially quit earlier (because we don't assume that we can optimize above all phis) than our old walker. Additionally, because we don't cache as we go, we can now optimize above loops. As an added bonus, this patch adds a ton of verification (if EXPENSIVE_CHECKS are enabled), so finding bugs is easier. Differential Revision: https://reviews.llvm.org/D21777 llvm-svn: 275940
* [X86] Rename VINSERTzrr to use a capital Z to match other instructions. NFCCraig Topper2016-07-192-4/+4
| | | | llvm-svn: 275939
* Retry: [llvm-profdata] Speed up merging by using a thread poolVedant Kumar2016-07-196-23/+197
| | | | | | | | | | | | | | | | | | | | | Add a "-j" option to llvm-profdata to control the number of threads used. Auto-detect NumThreads when it isn't specified, and avoid spawning threads when they wouldn't be beneficial. I tested this patch using a raw profile produced by clang (147MB). Here is the time taken to merge 4 copies together on my laptop: No thread pool: 112.87s user 5.92s system 97% cpu 2:01.08 total With 2 threads: 134.99s user 26.54s system 164% cpu 1:33.31 total Changes since the initial commit: - When handling odd-length inputs, call ThreadPool::wait() before merging the last profile. Should fix a race/off-by-one (see r275937). Differential Revision: https://reviews.llvm.org/D22438 llvm-svn: 275938
* Revert "[llvm-profdata] Speed up merging by using a thread pool"Vedant Kumar2016-07-196-195/+23
| | | | | | | | | | | This reverts commit r275921. It broke the ppc64be bot: http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/3537 I'm not sure why it broke, but based on the output, it looks like an off-by-one (one profile left un-merged). llvm-svn: 275937
* Recommit the patch "Use uniforms set to populate VecValuesToIgnore".Wei Mi2016-07-196-66/+136
| | | | | | | | | | | | | | | | | | For instructions in uniform set, they will not have vector versions so add them to VecValuesToIgnore. For induction vars, those only used in uniform instructions or consecutive ptrs instructions have already been added to VecValuesToIgnore above. For those induction vars which are only used in uniform instructions or non-consecutive/non-gather scatter ptr instructions, the related phi and update will also be added into VecValuesToIgnore set. The change will make the vector RegUsages estimation less conservative. Differential Revision: https://reviews.llvm.org/D20474 The recommit fixed the testcase global_alias.ll. llvm-svn: 275936
* AMDGPU/SI: Fix SI scheduler refcount issueMatt Arsenault2016-07-191-0/+3
| | | | | | | | | Without this fix, releaseSuccessors when InOrOutBlock is false could release SUs outside the schedule BasicBlock. Patch by Axel Davy llvm-svn: 275935
* AMDGPU: Expand register indexing pseudos in custom inserterMatt Arsenault2016-07-1911-712/+581
| | | | | | | | | | | | | | | | | | | | | | | This is to help moveSILowerControlFlow to before regalloc. There are a couple of tradeoffs with this. The complete CFG is visible to more passes, the loop body avoids an extra copy of m0, vcc isn't required, and immediate offsets can be shrunk into s_movk_i32. The disadvantage is the register allocator doesn't understand that the single lane's vector is dead within the loop body, so an extra register is used to outlive the loop block when expanding the VGPR -> m0 loop. This also now results in worse waitcnt insertion before the loop instead of after for pending operations at the point of the indexing, but that should be fixed by future improvements to cross block waitcnt insertion. v_movreld_b32's operands are now modeled more correctly since vdst is not a true output. This is kind of a hack to treat vdst as a use operand. Extra checking is required in the verifier since I can't seem to get tablegen to emit an implicit operand for a virtual register. llvm-svn: 275934
* [Kaleidoscope][BuildingAJIT] More work on the text for Chapter 3.Lang Hames2016-07-191-33/+46
| | | | | | | | | | | Add an overview of stubs and compile callbacks before the discussion of the source changes. -- This line, and those below, will be ignored-- M docs/tutorial/BuildingAJIT3.rst llvm-svn: 275933
* [LoopReroll] Reroll loops with unordered atomic memory accessesSanjoy Das2016-07-192-7/+138
| | | | | | | | | | Reviewers: hfinkel, jfb, reames Subscribers: mcrosier, mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D22385 llvm-svn: 275932
* Append clang system include path for offloading tool chains.Samuel Antao2016-07-191-1/+19
| | | | | | | | | | | | | | | Summary: This patch adds clang system include path when offloading tool chains, e.g. CUDA, are used in the current compilation. This fixes an issue detected by @rsmith in response to r275645. Reviewers: rsmith, tra Subscribers: rsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D22490 llvm-svn: 275931
* [OpenMP] Remove dead code in conditional of mappable expressions SEMA. Samuel Antao2016-07-181-4/+4
| | | | llvm-svn: 275930
* TableGen: Allow custom register operand decoder methodMatt Arsenault2016-07-182-29/+37
| | | | | | | | | | | | | | | | | | This is for a situation where the encoding for a register may be different depending on the specific operand. For some instructions, we want to apply additional restrictions beyond the encoding's constraints. In AMDGPU some operands are VSrc_32, using the VS_32 pseudo register class which accept VGPRs, SGPRs, or immediates in the encoding. Some specific instructions with the same encoding operand do not want to allow immediates or SGPRs, but the encoding format is different in this case than a regular VGPR_32 operand. This allows specifying the encoding should be treated the same without introducing yet another dummy register class. llvm-svn: 275929
* AMDGPU: Fix test name and broken CHECK-LABELMatt Arsenault2016-07-181-6/+3
| | | | llvm-svn: 275928
* [utils] Generate html reports with the code coverage utility scriptVedant Kumar2016-07-181-19/+31
| | | | | | | | | | | Instead of extracting raw coverage mappings into an artifact directory, actually generate useful html reports for a given list of binaries with symbol demangling turned on. No tests, but this is actively being used to drive the (still nascent) coverage bot. llvm-svn: 275927
* [OpenMP] Fix incorrect diagnostics in map clauseKelvin Li2016-07-185-16/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | Having the following code pattern will result in incorrect diagnostic int main() { int arr[10]; #pragma omp target data map(arr[:]) #pragma omp target map(arr) {} } t.cpp:4:24: error: original storage of expression in data environment is shared but data environment do not fully contain mapped expression storage #pragma omp target map(arr) ^~~ t.cpp:3:29: note: used here #pragma omp target data map(arr[:]) ^~~~~~ 1 error generated. Patch by David S. Differential Revision: https://reviews.llvm.org/D22075 llvm-svn: 275926
* Fix some minor issues found by Coverity.Richard Smith2016-07-183-2/+6
| | | | llvm-svn: 275925
* [Coverage] Remove '..' from filenames *after* getting an absolute pathVedant Kumar2016-07-182-5/+16
| | | | | | | | Failure to do this breaks relative paths which begin with '..'. This issue was caught by the (still nascent) coverage bot. llvm-svn: 275924
OpenPOWER on IntegriCloud