summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [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.
* [XRay][test] Fix xray-empty-firstmbb.mir and delete incorrect ↵Fangrui Song2020-01-012-14/+1
| | | | | | | | | | | xray-empty-function.mir xray-empty-firstmbb.mir does not test the intended code path. Change xray-instruction-threshold to 0 to exercise the code path. Delete xray-empty-function.mir . Empty MachineFunction does not work. Various passes (e.g. MachineDominatorTree) assume the presence of an entry block.
* [mlir][spirv] NFC: Move shader ABI attributes to a new fileLei Zhang2020-01-018-73/+113
| | | | | | | | | This allows us to include the definitions of these attributes in other files without pulling in all dependencies for lowering. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D72054
* [mlir][spirv] Fix links in docs and update dialect docsLei Zhang2020-01-012-27/+29
| | | | | | | | | | | Summary: This commit fixes links to code directories and uses doc links on mlir.llvm.org where possible. The docs in TableGen dialect definition is also updated to reflect recent developments. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D72051
* [X86] Add x86_regcallcc calling convention to function declaration recently ↵Craig Topper2020-01-011-8/+3
| | | | | | added in a test. The callsite had the calling convention, but not the function itself.
* [gn build] (manually) merge 68a235d07f9e70Nico Weber2020-01-015-12/+8
|
* [Coroutines] const-ify internal helpers (NFC)Brian Gesiak2020-01-013-11/+13
| | | | | Several helpers internal to llvm/Transforms/Coroutines do not use 'const' for parameters that are not modified. Add const where possible.
* [X86] Add test cases for regcall function that takes a long double as a ↵Craig Topper2020-01-011-0/+80
| | | | | | | parameter, but does not return a long double. I believe we are incorrectly doing some FP stack manipulations after the call.
* [RegisterClassInfo] Use SmallVector::assign instead of resize to make sure ↵Craig Topper2020-01-011-1/+1
| | | | | | | | | | | | we erase previous contents from all entries of the vector. resize only writes to elements that get added. Any elements that already existed maintain their previous value. In this case we're trying to erase cached information so we should use assign which will write to every element. Found while trying to add new tests to an existing X86 test and noticed register allocation changing in other functions.
* [Coroutines] Rename "legacy" passes (NFC)Brian Gesiak2020-01-018-59/+60
| | | | | | | | | | | | | | | | | | A series of patches beginning with https://reviews.llvm.org/D71898 propose to add an implementation of the coroutine passes to the new pass manager. As part of these changes, the coroutine passes that implement the legacy pass manager interface are renamed, to `<PassName>Legacy`. This mirrors similar changes that have been made to many other passes in LLVM as they've been transitioned to support both old and new pass managers. This commit splits out the renaming portion of that patch and commits it in advance as an NFC (no functional change intended) commit. It renames: * `CoroEarly` => `CoroEarlyLegacy` * `CoroSplit` => `CoroSplitLegacy` * `CoroElide` => `CoroElideLegacy` * `CoroCleanup` => `CoroCleanupLegacy`
* build: make `LLVM_ENABLE_ZLIB` a tri-bool for usersSaleem Abdulrasool2020-01-013-7/+20
| | | | | | Treat the flag `LLVM_ENABLE_ZLIB` as a tri-bool, `FORCE_ON` being `ON`, and `ON` being an auto-detect. This is needed as many of the builders enable the flag without having zlib available.
* build: reduce CMake handling for zlibSaleem Abdulrasool2020-01-0115-58/+18
| | | | | | | | | Rather than handling zlib handling manually, use `find_package` from CMake to find zlib properly. Use this to normalize the `LLVM_ENABLE_ZLIB`, `HAVE_ZLIB`, `HAVE_ZLIB_H`. Furthermore, require zlib if `LLVM_ENABLE_ZLIB` is set to `YES`, which requires the distributor to explicitly select whether zlib is enabled or not. This simplifies the CMake handling and usage in the rest of the tooling.
* [mlir] Fix -Wrange-loo-analysis warningsFangrui Song2020-01-017-9/+9
| | | | | | | | | | | | for (const auto &x : llvm::zip(..., ...)) -> for (auto x : llvm::zip(..., ...)) The return type of zip() is a wrapper that wraps a tuple of references. > warning: loop variable 'p' is always a copy because the range of type 'detail::zippy<detail::zip_shortest, ArrayRef<long> &, ArrayRef<long> &>' does not return a reference [-Wrange-loop-analysis]
* [lld] Fix -Wrange-loop-analysis warningsFangrui Song2020-01-015-14/+5
| | | | | | | | | | One instance looks like a false positive: lld/ELF/Relocations.cpp:1622:14: note: use reference type 'const std::pair<ThunkSection *, uint32_t> &' (aka 'cons t pair<lld::elf::ThunkSection *, unsigned int> &') to prevent copying for (const std::pair<ThunkSection *, uint32_t> ts : isd->thunkSections) It is not changed in this commit.
* [polly][Support] Un-break polly testsAlexandre Ganea2020-01-013-2/+4
| | | | | | Previously, the polly unit tests were stuck in a infinite loop. There was an edge case in StringRef::count() introduced by 9f6b13e5cce96066d7262d224c971d93c2724795, where an empty 'Str' would cause the function to never exit. Also fixed usage in polly.
* [mlir] Fix compilation warningsAlexandre Ganea2020-01-012-3/+7
| | | | | | Fixes: - (MSVC) F:\llvm-project\mlir\lib\Dialect\Linalg\Analysis\DependenceAnalysis.cpp(103): warning C4551: function call missing argument list - (Clang) tools\mlir\lib\Dialect\SPIRV\SPIRVCanonicalization.inc(232,1): warning: unused function 'populateWithGenerated' [-Wunused-function]
OpenPOWER on IntegriCloud