summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Patch to fix pragma metadata for do-while loopsBjorn Pettersson2018-07-102-5/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Make sure that loop metadata only is put on the backedge when expanding a do-while loop. Previously we added the loop metadata also on the branch in the pre-header. That could confuse optimization passes and result in the loop metadata being associated with the wrong loop. Fixes https://bugs.llvm.org/show_bug.cgi?id=38011 Committing on behalf of deepak2427 (Deepak Panickal) Reviewers: #clang, ABataev, hfinkel, aaron.ballman, bjope Reviewed By: bjope Subscribers: bjope, rsmith, shenhan, zzheng, xbolva00, lebedev.ri, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D48721 llvm-svn: 336717
* Revert r336590 "[libclang] evalute compound statement cursors before trying ↵Evgeniy Stepanov2018-07-102-54/+13
| | | | | | | | | to evaluate" New memory leaks in LibclangParseTest_EvaluateChildExpression_Test::TestBody() llvm-svn: 336716
* Revert r336591 "[libclang] NFC, simplify clang_Cursor_Evaluate"Evgeniy Stepanov2018-07-101-24/+25
| | | | | | This change is blocking r336590 which is being reverted due to memory leaks. llvm-svn: 336715
* Limit ASan non-executable-pc test case to x86 botsVlad Tsyrklevich2018-07-101-10/+4
| | | | | | | | The test case fails on the big-endian PPC bot, probably because PowerPC uses function descriptors. More over other architectures don't support NX mappings. (This test case was not being exercised prior to r336633.) llvm-svn: 336714
* [CMake] Set per-runtime library directory suffix in runtimes buildPetr Hosek2018-07-104-22/+7
| | | | | | | | | | | | Do not use LLVM_RUNTIMES_LIBDIR_SUFFIX variable which is an internal variable used by the runtimes build from individual runtimes, instead set per-runtime librarhy directory suffix variable which is necessary for the sanitized runtimes build to install libraries into correct location. Differential Revision: https://reviews.llvm.org/D49121 llvm-svn: 336713
* [X86] Remove AddedComplexity from register form of NOT. NFCICraig Topper2018-07-101-3/+0
| | | | | | | | I believe isProfitableToFold will stop the load folding that this was intended to overcome. Given an (xor load, -1), isProfitableToFold will see that the immediate can be folded with the xor using a one byte immediate since it can be sign extended. It doesn't know about NOT, but the one byte immediate check is enough to stop the fold. llvm-svn: 336712
* [X86] Remove AddedComplexity from MMX_X86movw2d patterns.Craig Topper2018-07-101-9/+6
| | | | | | There were only 3 patterns with this node as a root and they all the same AddedComplexity. So this doesn't really do anything. llvm-svn: 336711
* Fix a typo/regression in r335495.John Baldwin2018-07-102-1/+7
| | | | | | | | | | | Use getTriple.isMIPS64() to detect 64-bit MIPS ABIs in FreeBSD::getSupportedSanitizers() instead of getTriple.isMIPS32(). Reviewed By: atanasyan Differential Revision: https://reviews.llvm.org/D49143 llvm-svn: 336710
* [libc++] Declare noop_coroutine() with _LIBCPP_INLINE_VISIBILITYLouis Dionne2018-07-101-0/+1
| | | | | | | | | | | | | | | | | Summary: It was defined with the right visibility, but declared without any visibility. This function was left out of a prior revision that did the same to several functions in <compare> (r336665) because the compiler I used didn't support coroutines. This reinforces the need for automated checks -- there might still be several cases of this throughout the library. Reviewers: EricWF Subscribers: modocache, christof, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D49145 llvm-svn: 336709
* [CMake] Teach the build system to codesign built productsJustin Bogner2018-07-103-0/+52
| | | | | | | | | | | Automatically codesign all executables and dynamic libraries if a codesigning identity is given (via LLVM_CODESIGNING_IDENTITY). This option is darwin only for now. Also update platforms/iOS.cmake to pick up the right versions of codesign and codesign_allocate. llvm-svn: 336708
* [AMDGPU] Refactor HSAMetadataStream::emitKernel (NFC)Scott Linder2018-07-105-122/+148
| | | | | | | | Move all metadata construction into AMDGPUHSAMetadataStreamer. Differential Revision: https://reviews.llvm.org/D48176 llvm-svn: 336707
* [gcov] Fix fallout from r336693Ulrich Weigand2018-07-101-1/+2
| | | | | | | Fix building GCDAProfiling.c with pre-C99 compilers. This caused a build bot failure. llvm-svn: 336706
* [asan] Disable non-execute test on s390Ulrich Weigand2018-07-101-0/+3
| | | | | | | | Processors before z14 don't support non-execute protection, so they will start execution random memory contents, causing the test to randomly fail or succeed. llvm-svn: 336705
* [ELF][MIPS] Add mote tests on MipsArchTree routines, fix typos in error messagesSimon Atanasyan2018-07-105-69/+268
| | | | | | | | | This fix add more test cases for routines check MIPS ELF header flags and flags from .MIPS.abiflags sections. The tests use yaml2obj for object files generation because not all combinations of flags can be produced by LLVM tools. llvm-svn: 336704
* [GlobalISel][X86_64] Support for G_SITOFPAlexander Ivchenko2018-07-105-0/+643
| | | | | | The instruction selection is automatically handled by tablegen llvm-svn: 336703
* [Evaluator] Examine alias when evaluating function callEugene Leviant2018-07-102-3/+19
| | | | | | This fixes PR38120 llvm-svn: 336702
* [DAGCombiner] Add special case fast paths for udiv x,1 and udiv x,-1Simon Pilgrim2018-07-102-35/+21
| | | | | | udiv x,-1 was going down the (slow) BuildUDIV route resulting in unnecessary shifts. llvm-svn: 336701
* Initialize a variable properly to fix buildbots.Rui Ueyama2018-07-101-1/+1
| | | | llvm-svn: 336700
* Try to fix broken build due to r336663.Dan Liew2018-07-101-9/+9
| | | | | | | | | | It turns out that the `${XRAY_HEADERS}` CMake variable was already in use and was used for public headers. It seems that `lib/xray/tests/CMakeLists.txt` was depending on this. To fix rename the new `${XRAY_HEADERS}` to `${XRAY_IMPL_HEADERS}`. llvm-svn: 336699
* Revert "[AccelTable] Provide abstraction for emitting DWARF5 accelerator ↵Jonas Devlieghere2018-07-102-77/+20
| | | | | | | | | tables." This reverts r336529 because an alternative approach turned out to be a better fit for dsymuil. llvm-svn: 336698
* AMDGPU: Make hidden argument metadata consistent withKonstantin Zhuravlyov2018-07-105-77/+308
| | | | | | | | amdgpu-implicitarg-num-bytes attribute Differential Revision: https://reviews.llvm.org/D49096 llvm-svn: 336697
* [InstCombine] allow flag propagation when using safe constantSanjay Patel2018-07-102-9/+7
| | | | | | | This corresponds with the code for the single binop pattern added in rL336684. llvm-svn: 336696
* Remove s390x XFAILs now that gcov profiling works.Ulrich Weigand2018-07-103-6/+6
| | | | llvm-svn: 336695
* [X86] Add srem/udiv/urem by constant testsSimon Pilgrim2018-07-103-0/+239
| | | | | | Match the tests in combine-sdiv.ll llvm-svn: 336694
* [gcov] Fix gcov profiling on big-endian machinesUlrich Weigand2018-07-101-8/+21
| | | | | | | | | | | | | | | | | | | | | | | Two fixes required to handle big-endian systems: - 64-bit counter values are stored in a mixed-endian format in the gcov files: a 32-bit low-part followed by a 32-bit high part. Note that this is already implemented correctly on the LLVM side, see GCOVBuffer::readInt64. - The tag values (e.g. arcs tag, object summary tag, ...) are aways written as the same sequence of bytes independent of byte order. But when *reading* them back in, the code reads them as 32-bit values in host byte order. For the comparisons to work correctly, this should instead always read them as little-endian values. Fixes PR 38121. Reviewed By: marco-c Differential Revision: https://reviews.llvm.org/D49132 llvm-svn: 336693
* [gcov] Fix ABI when calling llvm_gcov_... routines from instrumentation codeUlrich Weigand2018-07-101-12/+55
| | | | | | | | | | | | | | | | | | | | | | | The llvm_gcov_... routines in compiler-rt are regular C functions that need to be called using the proper C ABI for the target. The current code simply calls them using plain LLVM IR types. Since the type are mostly simple, this happens to just work on certain targets. But other targets still need special handling; in particular, it may be necessary to sign- or zero-extended sub-word values to comply with the ABI. This caused gcov failures on SystemZ in particular. Now the very same problem was already fixed for the llvm_profile_ calls here: https://reviews.llvm.org/D21736 This patch uses the same method to fix the llvm_gcov_ calls, in particular calls to llvm_gcda_start_file, llvm_gcda_emit_function, and llvm_gcda_emit_arcs. Reviewed By: marco-c Differential Revision: https://reviews.llvm.org/D49134 llvm-svn: 336692
* [WebAssembly] Add missing a few {{$}}s to a testHeejin Ahn2018-07-101-5/+5
| | | | llvm-svn: 336691
* Make a struct type declaration private. NFC.Rui Ueyama2018-07-101-7/+6
| | | | llvm-svn: 336690
* AMDGPU/NFC: Fix typo in test nameKonstantin Zhuravlyov2018-07-101-0/+0
| | | | | | | hsa-metadata-enqueu-kernel.ll -> hsa-metadata-enqueue-kernel.ll llvm-svn: 336689
* [MC] Add interface to finish pending labels.Jonas Devlieghere2018-07-103-2/+7
| | | | | | | | | | | When manually finishing the object writer in dsymutil, it's possible that there are pending labels that haven't been resolved. This results in an assertion when the assembler tries to fixup a label that doesn't have an address yet. Differential revision: https://reviews.llvm.org/D49131 llvm-svn: 336688
* Update test to work on WindowsPaul Robinson2018-07-101-1/+1
| | | | llvm-svn: 336687
* Simplify. NFC.Rui Ueyama2018-07-101-1/+1
| | | | llvm-svn: 336686
* Support -fdebug-prefix-map for assembler source (pass to cc1as). ThisPaul Robinson2018-07-104-9/+30
| | | | | | | | | | | is useful to omit the debug compilation dir when compiling assembly files with -g. Part of PR38050. Patch by Siddhartha Bagaria! Differential Revision: https://reviews.llvm.org/D48989 llvm-svn: 336685
* [InstCombine] safely allow non-commutative binop identity constant foldsSanjay Patel2018-07-102-36/+25
| | | | | | | | | | | | | | | | This was originally intended with D48893, but as discussed there, we have to make the folds safe from producing extra poison. This should give the single binop folds the same capabilities as the existing folds for 2-binops+shuffle. LLVM binary opcode review: there are a total of 18 binops. There are 7 commutative binops (add, mul, and, or, xor, fadd, fmul) which we already fold. We're able to fold 6 more opcodes with this patch (shl, lshr, ashr, fdiv, udiv, sdiv). There are no folds for srem/urem/frem AFAIK. We don't bother with sub/fsub with constant operand 1 because those are canonicalized to add/fadd. 7 + 6 + 3 + 2 = 18. llvm-svn: 336684
* Add CachedHashStringRef::data().Rui Ueyama2018-07-101-0/+1
| | | | | | | | | This accessor is useful and could be slightly more efficient than Str.val().data() because you can avoid StringRef instantiation. Differential Revision: https://reviews.llvm.org/D49133 llvm-svn: 336683
* [Hexagon] Change .mir testcase to make sure function is not in SSA formKrzysztof Parzyszek2018-07-101-0/+1
| | | | | | | | | If a machine function satisfies SSA, the IsSSA property is assumed even if the pass to be executed runs after existing from SSA. If the pass output then does not conform to SSA, a verifier error will be flagged (with expensive checks enabled). llvm-svn: 336682
* AMDGPU: Try to fix test againMatt Arsenault2018-07-101-1/+1
| | | | llvm-svn: 336681
* Support -fdebug-prefix-map in llvm-mc. This is useful to omit thePaul Robinson2018-07-107-4/+81
| | | | | | | | | | | debug compilation dir when compiling assembly files with -g. Part of PR38050. Patch by Siddhartha Bagaria! Differential Revision: https://reviews.llvm.org/D48988 llvm-svn: 336680
* [InstCombine] drop poison flags when shuffle mask undef propagates to constantSanjay Patel2018-07-102-4/+8
| | | | llvm-svn: 336679
* Reapply "Make __gcov_flush flush counters for all shared libraries"Marco Castelluccio2018-07-1020-85/+687
| | | | | | | This reapplies r336365, after marking tests as failing on various configurations. llvm-svn: 336678
* [AArch64][SVE] Asm: Support for predicated unary operations.Sander de Smalen2018-07-1016-14/+375
| | | | | | | | | | | | | | | | | | | | | This patch adds support for the following instructions: CLS (Count Leading Sign bits) CLZ (Count Leading Zeros) CNT (Count non-zero bits) CNOT (Logically invert boolean condition in vector) NOT (Bitwise invert vector) FABS (Floating-point absolute value) FNEG (Floating-point negate) All operations are predicated and unary, e.g. clz z0.s, p0/m, z1.s - CLS, CLZ, CNT, CNOT and NOT have variants for 8, 16, 32 and 64 bit elements. - FABS and FNEG have variants for 16, 32 and 64 bit elements. llvm-svn: 336677
* Update test for backend error message changeMatt Arsenault2018-07-101-1/+1
| | | | llvm-svn: 336676
* Reapply "AMDGPU: Force inlining if LDS global address is used"Matt Arsenault2018-07-106-28/+182
| | | | | | This reverts commit r336623 llvm-svn: 336675
* Rename a variable for consistency. NFC.Rui Ueyama2018-07-101-3/+3
| | | | llvm-svn: 336674
* [scudo] Use mkdir -p when creating directories for a testFilipe Cabecinhas2018-07-101-1/+1
| | | | llvm-svn: 336673
* Reduce memory usage when creating .gdb_index. NFC.Rui Ueyama2018-07-102-97/+69
| | | | | | | | | | | | | | .gdb_index sections can be very large. When you are compiling multi-gibibyte executables, they can be larger than 1 GiB. The previous implementation of .gdb_index seems to consume too much memory. This patch reduces memory consumption by eliminating temporary objects. In one experiment, memory consumption of GdbIndexSection class is reduced from 962 MiB to 228 MiB when creating a .gdb_index of 1350 GiB. Differential Revision: https://reviews.llvm.org/D49094 llvm-svn: 336672
* [analyzer] Add option to set maximum symbol complexity thresholdMikhail R. Gadelha2018-07-103-1/+19
| | | | | | | | | | | | | | | | | | | Summary: This adds an option, max-symbol-complexity, so an user can set the maximum symbol complexity threshold. Note that the current behaviour is equivalent to max complexity = 0, when taint analysis is not enabled and tests show that in a number of tests, having complexity = 25 yields the same results as complexity = 10000. This patch was extracted and modified from Dominic Chen's patch, D35450. Reviewers: george.karpenkov, NoQ, ddcc Reviewed By: george.karpenkov Subscribers: xazax.hun, szepet, a.sidorin Differential Revision: https://reviews.llvm.org/D49093 llvm-svn: 336671
* [ELF] - Add a test for readCallGraph() code.George Rimar2018-07-101-2/+4
| | | | | | | This is to test the following untested line: https://github.com/llvm-mirror/lld/blob/master/ELF/Driver.cpp#L643 llvm-svn: 336670
* [LibFuzzer] Disable MSan test on Darwin which was added by r336619. The ↵Dan Liew2018-07-102-0/+9
| | | | | | | | | MemorySanitizer is not supported on Darwin currently and so Clang refuses to compile with `-fsanitize=memory`. llvm-svn: 336669
* [InstCombine] allow more shuffle-binop folds with safe constantsSanjay Patel2018-07-102-24/+27
| | | | | | | | | | | | The case with 2 variables is more complicated than the case where we eliminate the shuffle entirely because a shuffle with an undef mask element creates an undef result. I'm not aware of any current analysis/transform that recognizes that undef propagating to a div/rem/shift, but we have to guard against the possibility. llvm-svn: 336668
OpenPOWER on IntegriCloud