summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [LegalizeVectorOps] Add FSHL/FSHR to the list of vector operations that ↵Craig Topper2019-01-061-0/+2
| | | | | | | | should be handled. The FSHL/FSHR nodes are handled in the expand function, but they need to also be listed in the code that queries for the operation action too. llvm-svn: 350490
* [libcxx] Support building hermetic static libraryPetr Hosek2019-01-063-33/+72
| | | | | | | | | | | | This is useful when static libc++ library is being linked into shared libraries that may be used in combination with libraries. We want to avoid we exporting libc++ symbols in those cases where this option is useful. This is provided as a CMake option and can be enabled by libc++ vendors as needed. Differential Revision: https://reviews.llvm.org/D55404 llvm-svn: 350489
* [compiler-rt][Fuchsia] Replace _zx_vmar_allocate_old callPetr Hosek2019-01-061-4/+4
| | | | | | | | | This is the deprecated legacy interface, replace it with the current _zx_vmar_allocate one. Differential Revision: https://reviews.llvm.org/D56360 llvm-svn: 350488
* Have MSVC Visualizer for DeducedTemplateSpecializationType show both the ↵Mike Spertus2019-01-061-13/+24
| | | | | | | | | | | | | | | | | | original template and deduced specialization Now appears in the Autos window something like - MyType DeducedTemplateSpecializationType {struct Y<int>} |- Template template<typename T> struct Y; |- Deduced As struct Y<int> |- isDeduced true bool |- TypeClass DeducedTemplateSpecialization (36) |- Flags No TypeBits set beyond TypeClass |- Canonical RecordType {struct Y<int>} Also changed QualType visualization to auto-expand the BaseType llvm-svn: 350487
* [CMake][Fuchsia] Enable build ID, relaxations for first stagePetr Hosek2019-01-061-0/+3
| | | | | | | | We want these to be used for the second stage compiler as well. Differential Revision: https://reviews.llvm.org/D56359 llvm-svn: 350486
* Fix PR39749 - Headers containing just #error harm __has_include.Eric Fiselier2019-01-0624-19/+411
| | | | | | | | | | | This patch changes <experimental/foo> to use #warning instead of is harmful to common feature detection idioms. We should also consider only emitting the warning when __DEPRECATED is defined, like we do in the <ext/foo> headers. Users may want to specify "-Werror=-W#warnings" while still ignoring the libc++ warnings. llvm-svn: 350485
* Revert "[CMake][Fuchsia] Enable experimental new pass manager by default"Petr Hosek2019-01-051-1/+0
| | | | | | This reverts commit r350461 as it causes many of the Clang tests to fail. llvm-svn: 350484
* [X86][AsmParser] Don't allow X86::DX in CheckBaseRegAndIndexRegAndScale.Craig Topper2019-01-051-2/+1
| | | | | | This was here because out and in instructions allow '(%dx)' even though its not a memory reference. To handle this we build a special operand for the DX register reference before we get to the call to CheckBaseRegAndIndexRegAndScale. So we no longer need this special case. llvm-svn: 350483
* Fix MSVC Visualization for TemplateTypeParmType and TemplateTypeParmDeclMike Spertus2019-01-051-7/+10
| | | | llvm-svn: 350482
* [X86] Use two pmovmskbs in combineBitcastvxi1 for (i64 (bitcast (v64i1 ↵Craig Topper2019-01-053-170/+59
| | | | | | (truncate (v64i8)))) on KNL. llvm-svn: 350481
* [X86] Allow combinevxi1Bitcast to use pmovmskb on avx512 targets if the ↵Craig Topper2019-01-059-200/+61
| | | | | | | | input is a truncate from v16i8/v32i8. This is especially helpful on targets without avx512bw since we don't have a good way to convert from v16i8/v32i8 to v16i1/v32i1 for the truncate anyway. If we're just going to convert it to a GPR we might as well use pmovmskb to accomplish both. llvm-svn: 350480
* Fix symbols.enable-external-lookup description wordingJan Kratochvil2019-01-051-4/+4
| | | | | | | | | D55859 changed "external tools or libraries" to "external sources" according to Pavel Labath. Now it is changed sort of back to "external tools and repositories" according to Adrian Prantl. https://reviews.llvm.org/D55859#1345881 llvm-svn: 350479
* Fix flaky symlink access time test.Eric Fiselier2019-01-051-5/+7
| | | | | | | | | | | | | | | last_write_time(sym, new_time) changes the modification time of the file referenced by the symlink. But reading through the symlink may change the symlinks's access time. This meant the previous test that checked that the symlinks access time was unchanged was incorrect and made the test flaky. This patch removes this test (there really is no non-flaky way to test that the new access time coorisponds to the time at which the symlink was last dereferenced). This should unflake the test. llvm-svn: 350478
* Revert "D56064: More tolerance for flaky tests in libc++ on NetBSD"Kamil Rytarowski2019-01-051-7/+0
| | | | | | Requested by EricWF. llvm-svn: 350477
* CodeGen: fix autolink emission on ELFSaleem Abdulrasool2019-01-052-7/+17
| | | | | | | | | The autolinking extension for ELF uses a slightly different format for encoding the autolink information compared to COFF and MachO. Account for this in the CGM to ensure that we do not assert when emitting assembly or an object file. llvm-svn: 350476
* Added single use check to ShrinkDemandedConstantStanislav Mekhanoshin2019-01-052-0/+23
| | | | | | | | | Fixes cvt_f32_ubyte combine. performCvtF32UByteNCombine() could shrink source node to demanded bits only even if there are other uses. Differential Revision: https://reviews.llvm.org/D56289 llvm-svn: 350475
* [X86] Regenerate test to merge 32-bit and 64-bit check lines. NFCCraig Topper2019-01-051-17/+5
| | | | llvm-svn: 350474
* [X86] Allow LowerTRUNCATE to use PACKUS/PACKSS for v16i16->v16i8 truncate ↵Craig Topper2019-01-053-10/+6
| | | | | | when -mprefer-vector-width-256 is in effect and BWI is not available. llvm-svn: 350473
* CodeGen: switch iteration to range based for loop (NFC)Saleem Abdulrasool2019-01-051-6/+4
| | | | | | | Change a loop to range based instead while working on cleaning up some modules autolinking issues on Linux. NFC. llvm-svn: 350472
* [InstCombine] Improve cttz/ctlz + icmp tests; NFCNikita Popov2019-01-051-83/+134
| | | | | | | | Change part of the tests to use vectors (I'm using scalar for ugt and vector for ult), add multiuse variations, rename %lz to %tz for the cttz tests. llvm-svn: 350471
* Improve MSVC type visualizationsMike Spertus2019-01-051-7/+47
| | | | | | | | Display TypeBits in a single line. Fix bit rot in template visualizations Rudimentary support for deduced types llvm-svn: 350470
* Enhance MSVC visualization of PointerUnionsMike Spertus2019-01-051-5/+27
| | | | | | | | Add a "deref" view that displays the pointed to objects since other visualizers often need to display data reference by internal PointerUnions llvm-svn: 350469
* [InstCombine] Add cttz/ctlz + icmp ugt/ult tests; NFCNikita Popov2019-01-051-0/+174
| | | | llvm-svn: 350468
* [python] Make the collections import future-proofSerge Guelton2019-01-051-2/+9
| | | | | | | | | | | | | | | On Python 3.7 the old code raises a warning: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working class ArgumentsIterator(collections.Sequence): On Python 3.8 it wouldn't work anymore. Commited on behalf of Jakub Stasiak. Differential Revision: https://reviews.llvm.org/D56341 llvm-svn: 350467
* [Documentation] fix order of checks in checks/list.rstJonas Toth2019-01-051-3/+3
| | | | llvm-svn: 350466
* [docs] Add a known limitation to the comment about lld supporting GCC/MinGW ↵Martin Storsjo2019-01-051-1/+4
| | | | | | | | object files. NFC. Differential Revision: https://reviews.llvm.org/D56335 llvm-svn: 350465
* [MinGW] Expand comment for MinGW driver. NFC.Martin Storsjo2019-01-051-3/+21
| | | | | | | | Originally authored by Rui Ueyama. Differential Revision: https://reviews.llvm.org/D53031 llvm-svn: 350464
* [InstCombine] Relax cttz/ctlz with select on zeroNikita Popov2019-01-052-12/+19
| | | | | | | | | | | | | | The cttz/ctlz intrinsics have a parameter specifying whether the result is undefined for zero. cttz(x, false) can be relaxed to cttz(x, true) if x is known non-zero, and in fact such an optimization is already performed. However, this currently doesn't work if x is non-zero as a result of a select rather than an explicit branch. This patch adds handling for this case, thus allowing x != 0 ? cttz(x, false) : y to simplify to x != 0 ? cttz(x, true) : y. Differential Revision: https://reviews.llvm.org/D55786 llvm-svn: 350463
* [InstCombine] Add vector tests for select + ctlz/cttz; NFCNikita Popov2019-01-051-0/+50
| | | | llvm-svn: 350462
* [CMake][Fuchsia] Enable experimental new pass manager by defaultPetr Hosek2019-01-051-0/+1
| | | | | | | | This change enableds experimental new pass manager. Differential Revision: https://reviews.llvm.org/D56350 llvm-svn: 350461
* [CMake][Fuchsia] Enable x86 relaxation by defaultPetr Hosek2019-01-051-0/+1
| | | | | | | | | | | This enables x86 relaxation by default. This depends on a linker new enough to support the new reloc types but since we default to lld we don't worry about host system linkers that might be too old to support the new reloc types. Differential Revision: https://reviews.llvm.org/D56349 llvm-svn: 350460
* [CMake][Fuchsia] Enable --build-id linker flag by defaultPetr Hosek2019-01-051-0/+2
| | | | | | | | This enables passing --build-id to linker by default. Differential Revision: https://reviews.llvm.org/D56348 llvm-svn: 350459
* [gn build] Merge r350423Nico Weber2019-01-051-0/+1
| | | | llvm-svn: 350458
* [gn build] Add build files for unittests under llvm/unittests/ExecutionEngineNico Weber2019-01-054-5/+81
| | | | | | Differential Revision: https://reviews.llvm.org/D56328 llvm-svn: 350457
* [Inliner] Optimize shouldBeDeferredEaswaran Raman2019-01-051-5/+16
| | | | | | | | | | This has some minor optimizations to shouldBeDeferred. This is not strictly NFC because the early exit inside the loop assumes TotalSecondaryCost is monotonically non-decreasing, which is not true if the threshold used by CostAnalyzer is negative. AFAICT the thresholds do not go below 0 for the default values of the various options we use. llvm-svn: 350456
* [X86] Require second operand of X86vshiftuniform to be an integer. NFCCraig Topper2019-01-051-1/+1
| | | | | | We don't need to require the first operand to be an integer because we already said it was the same type as the result which we also constrained to an integer. llvm-svn: 350455
* [gn build] Add build files for unittests that load shared librariesNico Weber2019-01-053-6/+104
| | | | | | | | | | | | | | | | | | | | | | | | This is slightly ugly for three reasons: - The shlib needs to go next to the binary to be found on all platforms, so the build files refer to target_out_dir - The explicit -fPIC flag needed on the shared lib side, and the -rdynamic flag needed on the host side, on Linux - Plugins that refer to LLVM code and assume that the host will resolve them don't work on Windows -- PluginsTests won't test anything on Windows (but DynamicLibraryTests will, since the dll here doesn't call LLVM code) If we get lots more of these plugin / plugin host targets it might make sense to add a template for them. But for now, these are the last ones we need. (We're at 6 plugin hosts, 2 of them tests, and at 6 shared libraries, 2 of them tests as well. clang is a plugin host by default in the CMake build but not (yet?) in the GN build.) Differential Revision: https://reviews.llvm.org/D56330 llvm-svn: 350454
* Let new test from r350340 still pass even after r350451.Nico Weber2019-01-051-4/+4
| | | | llvm-svn: 350453
* [LLD][COFF] PDB: Parallel sort publicsAlexandre Ganea2019-01-051-4/+5
| | | | | | | | | | | | | | | | Saves up to 1.3 sec on large PDBs. Figures below are for the "Globals Stream Layout" pass: Before This patch Large EXE (PDB is ~2 GB) 3330 ms 2022 ms Large EXE (PDB is ~2 GB) 2680 ms 1608 ms Large DLL (PDB is ~1 GB) 1455 ms 938 ms Large DLL (PDB is ~800 MB) 1215 ms 800 ms Small DLL (PDB is ~200 MB) 224 ms 146 ms Differential Revision: https://reviews.llvm.org/D56334 llvm-svn: 350452
* Move -add-plugin validation after -load was executed.Nico Weber2019-01-052-14/+19
| | | | | | | Moves the code added in r350340 around a bit, to hopefully make the existing plugin tests pass when clang is built with examples enabled. llvm-svn: 350451
* [LLD][COFF] Fix namespace compilation issue with a upcoming patch. NFCAlexandre Ganea2019-01-051-4/+4
| | | | llvm-svn: 350450
* Revert "Revert "Switch Android from TLS_SLOT_TSAN(8) to TLS_SLOT_SANITIZER(6)""Evgeniy Stepanov2019-01-051-5/+5
| | | | | | This reapplies commit r348984. llvm-svn: 350449
* Revert "Revert "[hwasan] Android: Switch from TLS_SLOT_TSAN(8) to ↵Evgeniy Stepanov2019-01-052-3/+5
| | | | | | | | TLS_SLOT_SANITIZER(6)"" This reapplies commit r348983. llvm-svn: 350448
* [gn build] Add build file for DebugInfoPDBTestsNico Weber2019-01-053-4/+37
| | | | | | | | | | | | | | | | | | | | | | | I'm pretty unhappy this patch: DebugInfoPDBTests uses an API that requires some magic txt file to be next to the unit test executable that stores the absolute path to the LLVM source root. The choices here are: 1. Don't use the unittest() template for DebugInfoPDBTests and set output_dir for unit tests in two places (the gni file for every test but this one, and the BUILD.gn file for this specific test). 2. Add another unittest_foo() template variation for this one test. I went with the former, and added a comment to the template to look out for this. (The CMake build has the same issue.) Differential Revision: https://reviews.llvm.org/D56324 llvm-svn: 350447
* [Driver] Some more cleanup. NFCJonas Devlieghere2019-01-052-34/+35
| | | | llvm-svn: 350446
* Bring back the pthread_create interceptor, but only on non-aarch64.Peter Collingbourne2019-01-041-0/+14
| | | | | | | | We still need the interceptor on non-aarch64 to untag the pthread_t and pthread_attr_t pointers and disable tagging on allocations done internally by glibc. llvm-svn: 350445
* Disable system-allocator-fallback.cc test on Android O and earlier.Peter Collingbourne2019-01-042-0/+6
| | | | | | | The dynamic loader on Android O appears to have a bug where it crashes when dlopening DF_1_GLOBAL libraries. llvm-svn: 350444
* [sanitizer] Reduce stack depot size on Android.Evgeniy Stepanov2019-01-042-2/+2
| | | | | | | | | | | | | | | | Summary: The default setting kTabSizeLog=20 results in an 8Mb global hash table, almost all of it in private pages. That is not a sane setting in a mobile, system-wide use case: with ~150 concurrent processes stack depot will account for more than 1Gb of RAM. Reviewers: kcc, pcc Subscribers: srhines, kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D56333 llvm-svn: 350443
* [PGO] Use SourceFileName rather module name in PGOFuncNameRong Xu2019-01-041-5/+6
| | | | | | | | | | In LTO or Thin-lto mode (though linker plugin), the module names are of temp file names which are different for different compilations. Using SourceFileName avoids the issue. This should not change any functionality for current PGO as all the current callers of getPGOFuncName() is before LTO. llvm-svn: 350442
* [OpenMP] Refactor const restriction for linearJoel E. Denny2019-01-0416-43/+35
| | | | | | | | | | | | | | As discussed in D56113, this patch refactors the implementation of the const restriction for linear to reuse a function introduced by D56113. A side effect is that, if a variable has mutable members, this diagnostic is now skipped, and the diagnostic for the variable not being an integer or pointer is reported instead. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D56299 llvm-svn: 350441
OpenPOWER on IntegriCloud