summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [NFC][PowerPC]Assert when trying to generate directmove below P8.Jinsong Ji2019-03-121-1/+4
| | | | | | | | | | | | This was found when we generated COPY from G8RC to F8RC in EmitInstrWithCustomInserter without checking proper architecture, we silently generated mtvsrd, which require P8 and up. This is a NFC patch to add assert when we call copyPhysReg, in case someone accidentally generate COPY between G8RC to F8RC for P7 and below. llvm-svn: 355920
* [pstl] Deprecate non-CMake based buildLouis Dionne2019-03-1215-821/+0
| | | | | | | | | | All of LLVM builds with CMake, so it doesn't make sense to maintain a separate set of build files just for pstl. Thanks to Thomas Rodgers for the patch. Differential Revision: https://reviews.llvm.org/D59111 llvm-svn: 355919
* [pstl] Properly extract the version number from pstl_config.hLouis Dionne2019-03-121-1/+1
| | | | | | | | Previously, we'd be performing math on `#define PSTL_VERSION NNN` instead of just `NNN`. It seems like older CMakes didn't complain, but newer CMakes do complain because it doesn't make sense. llvm-svn: 355918
* [XRay][docs] Fix option nameFangrui Song2019-03-121-1/+1
| | | | llvm-svn: 355917
* [PR41007][OpenCL] Allow printf in C++ mode.Anastasia Stulova2019-03-122-2/+2
| | | | | | | | | As for OpenCL C, we need to allow using printf and toolchain variadic functions (prefixed by "__") in C++ mode. Differential Revision: https://reviews.llvm.org/D59219 llvm-svn: 355915
* [llvm-objcopy] Remove unneeded checks. NFCEugene Leviant2019-03-121-27/+23
| | | | | | Differential revision: https://reviews.llvm.org/D59081 llvm-svn: 355914
* Revert rL355906: [SLP] Remove redundancy of performing operand reordering ↵Simon Pilgrim2019-03-121-169/+82
| | | | | | | | | | | | | | | | | | twice: once in buildTree() and later in vectorizeTree(). This is a refactoring patch that removes the redundancy of performing operand reordering twice, once in buildTree() and later in vectorizeTree(). To achieve this we need to keep track of the operands within the TreeEntry struct while building the tree, and later in vectorizeTree() we are just accessing them from the TreeEntry in the right order. This patch is the first in a series of patches that will allow for better operand reordering across chains of instructions (e.g., a chain of ADDs), as presented here: https://www.youtube.com/watch?v=gIEn34LvyNo Patch by: @vporpo (Vasileios Porpodas) Differential Revision: https://reviews.llvm.org/D59059 ........ Reverted due to buildbot failures that I don't have time to track down. llvm-svn: 355913
* Try to fix SLPVectorizer BoUpSLP::BoEdgeInfo::dump visibility on non-debug ↵Simon Pilgrim2019-03-121-3/+1
| | | | | | builds llvm-svn: 355912
* Revert "[analyzer] Fix function macro crash"Kristof Umann2019-03-123-516/+4
| | | | | | | | | Buildbot breaks when LLVm is compiled with memory sanitizer. WARNING: MemorySanitizer: use-of-uninitialized-value #0 0xa3d16d8 in getMacroNameAndPrintExpansion(blahblah) lib/StaticAnalyzer/Core/PlistDiagnostics.cpp:903:11 llvm-svn: 355911
* [LLD][ELF] - Show symbols visibility in "undefined symbol..." error messages.George Rimar2019-03-127-11/+17
| | | | | | | | | This teaches LLD to report visibility when showing undefined symbol errors and fixes https://bugs.llvm.org/show_bug.cgi?id=40770. Differential revision: https://reviews.llvm.org/D58577 llvm-svn: 355909
* [ARM][NFC] Delete original smlad testsSam Parker2019-03-1219-2106/+0
| | | | | | Because I don't understand svn. llvm-svn: 355908
* [ARM][NFC] Move smlad testsSam Parker2019-03-1219-0/+2106
| | | | | | Created a test/CodeGen/ARM/ParallelDSP folder. llvm-svn: 355907
* [SLP] Remove redundancy of performing operand reordering twice: once in ↵Simon Pilgrim2019-03-121-82/+171
| | | | | | | | | | | | | | | buildTree() and later in vectorizeTree(). This is a refactoring patch that removes the redundancy of performing operand reordering twice, once in buildTree() and later in vectorizeTree(). To achieve this we need to keep track of the operands within the TreeEntry struct while building the tree, and later in vectorizeTree() we are just accessing them from the TreeEntry in the right order. This patch is the first in a series of patches that will allow for better operand reordering across chains of instructions (e.g., a chain of ADDs), as presented here: https://www.youtube.com/watch?v=gIEn34LvyNo Patch by: @vporpo (Vasileios Porpodas) Differential Revision: https://reviews.llvm.org/D59059 llvm-svn: 355906
* [SimplifyLibCalls] Fix comments about fputs, memchr, and s[n]printf. NFCFangrui Song2019-03-122-6/+8
| | | | llvm-svn: 355905
* [CGP] Fix UB when GEP is bound to trivial PHINodeEugene Leviant2019-03-122-0/+34
| | | | | | Differential revision: https://reviews.llvm.org/D59140 llvm-svn: 355904
* [analyzer] Fix function macro crashKristof Umann2019-03-123-4/+516
| | | | | | | | | | | | | | | | | | | When there is a functor-like macro which is passed as parameter to another "function" macro then its parameters are not listed at the place of expansion: #define foo(x) int bar() { return x; } #define hello(fvar) fvar(0) hello(foo) int main() { 1 / bar(); } Expansion of hello(foo) asserted Clang, because it expected an l_paren token in the 3rd line after "foo", since it is a function-like token. Patch by Tibor Brunner! Differential Revision: https://reviews.llvm.org/D57893 llvm-svn: 355903
* [AMDGPU] Add support for immediate operand for S_ENDPGMDavid Stuttard2019-03-1299-644/+731
| | | | | | | | | | | | | | | | | Summary: Add support for immediate operand in S_ENDPGM Change-Id: I0c56a076a10980f719fb2a8f16407e9c301013f6 Reviewers: alexshap Subscribers: qcolombet, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, tpr, t-tye, eraman, arphaman, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59213 llvm-svn: 355902
* [TTI] Enable analysis of clib functions in getIntrinsicCosts. NFCI.Sjoerd Meijer2019-03-124-41/+52
| | | | | | | | | | | | | | | | | This is addressing the issue that we're not modeling the cost of clib functions in TTI::getIntrinsicCosts and thus we're basically addressing this fixme: // FIXME: This is wrong for libc intrinsics. To enable analysis of clib functions, we not only need an intrinsic ID and formal arguments, but also the actual user of that function so that we can e.g. look at alignment and values of arguments. So, this is the initial plumbing to pass the user of an intrinsinsic on to getCallCosts, which queries getIntrinsicCosts. Differential Revision: https://reviews.llvm.org/D59014 llvm-svn: 355901
* [TableGen] Allow 2^63-1 and 2^63-2 as int literals.Simon Tatham2019-03-122-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | These two values correspond to the 'Empty' and 'Tombstone' special keys defined by DenseMapInfo<int64_t>, which means that neither one can be used as a key in DenseMap<int64_t, anything>. Hence, if you try to use either of those values as an int literal, IntInit::get() fails an assertion when it tries to insert them into its static cache of int-literal objects. Fixed by replacing the DenseMap with a std::map, which doesn't intrude on the space of legal values of the key type. Reviewers: nhaehnle, hfinkel, javedabsar, efriedma Reviewed By: efriedma Subscribers: fhahn, efriedma, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59016 llvm-svn: 355900
* [RISCV] Add test cases for the lp64 ABIAlex Bradbury2019-03-123-0/+792
| | | | | | | | These are closely modeled on similar tests for the ilp32 ABI. Like those tests, we group together tests that should be common cross lp64, lp64+lp64f, and lp64+lp64f+lp64d ABIs. llvm-svn: 355899
* Correctly look up declarations in inline namespacesRaphael Isemann2019-03-1210-11/+108
| | | | | | | | | | | | | | | | | | Summary: This patch marks the inline namespaces from DWARF as inline and also ensures that looking up declarations now follows the lookup rules for inline namespaces. Reviewers: aprantl, shafik, serge-sans-paille Reviewed By: aprantl Subscribers: eraman, jdoerfert, lldb-commits Tags: #c_modules_in_lldb, #lldb Differential Revision: https://reviews.llvm.org/D59198 llvm-svn: 355897
* Fix git-llvm crashing when trying to remove directory while cleaningRaphael Isemann2019-03-121-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I'm trying to push D59198 but it seems that `git-llvm push` can't handle the fact that I add a new directory in the patch: ``` > git llvm push -n Pushing 1 commit: e7c0a9bd136 Correctly look up declarations in inline namespaces Traceback (most recent call last): File "llvm/utils/git-svn//git-llvm", line 431, in <module> args.func(args) File "llvm/utils/git-svn//git-llvm", line 385, in cmd_push clean_svn(svn_root) File "llvm/utils/git-svn//git-llvm", line 201, in clean_svn os.remove(os.path.join(svn_repo, filename)) IsADirectoryError: [Errno 21] Is a directory: '.git/llvm-upstream-svn/lldb/trunk/packages/Python/lldbsuite/test/expression_command/inline-namespace' ``` This patch just uses shutil to delete the directory instead of trying to use `os.remove` which only works for files. Reviewers: mehdi_amini, jlebar Reviewed By: jlebar Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59236 llvm-svn: 355896
* Very minor typo. NFCKristina Brooks2019-03-121-1/+1
| | | | | | | | | | Typo `we we're` => `we were` in the pass EarlyCSE Patch by liangdzou (Liang ZOU) Differential Revision: https://reviews.llvm.org/D59241 llvm-svn: 355895
* Fix test to unconditionally create a GNU-format archive.Eli Friedman2019-03-121-1/+1
| | | | | | | On Darwin targets, llvm-ar creates a Darwin format archive by default, which ld.lld can't read, so it was printing an unexpected error. llvm-svn: 355894
* ELF: Remove dead code. NFCI.Peter Collingbourne2019-03-121-3/+1
| | | | | | | | The Live bit is already set to false by SectionBase. Differential Revision: https://reviews.llvm.org/D59052 llvm-svn: 355893
* llvm-objcopy: Remove unused field. NFCI.Peter Collingbourne2019-03-122-9/+3
| | | | | | Differential Revision: https://reviews.llvm.org/D59126 llvm-svn: 355892
* [Driver] Support object files in addition to static and shared libraries in ↵Petr Hosek2019-03-126-20/+47
| | | | | | | | | | | | compiler-rt This change introduces support for object files in addition to static and shared libraries which were already supported which requires changing the type of the argument from boolean to an enum. Differential Revision: https://reviews.llvm.org/D56044 llvm-svn: 355891
* [DebugInfo] Add test cases for FlagNonTrivialAaron Smith2019-03-121-0/+90
| | | | | | | | | | | | | | | | | | | Summary: This is a test case to go with D44406 which added FlagNonTrivial to mark that a C++ record is non-trivial to support CodeView debug emission. While it looks like FlagTypePassByValue can imply triviality and FlagTypePassByReference can imply non-triviality that is not true. Some non-trivial cases use a combination of FlagNonTrivial and FlagTypePassByValue instead of FlagTypePassByReference. See the test cases and D44406 for discussion. Reviewers: dblaikie, rnk, zturner Reviewed By: dblaikie Subscribers: jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59010 llvm-svn: 355890
* Reland "Relax constraints for reduction vectorization"Sanjoy Das2019-03-129-34/+180
| | | | | | | | | | | | | | | | | | | | | Change from original commit: move test (that uses an X86 triple) into the X86 subdirectory. Original description: Gating vectorizing reductions on *all* fastmath flags seems unnecessary; `reassoc` should be sufficient. Reviewers: tvvikram, mkuper, kristof.beyls, sdesmalen, Ayal Reviewed By: sdesmalen Subscribers: dcaballe, huntergr, jmolloy, mcrosier, jlebar, bixia, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57728 llvm-svn: 355889
* [ELF] Print a better error for an archive containing a non-ELF file.Eli Friedman2019-03-122-8/+17
| | | | | | | | | Hopefully gives a more readable error message for the most obvious mistake. Differential Revision: https://reviews.llvm.org/D59170 llvm-svn: 355888
* [CMake] Avoid clang-tablegen-targets dependency when building sphinx docs ↵Jonas Devlieghere2019-03-121-1/+1
| | | | | | | | | | | | | (experimental) Proposal to fix bot http://lab.llvm.org:8011/builders/lldb-sphinx-docs/builds/1564/steps/cmake-configure/logs/stdio Patch by: Stefan Gränitz Differential revision: https://reviews.llvm.org/D59232 llvm-svn: 355887
* Include an archive file name in an error message for a corrupted file.Rui Ueyama2019-03-122-9/+17
| | | | | | Differential Revision: https://reviews.llvm.org/D59212 llvm-svn: 355886
* [msan] Fix BMI2 detection in msan tests.Evgeniy Stepanov2019-03-121-1/+1
| | | | llvm-svn: 355885
* Add a case in SymbolFile{Native,}PDB::TranslateLanguage for SwiftNathan Lanza2019-03-112-0/+4
| | | | | | | | | | Summary: see above Reviewers: compnerd Differential Revision: https://reviews.llvm.org/D59230 llvm-svn: 355883
* Add Swift enumerator value for CodeView::SourceLanguageNathan Lanza2019-03-117-7/+55
| | | | | | | | | | | | | | | Summary: Swift now generates PDBs for debugging on Windows. llvm and lldb need a language enumerator value too properly handle the output emitted by swiftc. Subscribers: jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59231 llvm-svn: 355882
* Hexagon RDF: Replace function template (plus explicit specializations) with ↵David Blaikie2019-03-114-25/+27
| | | | | | | | | | | | | | | | | | | non-template overloads For the design in question, overloads seem to be a much simpler and less subtle solution. This removes ODR issues, and errors of the kind where code that uses the specialization in question will accidentally and erroneously specialize the primary template. This only "works" by accident; the program is ill-formed NDR. (Found with -Wundefined-func-template.) Patch by Thomas Köppe! Differential Revision: https://reviews.llvm.org/D58998 llvm-svn: 355880
* [Reproducers] Make ReproducerInstrumentation a textual headerJonas Devlieghere2019-03-111-1/+2
| | | | | | | | The RECORD macro is context sensitive because it depends on the LLDB_GET_INSTRUMENTATION_DATA. This updates the modulemap to mark that header as textual. llvm-svn: 355879
* lld-link: Only print demangled symbol names by defaultNico Weber2019-03-116-13/+24
| | | | | | | | | | | | | | | | | | This makes lld-link's output a bit more concise. Since most developers can't read mangled names, this should make the output a bit easier to understand as well. It also makes lld-link's output consistent with ld.lld's output. (link.exe prints both demangled and mangled names; lld-link used to match link.exe output but now no longer does.) For people working on toolchains, add a `/demangle:no` flag that makes lld-link print the mangled name instead of the demangled name. (If desired, people could pipe that through `demumble -b` to get the old behavior of both demangled and mangled output.) Differential Revision: https://reviews.llvm.org/D58132 llvm-svn: 355878
* Allow optional to tolerate being used with a nested class.Eric Fiselier2019-03-112-3/+48
| | | | | | | | | | | | | | | When Clang tries to complete a type containing `std::optional` it considers the `in_place_t` constructor with no arguments which checks if the value type is default constructible. If the value type is a nested class type, then this check occurs too early and poisons the is_default_constructible trait. This patch makes optional deduce `in_place_t` so we can prevent this early SFINAE evaluation. Technically this could break people doing weird things with the in_place_t tag, but that seems less important than making the nested class case work. llvm-svn: 355877
* [PGO] Add options for context-sensitive PGORong Xu2019-03-114-0/+15
| | | | | | | | Add lld options for CSPGO (context-sensitive PGO). Differential Revision: https://reviews.llvm.org/D56675 llvm-svn: 355876
* Rewrite comment to be clearerAlex Langford2019-03-111-1/+1
| | | | llvm-svn: 355875
* Revert "Relax constraints for reduction vectorization"Sanjoy Das2019-03-119-180/+34
| | | | | | This reverts commit r355868. Breaks hexagon. llvm-svn: 355873
* [X86] Remove ProcModel and ProcFeatures tablegen classes. Move all feature ↵Craig Topper2019-03-111-392/+380
| | | | | | | | | | | | | | | | | | lists into a ProcessorFeatures class. ProcFeatures was a class that just concatenated two feature lists together and gave it a name. We used it to inherit features between CPUs. ProcModel took a two CPU feature lists and concatenated them before deferring to ProcessorModel. This was to allow inherited features and specific features to be passed to each CPU. Both of these allowed for only very rigid CPU inheritance rules. With this patch we now store all of the lists we were using for inheritance in one object and do any list oncatenation we want there. Then we just pass whatever list we want from this class into the ProcessorModel class for each CPU. Hopefully this gives us more flexibility to build up feature lists in whatever ways we think make sense. Perhaps untangling ISA flags and tuning flags. I've only touched the CPUs that were directly affected by the removal of the ProcModel and ProcFeatures classes. We should move more of the feature lists into ProcessorFeatures. llvm-svn: 355872
* Recommit "[GlobalISel][AArch64] Add selection support for G_EXTRACT_VECTOR_ELT"Jessica Paquette2019-03-115-18/+366
| | | | | | | | | After r355865, we should be able to safely select G_EXTRACT_VECTOR_ELT without running into any problematic intrinsics. Also add a fix for lane copies, which don't support index 0. llvm-svn: 355871
* Remove ASan asm instrumentation.Evgeniy Stepanov2019-03-1121-2041/+7
| | | | | | | | | | | | | | Summary: It is incomplete and has no users AFAIK. Reviewers: pcc, vitalybuka Subscribers: srhines, kubamracek, mgorny, krytarowski, eraman, hiraditya, jdoerfert, #sanitizers, llvm-commits, thakis Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D59154 llvm-svn: 355870
* [RISCV] Do a sign-extension in a compare-and-swap of 32 bit in RV64AAlex Bradbury2019-03-112-0/+33
| | | | | | | | | | | | | | | | AtomicCmpSwapWithSuccess is legalised into an AtomicCmpSwap plus a comparison. This requires an extension of the value which, by default, is a zero-extension. When we later lower AtomicCmpSwap into a PseudoCmpXchg32 and then expanded in RISCVExpandPseudoInsts.cpp, the lr.w instruction does a sign-extension. This mismatch of extensions causes the comparison to fail when the compared value is negative. This change overrides TargetLowering::getExtendForAtomicOps for RISC-V so it does a sign-extension instead. Differential Revision: https://reviews.llvm.org/D58829 Patch by Ferran Pallarès Roca. llvm-svn: 355869
* Relax constraints for reduction vectorizationSanjoy Das2019-03-119-34/+180
| | | | | | | | | | | | | | | | | | Summary: Gating vectorizing reductions on *all* fastmath flags seems unnecessary; `reassoc` should be sufficient. Reviewers: tvvikram, mkuper, kristof.beyls, sdesmalen, Ayal Reviewed By: sdesmalen Subscribers: dcaballe, huntergr, jmolloy, mcrosier, jlebar, bixia, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57728 llvm-svn: 355868
* [RISCV] Allow fp as an alias of s0Alex Bradbury2019-03-112-1/+17
| | | | | | | | | | | The RISC-V Assembly Programmer's Manual defines fp as another alias of x8. However, our tablegen rules only recognise s0. This patch adds fp as another alias of x8. GCC also accepts fp. Differential Revision: https://reviews.llvm.org/D59209 Patch by Ferran Pallarès Roca. llvm-svn: 355867
* [Reproducers] Reinterpret cast to void*Jonas Devlieghere2019-03-111-6/+1
| | | | | | | | Apparently the log_append variant added in r355863 is considered ambiguous. At this point I'm out of ideas so a good old reinterpret cast will have to do. If anybody has a better idea I'd be happy to hear it. llvm-svn: 355866
* [GlobalISel][AArch64] Always fall back on aarch64.neon.addp.*Jessica Paquette2019-03-116-8/+93
| | | | | | | | | | | | | | Overloaded intrinsics aren't necessarily safe for instruction selection. One such intrinsic is aarch64.neon.addp.*. This is a temporary workaround to ensure that we always fall back on that intrinsic. Eventually this will be replaced with a proper solution. https://bugs.llvm.org/show_bug.cgi?id=40968 Differential Revision: https://reviews.llvm.org/D59062 llvm-svn: 355865
OpenPOWER on IntegriCloud