summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [InstSimplify] add nsw/nuw (xor X, signbit), signbit --> XSanjay Patel2017-02-183-8/+16
| | | | | | | | | The change to InstCombine in: https://reviews.llvm.org/D29729 ...exposes this missing fold in InstSimplify, so adding this first to avoid a regression. llvm-svn: 295573
* [InstSimplify] add tests for add nsw/nuw (xor X, signbit), signbit --> X; NFCSanjay Patel2017-02-181-0/+26
| | | | llvm-svn: 295572
* Recommit "[X86] Remove XOP VPCMOV intrinsics and autoupgrade them to native IR."Craig Topper2017-02-187-89/+94
| | | | | | Clang has now been fixed to not use these intrinsics. llvm-svn: 295571
* [X86] Replace XOP vpcmov builtins with native vector logical operations.Craig Topper2017-02-183-6/+10
| | | | llvm-svn: 295570
* [x86] remove stale comments from tests; NFCSanjay Patel2017-02-181-3/+3
| | | | llvm-svn: 295569
* [x86] fold sext (xor Bool, -1) --> sub (zext Bool), 1Sanjay Patel2017-02-182-22/+22
| | | | | | | This is the same transform that is current used for: select Bool, 0, -1 llvm-svn: 295568
* [ScopInfo] Count read-only arrays when computing complexity of alias checkTobias Grosser2017-02-182-1/+227
| | | | | | | | | | | Instead of counting the number of read-only accesses, we now count the number of distinct read-only array references when checking if a run-time alias check may be too complex. The run-time alias check is quadratic in the number of base pointers, not the number of accesses. Before this change we accidentally skipped SPEC's lbm test case. llvm-svn: 295567
* [MemorySSA] NFC small fixesPiotr Padlewski2017-02-181-9/+6
| | | | | | | | | | | | | | Summary: 2 small fixes extracted from https://reviews.llvm.org/D29064 Reviewers: kuhar, davide, dberlin, george.burgess.iv Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30109 llvm-svn: 295566
* Revert "[X86] Remove XOP VPCMOV intrinsics and autoupgrade them to native IR."Craig Topper2017-02-187-94/+89
| | | | | | This reverts r295564. I missed that clang was still using the intrinsics despite our half implemented autoupgrade support. llvm-svn: 295565
* [X86] Remove XOP VPCMOV intrinsics and autoupgrade them to native IR.Craig Topper2017-02-187-89/+94
| | | | | | It seems we were already upgrading 128-bit VPCMOV, but the intrinsic was still defined and being used in isel patterns. While I was here I also simplified the tablegen multiclasses. llvm-svn: 295564
* [X86][IR] Simplify the XOP vpcmov autoupgrade code. NFCCraig Topper2017-02-181-7/+3
| | | | llvm-svn: 295563
* [X86][IR] Merge together some very similar AutoUpgrade handling. NFCCraig Topper2017-02-181-24/+16
| | | | llvm-svn: 295562
* Revert "threading_support: make __thread_sleep_for be alertable"Saleem Abdulrasool2017-02-181-5/+3
| | | | | | | | | This reverts SVN r295329. Although `__libcpp_thread_sleep_for` should be alertable, the implementation causes a large regression in the test suite. Add a FIXME item there for now to get the test suite in a better state before attempting to fix that behaviour. llvm-svn: 295561
* test: silence warnings on clang under clang-clSaleem Abdulrasool2017-02-181-1/+1
| | | | | | | When running under clang-cl mode, we do not define `__GNUC__`, resulting in the test failing. llvm-svn: 295560
* math: add type promoting template definition on MSVCRTSaleem Abdulrasool2017-02-181-0/+20
| | | | | | | | When building with MSVCRT, we need to manually provide the type promoting overloads to allow the correct type deduced invocation for signbit(Int) and fpclassify(int). llvm-svn: 295559
* test: explicitly size enumerationSaleem Abdulrasool2017-02-181-1/+1
| | | | | | | On certain targets, enumerations may be smaller than an `unsigned long`. Use an explicitly sized enumeration. llvm-svn: 295558
* AMDGPU: Fix assembler subtarget predicate for gfx9Matt Arsenault2017-02-183-1/+13
| | | | | | This was accepting GFX9 instructions on VI. llvm-svn: 295557
* AMDGPU: Add gfx900 and gfx901 processorsMatt Arsenault2017-02-182-1/+8
| | | | llvm-svn: 295556
* AMDGPU: Fix disassembly of aperture registersMatt Arsenault2017-02-182-0/+18
| | | | llvm-svn: 295555
* AMDGPU: Merge initial gfx9 supportMatt Arsenault2017-02-1824-60/+578
| | | | llvm-svn: 295554
* [InstCombine] add tests for trunc(insertelement); NFCSanjay Patel2017-02-181-0/+56
| | | | llvm-svn: 295553
* Refactor instruction simplification code in visitors. NFC.Easwaran Raman2017-02-181-88/+67
| | | | | | | | | | | | | | Several visitors check if operands to the instruction are constants, either as it is or after looking up SimplifiedValues, check if the result is a constant and update the SimplifiedValues map. This refactoring splits it into a common function that does the checking of whether the operands are constants and updating of the SimplifiedValues table, and an instruction specific part that is implemented by each instruction visitor as a lambda and passed to the common function. Differential revision: https://reviews.llvm.org/D30104 llvm-svn: 295552
* [DependenceInfo] Pull out statement [NFC]Tobias Grosser2017-02-181-3/+2
| | | | | | This simplifies the code slightly. llvm-svn: 295551
* [Dependences] Compute reduction dependences on schedule tree [NFC]Tobias Grosser2017-02-181-39/+27
| | | | | | | | | | | | | | | | | | | This change gets rid of the need for zero padding, makes the reduction computation code more similar to the normal dependence computation, and also better documents what we do at the moment. Making the dependence computation for reductions a little bit easier to understand will hopefully help us to further reduce code duplication. This reduces the time spent only in the reduction dependence pass from 260ms to 150ms for test/DependenceInfo/reduction_sequence.ll. This is a reduction of over 40% in dependence computation time. This change was inspired by discussions with Michael Kruse, Utpal Bora, Siddharth Bhat, and Johannes Doerfert. It can hopefully lay the base for further cleanups of the reduction code. llvm-svn: 295550
* [test] Add reduction sequence test case [NFC]Tobias Grosser2017-02-181-0/+539
| | | | | | | | | | | | | | | | | This test case is a mini performance test case that shows the time needed for a couple of simple reductions. It takes today about 325ms on my machine to run this test case through 'opt' with scop construction and reduction detection. It can be used as mini-proxy for further tuning of the reduction code. Generally we do not commit performance test cases, but as this is very small and also very fast it seems OK to keep it in the lit test suite. This test case will also help to verify that future changes to the reduction code will not affect the ordering of the reduction sets and will consequently not cause spurious performance changes that only result from reordering of dependences in the reduction set. llvm-svn: 295549
* [analyzer] Revert 295545. There are buildbot failures.Daniel Marjamaki2017-02-182-12/+0
| | | | llvm-svn: 295548
* [InstCombine] update trunc(shuffle) tests to reflect IR reality; NFCSanjay Patel2017-02-181-9/+40
| | | | | | | | We're ok shrinking splats, but not shuffles in general. See https://reviews.llvm.org/D30123 for discussion. llvm-svn: 295547
* opt-viewer: Fix syntax highlightingBrian Cain2017-02-181-9/+18
| | | | | | | | | | | | | | | Syntax highlighting has been done line-at-a-time. Done this way, the lexer resets the context at each line, distorting the formatting. This change will render the whole file at once and feed the highlighted text line-at-a-time to be wrapped by the SourceFileRenderer. Leading/trailing newlines were being ignored by Pygments but since each line was rendered in its own row, it didn't matter. This bug was masked by the line-at-a-time algorithm. So now we need to add "stripnl=False" to the CppLexer to change its behavior to match the expectation. llvm-svn: 295546
* [analyzer] Fix crash in CastToStruct when there is no record definitionDaniel Marjamaki2017-02-182-0/+12
| | | | | | | | This crash was reported in https://bugs.llvm.org//show_bug.cgi?id=31173 Differential Revision: https://reviews.llvm.org/D28297 llvm-svn: 295545
* [clang-tidy] google-readability-casting: Handle user-defined conversionsAlexander Kornienko2017-02-182-52/+119
| | | | llvm-svn: 295544
* [AVX-512] Remove 128/256-bit masked fp max/min intrinsics. Upgrade them to ↵Craig Topper2017-02-185-60/+211
| | | | | | legacy unmasked intrinsics and select instructions. llvm-svn: 295543
* Add default OptLevel value for createSimpleLoopUnrollPass to fix the build ↵Dehao Chen2017-02-181-1/+1
| | | | | | break introduced by r295538. (NFC) llvm-svn: 295542
* Process attributes 'ifunc' and 'alias' when checking for redefinitionSerge Pavlov2017-02-183-2/+17
| | | | | | | | | | These attributes effectively turn a non-defining declaration into a definition, so the case when the declaration already has a body must be diagnosed properly. Differential Revision: https://reviews.llvm.org/D30032 llvm-svn: 295541
* [CMake][libcxxabi] Update the libc++ test module pathPetr Hosek2017-02-181-1/+1
| | | | | | | | | | The libcxx/test/libcxx Python package has been moved into libcxx/utils/libcxx in r294651, but libcxxabi's CMakeLists.txt still looks for the old path. Differential Revision: https://reviews.llvm.org/D30133 llvm-svn: 295540
* AMDGPU/R600: Assert on infinite loop in EmitClauseMarkersJan Vesely2017-02-182-3/+33
| | | | | | Differential Revision: https://reviews.llvm.org/D29792 llvm-svn: 295539
* Increases full-unroll threshold.Dehao Chen2017-02-186-41/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The default threshold for fully unroll is too conservative. This patch doubles the full-unroll threshold This change will affect the following speccpu2006 benchmarks (performance numbers were collected from Intel Sandybridge): Performance: 403 0.11% 433 0.51% 445 0.48% 447 3.50% 453 1.49% 464 0.75% Code size: 403 0.56% 433 0.96% 445 2.16% 447 2.96% 453 0.94% 464 8.02% The compiler time overhead is similar with code size. Reviewers: davidxl, mkuper, mzolotukhin, hfinkel, chandlerc Reviewed By: hfinkel, chandlerc Subscribers: mehdi_amini, zzheng, efriedma, haicheng, hfinkel, llvm-commits Differential Revision: https://reviews.llvm.org/D28368 llvm-svn: 295538
* [IR/Verifier] Don't visit DISubprograms more than needed.Davide Italiano2017-02-182-2/+17
| | | | | | | | | | | | | Before this patch we happened to visit twice, one when scanning MDNodes and the other one while visiting the function. Remove the explicit call to visitDISubprogram there, so we don't emit the same error twice in case the verifier fail and we save some time when running it. Thanks to Justin Bogner for the report and Adrian for the quick review! PR: 31995 llvm-svn: 295537
* [AVR] Move definition of IsIntegratedAssemblerDefaultDylan McKay2017-02-182-1/+1
| | | | llvm-svn: 295536
* [AVR] Set UseIntegratedAssemblerDylan McKay2017-02-181-0/+1
| | | | llvm-svn: 295535
* [XRay][compiler-rt] Allow for defining defaults at compile-timeDean Michael Berris2017-02-181-1/+25
| | | | | | | | | | | | | | | | | | | | | | Summary: Currently, defaulted options cannot be overriden easily. As an example, we always patch the binary pre-main unless the user defines the option at the commandline to inhibit this behaviour. This change allows for building different versions of the XRay archive with different defaults (whether to patch pre-main, or whether to use FDR mode by default, etc.) and giving that choice at link-time. For now we don't create different archives that have different defaults, but those could be added in later revisions. This change just enables the possibility. Reviewers: pelikan, kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30022 llvm-svn: 295534
* Part of adding an improved ODR checker.Richard Trieu2017-02-185-3/+17
| | | | | | | | | Reserve a spot for ODR hash in CXXRecordDecl and in its modules storage. Default the hash value to 0 for all classes. Differential Revision: https://reviews.llvm.org/D21675 llvm-svn: 295533
* [profiling] Make a test more explicit. NFC.Vedant Kumar2017-02-181-7/+15
| | | | | | | | The cxx-structors.cpp test checks that some instrumentation doesn't appear, but it should be more explicit about which instrumentation it actually expects to appear. llvm-svn: 295532
* OptDiag: Allow constructing DiagnosticLocation from DISubprogramsJustin Bogner2017-02-183-3/+11
| | | | | | | | This avoids creating a DILocation just to represent a line number, since creating Metadata is expensive. Creating a DiagnosticLocation directly is much cheaper. llvm-svn: 295531
* Update the location of ModuleCacheTest.cpp fromJason Molenda2017-02-181-10438/+10446
| | | | | | | | | | | | unittest/Utility to unittest/Target so the unit tests can be run from xcode again. The diff is enormous - I think zachary might have put windows line endings or something with his last commit? didn't look too closely but his commit & this commit have every line being different. llvm-svn: 295530
* Remove the is_trivially_copyable check entirely.Zachary Turner2017-02-182-13/+0
| | | | | | | | | This is still breaking builds because some compilers think this type is not trivially copyable even when it should be. Reverting this static_assert until I have time to investigate. llvm-svn: 295529
* [profiling] Tighten test cases which refer to "profn" vars. NFC.Vedant Kumar2017-02-182-7/+7
| | | | | | | | The frontend can't see "__profn" profile name variables after IRGen because llvm throws these away now. Tighten up some test cases which checked for the non-existence of those variables. llvm-svn: 295528
* Reuse a local variable. NFC.Vedant Kumar2017-02-181-5/+3
| | | | llvm-svn: 295527
* Use llvm workaround for missing is_trivially_copyable.Zachary Turner2017-02-182-6/+9
| | | | | | | some versions of GCC don't have this, so LLVM provides a workaround. llvm-svn: 295526
* Don't assume little endian in StreamReader / StreamWriter.Zachary Turner2017-02-1821-187/+144
| | | | | | | In an effort to generalize this so it can be used by more than just PDB code, we shouldn't assume little endian. llvm-svn: 295525
* Cleanup: use range-based for rather than separate calls to begin and end.Richard Smith2017-02-182-15/+12
| | | | llvm-svn: 295524
OpenPOWER on IntegriCloud