summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ELF][Hexagon][test] Use llvm-readobj to check relocations. NFCFangrui Song2020-01-021-3/+8
| | | | | | Reviewed By: sidneym Differential Revision: https://reviews.llvm.org/D72093
* [mlir][Linalg] Extend generic ops to allow tensorsNicolas Vasilache2020-01-0216-135/+408
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This diff adds support to allow `linalg.generic` and `linalg.indexed_generic` to take tensor input and output arguments. The subset of output tensor operand types must appear verbatim in the result types after an arrow. The parser, printer and verifier are extended to accomodate this behavior. The Linalg operations now support variadic ranked tensor return values. This extension exhibited issues with the current handling of NativeCall in RewriterGen.cpp. As a consequence, an explicit cast to `SmallVector<Value, 4>` is added in the proper place to support the new behavior (better suggestions are welcome). Relevant cleanups and name uniformization are applied. Relevant invalid and roundtrip test are added. Reviewers: mehdi_amini, rriddle, jpienaar, antiagainst, ftynse Subscribers: burmako, shauheen, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72022
* Make mangled_names.test and update_cc_test_checks.py work with Python 2.Nico Weber2020-01-022-10/+15
| | | | Differential Revision: https://reviews.llvm.org/D71565
* Fix trivial typos in comments; NFCKazuaki Ishizaki2020-01-027-7/+7
|
* Handle init statements in readability-else-after-returnNathan James2020-01-028-55/+524
| | | | | | | | | | Adds a new ASTMatcher condition called 'hasInitStatement()' that matches if, switch and range-for statements with an initializer. Reworked clang-tidy readability-else-after-return to handle variables in the if condition or init statements in c++17 ifs. Also checks if removing the else would affect object lifetimes in the else branch. Fixes PR44364.
* [mlir][spirv] Allow specifying availability on enum attribute casesLei Zhang2020-01-0210-18/+328
| | | | | | | | | | | | | | Lots of SPIR-V ops take enum attributes and certain enum cases need extra capabilities or extensions to be available. This commit extends to allow specifying availability spec on enum cases. Extra utility functions are generated for the corresponding enum classes to return the availability requirement. The availability interface implemention for a SPIR-V op now goes over all enum attributes to collect the availability requirements. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D71947
* Check for aarch64 when not using .init_arraysSterling Augustine2020-01-021-2/+2
| | | | | | | | | | Reviewers: vvereschaka Subscribers: kristof.beyls, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D72005
* Fix some corner cases missed by D71955River Riddle2020-01-022-4/+12
| | | | | | * replaceAllUsesWith may be supplied with a null value. * some compilers fail to implicitly convert single result operations to OpaqueValue, so add an explicit OpOperand::set(Value) method.
* [DebugInfo][NFC] Use function_ref consistently in debug line parsingJames Henderson2020-01-024-13/+12
| | | | | | | | | | This patch fixes an inconsistency where we were using std::function in some places and function_ref in others to pass around the error handling callback. Reviewed by: MaskRay Differential Revision: https://reviews.llvm.org/D71762
* [llvm-ranlib] Update expected error message check for WindowsAlex Richardson2020-01-021-4/+4
| | | | | | | On Windows hosts, the error message will be something like `c:\src\llvm-project\out\gn\bin\llvm-ranlib.exe: error: Invalid option: '--D'`. Due to the .exe after llvm-ranlib the existing CHECK lines do not match. Fix this by ignoring the program name and starting the check line at "error:".
* [SelectionDAG] Simplify SelectionDAGBuilder::visitInlineAsmFangrui Song2020-01-021-3/+1
|
* [NewPassManager] Rename AM to OuterAM in the OuterAnalysisManagerProxy [NFCI].Alina Sbirlea2020-01-021-7/+8
| | | | Provides clarity and consistency with the InnerAnalysisManagerProxy.
* [gn build] (manually) merge 24ab9b537e61b3 yet more, to fix redef warningsNico Weber2020-01-021-0/+1
|
* Add TPREL relocation support to HexagonSid Manning2020-01-023-0/+72
| | | | Differential Revision: https://reviews.llvm.org/D71069
* update_test_checks: match CHECK-EMPTY lines for replacement.James Y Knight2020-01-021-1/+1
| | | | | | In a8a89c77ea3c16b45763fca6940bbfd3bef7884f, the script started adding CHECK-EMPTY lines, but the regex for which lines to replace was not updated.
* [test][ELF] Verify debug line corruption messages are printed onceJames Henderson2020-01-022-9/+30
| | | | | | | | | | | | | LLD warns if it encounters malformed debug data when parsing line information for an undefined reference. We only want to warn once. This patch adds additional checking to make sure the warnings are printed only once, both for variables within the same program and variables in later line programs. Reviewed by: grimar, MaskRay Differential Revision: https://reviews.llvm.org/D71759
* [SystemZ] Use FNeg in s390x clang builtinsKevin P. Neal2020-01-025-31/+27
| | | | The s390x builtins are still using FSub instead of FNeg. Correct that.
* fix doc grammar-o to cycle botsNico Weber2020-01-021-1/+1
|
* [test][llvm-dwarfdump][NFC] Remove unused checkJames Henderson2020-01-021-136/+133
| | | | | | Reviewed by: JDevlieghere Differential Revision: https://reviews.llvm.org/D71756
* [clangd] Reorder FindTarget.h - group targetDecl() stuff and ↵Sam McCall2020-01-022-42/+45
| | | | findExplicitReferences(). NFC
* [test][llvm-dwarfdump][NFC] Improve test readabilityJames Henderson2020-01-022-38/+68
| | | | | | | | | | | | | This patch adds and improves comments in the debug_line_invalid.test and its associated input file so that it is easier to follow. It uses '##' to make comments stand out from lit and FileCheck commands. It also reflows some commands so that the lines are not so long and are easier to read and fixes some copy/paste errors. Reviewed by: JDevlieghere Differential Revision: https://reviews.llvm.org/D71752
* [gn build] (manually) merge 24ab9b537e61b3 moreNico Weber2020-01-023-0/+43
|
* Add intrinsics_gen *dependency* on Bye exampleserge-sans-paille2020-01-021-3/+5
|
* Add intrinsics_gen dependency on Bye exampleserge-sans-paille2020-01-021-0/+2
| | | | This fixes build error introduced by commit 24ab9b537e61b3fe5e6a1019492ff6530d82a3ee
* Revert "[gn build] (manually) merge 68a235d07f9e70"Nico Weber2020-01-025-8/+12
| | | | | This reverts commit 6ff6d32ebfec3150aa462cd31042b5719edb84da, because 68a235d07f9e70 was reverted in e406cca5f9.
* [gn build] (manually) merge 24ab9b537e61b3Nico Weber2020-01-021-0/+1
|
* Revert "build: reduce CMake handling for zlib"James Henderson2020-01-0215-18/+58
| | | | | | | This reverts commit 68a235d07f9e7049c7eb0c8091f37e385327ac28. This commit broke the clang-x64-windows-msvc build bot and a follow-up commit did not fix it. Reverting to fix the bot.
* Revert "build: make `LLVM_ENABLE_ZLIB` a tri-bool for users"James Henderson2020-01-023-20/+7
| | | | | | | This reverts commit e6c7ed6d2164a0659fd9f6ee44f1375d301e3cad. This commit was an attempt to fix the build bots, but it still left the clang-x64-windows-msvc bot in a broken state.
* [FPEnv] Default NoFPExcept SDNodeFlag to falseUlrich Weigand2020-01-0213-46/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The NoFPExcept bit in SDNodeFlags currently defaults to true, unlike all other such flags. This is a problem, because it implies that all code that transforms SDNodes without copying flags can introduce a correctness bug, not just a missed optimization. This patch changes the default to false. This makes it necessary to move setting the (No)FPExcept flag for constrained intrinsics from the visitConstrainedIntrinsic routine to the generic visit routine at the place where the other flags are set, or else the intersectFlagsWith call would erase the NoFPExcept flag again. In order to avoid making non-strict FP code worse, whenever SelectionDAGISel::SelectCodeCommon matches on a set of orignal nodes none of which can raise FP exceptions, it will preserve this property on all results nodes generated, by setting the NoFPExcept flag on those result nodes that would otherwise be considered as raising an FP exception. To check whether or not an SD node should be considered as raising an FP exception, the following logic applies: - For machine nodes, check the mayRaiseFPException property of the underlying MI instruction - For regular nodes, check isStrictFPOpcode - For target nodes, check a newly introduced isTargetStrictFPOpcode The latter is implemented by reserving a range of target opcodes, similarly to how memory opcodes are identified. (Note that there a bit of a quirk in identifying target nodes that are both memory nodes and strict FP nodes. To simplify the logic, right now all target memory nodes are automatically also considered strict FP nodes -- this could be fixed by adding one more range.) Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D71841
* Generalize the pass registration mechanism used by Polly to any third-party toolserge_sans_paille2020-01-0235-157/+364
| | | | | | | | | | | | | | | | | | | | | | | | There's quite a lot of references to Polly in the LLVM CMake codebase. However the registration pattern used by Polly could be useful to other external projects: thanks to that mechanism it would be possible to develop LLVM extension without touching the LLVM code base. This patch has two effects: 1. Remove all code specific to Polly in the llvm/clang codebase, replaicing it with a generic mechanism 2. Provide a generic mechanism to register compiler extensions. A compiler extension is similar to a pass plugin, with the notable difference that the compiler extension can be configured to be built dynamically (like plugins) or statically (like regular passes). As a result, people willing to add extra passes to clang/opt can do it using a separate code repo, but still have their pass be linked in clang/opt as built-in passes. Differential Revision: https://reviews.llvm.org/D61446
* Revert "Revert "[clangd] Implement "textDocument/documentLink" protocol ↵Sam McCall2020-01-0211-0/+175
| | | | | | | | | | support"" This reverts commit 079ef783dd5530b5f87beefe624b9179547ded7e. The revert describes a test failure without details, after offline discussion this in in a private/unsupported build system and doesn't seem to reflect a real upstream bug.
* [mlir][Linalg] NFC - Make consistent use of op.emitOpErrorNicolas Vasilache2020-01-022-31/+31
| | | | | | | | | | | | Summary: This is part of an ongoing cleanup and uniformization work. Reviewers: ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72084
* [mlir][Linalg] NFC - Cleanup Linalg Declarative TransformationsNicolas Vasilache2020-01-024-79/+80
| | | | | | | | | | | | | | | | | | Summary: This is part of an ongoing cleanup and uniformization work. This diff performs 3 types of cleanups: 1. Uniformize transformation names. 2. Replace all pattern operands that need not be captured by `$_` 3. Replace all usage of pattern captured op by the normalized `op` name (instead of positional parameters such as `$0`) Reviewers: ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72081
* [OpenMP] Fix formatting of OpenMP error message, by Wang Tianqing.Alexey Bataev2020-01-0211-3/+37
| | | | | | | | | | | | | | Summary: `getListOfPossibleValues()` formatted incorrectly when there is only one value, emitting something like `expected 'conditional' or in OpenMP clause 'lastprivate'`. Reviewers: jdoerfert, ABataev Reviewed By: jdoerfert Subscribers: guansong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71884
* [llvm-ranlib] Relax D-flag.test to allow it to pass on Windows hostsAlex Richardson2020-01-021-3/+2
| | | | | | It appears that Windows hosts always report rwxrwxrwx even with the chmod 644 invocation. As this test only cares about the timestamps and not the permissions, use a regex wildcard instead.
* [InstCombine] remove uses before deleting instructions (PR43723)Sanjay Patel2020-01-022-3/+46
| | | | | | | | | | | | | | | | | | | | | This is a less ambitious alternative to previous attempts to fix this bug with: rG56b2aee1875a rGef02831f0a4e rG56b2aee1875a ...because those all failed bot testing with use-after-free or other problems. The original crashing/assert problem is still showing up on various fuzzers, so I've added a new minimal test based on another one of those failures. Instead of trying to manage and coordinate the logic in isAllocSiteRemovable() with the deletion loops, just loosen the existing code that handles casts and GEP by replacing with undef to allow other opcodes. That means that no instructions with uses should assert on deletion, and there are hopefully no non-obvious sanitizer bugs induced.
* [mlir][Linalg] NFC - Rename ViewTraits -> StructuredOpTraitsNicolas Vasilache2020-01-022-3/+4
| | | | | | | | | | | | Summary: This is part of an ongoing cleanup and uniformization work. Reviewers: ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72079
* [mlir][Linalg] NFC - Rename LinalgGeneric -> GenericLinalgNicolas Vasilache2020-01-022-9/+9
| | | | | | | | | | Summary: This is part of an ongoing cleanup and uniformization work. Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72078
* Remove unneeded extra variable realArgIdx. NFC.Jay Foad2020-01-022-10/+8
|
* Make the llvm-ranlib/help-message.test test pass in unusual configurationsDmitri Gribenko2020-01-021-1/+1
| | | | | | The version string can be customized by CMake options, so the 'LLVM version' substring is not guaranteed to appear (see VersionPrinter::print in llvm/lib/Support/CommandLine.cpp).
* [ARM] Update ifcvt test target triples and opcodes. NFCDavid Green2020-01-028-41/+41
| | | | | | Some of the instructions in these tests were technically invalid combinations (using ARM opcodes in Thumb mode, for example). Update the targets and the instructions used to be more correct.
* [lldb] Fix crash in AccessDeclContextSanity when copying ↵Raphael Isemann2020-01-025-4/+58
| | | | | | | | | | | | | | | | | | | | | | | | FunctionTemplateDecl inside a record. Summary: We currently don't set access specifiers for function template declarations. This seems to be fine as long as the function template is not declared inside any record in which case Clang asserts with the following once we try to query it's access: ``` Assertion failed: (Access != AS_none && "Access specifier is AS_none inside a record decl"), function AccessDeclContextSanity, ``` This patch just marks these function template declarations as public to make Clang happy. Reviewers: shafik, teemperor Reviewed By: teemperor Subscribers: JDevlieghere, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D71909
* Fix D-flag.test by running chmod before creating the archiveAlex Richardson2020-01-021-0/+1
| | | | | | Not all systems create the .o file with mode 644 by default. Adding an explicit chmod invocation should fix this test added in 535b3c6b2f1c81ed91942ebd9ea06a1022dc59a1
* [NFC] Add explicit instantiation to releaseNodeQiu Chaofan2020-01-021-0/+5
| | | | | | Resolve a build failure about undefined symbols introduced by f9f78cf. Differential Revision: https://reviews.llvm.org/D72069
* [AArch64][SVE] Gather loads: pass 32 bit unpacked offsets as nxv2i32Andrzej Warzynski2020-01-024-219/+227
| | | | | | | | | | | | | | | | | | | Summary: Currently 32 bit unpacked offsets are passed as nxv2i64. However, as pointed out in https://reviews.llvm.org/D71074, using nxv2i32 instead would improve consistency with: * how other arguments are treated * how scatter stores are implemented This patch makes sure that 32 bit unpacked offsets are passes as nxv2i32 instead of nxv2i64. Reviewers: sdesmalen, efriedma Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71724
* [llvm-ranlib] Handle -D and -U command line flagAlex Richardson2020-01-023-8/+84
| | | | | | | | | | | | | | I have been trying to build CheriBSD (a fork for FreeBSD for the CHERI CPU) with LLVM binutils instead of the default elftoolchain utilities. I noticed that building static archives was failing because ranlib is invoked with the -D flag. This failed with llvm-ranlib since it parses the -D flag as the archive path and reports an error that more than one archive has been passed. This fixes https://llvm.org/PR41707 Reviewed By: rupprecht Differential Revision: https://reviews.llvm.org/D71554
* [docs] Update path to clang-tools-extraAlexander Lanin2020-01-023-40/+40
| | | | | | | | | | | | | | | | | | Summary: > tools/clang/tools/extra has become >clang-tools-extra which was not updated in all docs. Reviewers: alexfh, aaron.ballman, ilya-biryukov, juliehockett Reviewed By: aaron.ballman Subscribers: Jim, cfe-commits Tags: #clang-tools-extra, #clang Differential Revision: https://reviews.llvm.org/D71982
* [lldb][NFC] Remove unused variable in DWARFASTParserClang::ParseSingleMemberRaphael Isemann2020-01-021-1/+0
|
* [lldb][NFC] Create type-safe function for creating a CompilerType from a ↵Raphael Isemann2020-01-027-286/+222
| | | | | | | | | | | | | | | | | | | | | | QualType LLDB frequently converts QualType to CompilerType. This is currently done like this: result = CompilerType(this, qual_type_var.getAsOpaquePtr()) There are a few shortcomings in this current approach: 1. CompilerType's constructor takes a void* pointer so it isn't type safe. 2. We can't add any sanity checks to the CompilerType constructor (e.g. that the type actually belongs to the passed ClangASTContext) without expanding the TypeSystem API. 3. The logic for converting QualType->CompilerType is spread out over all of LLDB so changing it is difficult (e.g., what if we want to just pass the type ptr and not the 1type_ptr | qual_flags1 to CompilerType). This patch adds a `ClangASTContext::GetType` function similar to the other GetTypeForDecl functions that does this conversion in a type safe way. It also adds a sanity check for Tag-based types that the type actually belongs to the current ClangASTContext (Types don't seem to know their ASTContext, so we have to workaround by looking at the decl for the underlying TagDecl. This doesn't cover all types we construct but it's better than no sanity check).
* [NFC] Make the type of X86AlignBranchBoundary compatibleShengchen Kan2020-01-021-1/+1
| | | | | | Change the type of X86AlignBranchBoundary from cl::opt<uint64_t> to cl::opt<unsigned> since the template class cl::opt is only instantiated with type unsigned, int, std::string, char and bool.
OpenPOWER on IntegriCloud