- Oct 20, 2020
-
-
Simon Pilgrim authored
-
Jay Foad authored
The implementation of this method was removed in D89706.
-
Simon Pilgrim authored
-
Mikhail Maltsev authored
The patch adjusts the existing `llvm::DenseMap<unsigned, T>` and `llvm::DenseSet<unsigned>` objects that store source locations, so that they use `SourceLocation` directly instead of `unsigned`. This patch relies on the `DenseMapInfo` trait added in D89719. It also replaces the construction of `SourceLocation` objects from the constants -1 and -2 with calls to the trait's methods `getEmptyKey` and `getTombstoneKey` where appropriate. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D69840
-
Hans Wennborg authored
To pacify a GCC warning: [1/1] Building CXX object tools/clang/lib/Analysis/CMakeFiles/obj.clangAnalysis.dir/Dominators.cpp.o In file included from /work/llvm.monorepo/clang/include/clang/AST/NestedNameSpecifier.h:18:0, from /work/llvm.monorepo/clang/include/clang/AST/Type.h:21, from /work/llvm.monorepo/clang/include/clang/AST/DeclarationName.h:16, from /work/llvm.monorepo/clang/include/clang/AST/DeclBase.h:18, from /work/llvm.monorepo/clang/include/clang/Analysis/AnalysisDeclContext.h:20, from /work/llvm.monorepo/clang/include/clang/Analysis/Analyses/Dominators.h:16, from /work/llvm.monorepo/clang/lib/Analysis/Dominators.cpp:9: /work/llvm.monorepo/clang/include/clang/Basic/Diagnostic.h: In copy constructor ‘clang::DiagnosticBuilder::DiagnosticBuilder(const clang::DiagnosticBuilder&)’: /work/llvm.monorepo/clang/include/clang/Basic/Diagnostic.h:1287:3: warning: base class ‘class clang::StreamingDiagnostic’ should be explicitly initialized in the copy constructor [-Wextra] DiagnosticBuilder(const DiagnosticBuilder &D) { ^ In file included from /work/llvm.monorepo/clang/include/clang/AST/Type.h:29:0, from /work/llvm.monorepo/clang/include/clang/AST/DeclarationName.h:16, from /work/llvm.monorepo/clang/include/clang/AST/DeclBase.h:18, from /work/llvm.monorepo/clang/include/clang/Analysis/AnalysisDeclContext.h:20, from /work/llvm.monorepo/clang/include/clang/Analysis/Analyses/Dominators.h:16, from /work/llvm.monorepo/clang/lib/Analysis/Dominators.cpp:9: /work/llvm.monorepo/clang/include/clang/Basic/PartialDiagnostic.h: In copy constructor ‘clang::PartialDiagnostic::PartialDiagnostic(const clang::PartialDiagnostic&)’: /work/llvm.monorepo/clang/include/clang/Basic/PartialDiagnostic.h:52:3: warning: base class ‘class clang::StreamingDiagnostic’ should be explicitly initialized in the copy constructor [-Wextra] PartialDiagnostic(const PartialDiagnostic &Other) : DiagID(Other.DiagID) { ^ -
Hans Wennborg authored
It was failing with: In file included from /work/llvm.monorepo/clang/lib/Analysis/Dominators.cpp:9:0: /work/llvm.monorepo/clang/include/clang/Analysis/Analyses/Dominators.h: At global scope: /work/llvm.monorepo/clang/include/clang/Analysis/Analyses/Dominators.h:111:26: error: specialization of ‘template<class CfgRelatedTypeT> struct llvm::CfgTraitsFor’ in different namespace [-fpermissive] template <> struct llvm::CfgTraitsFor<clang::CFGBlock> { ^ In file included from /work/llvm.monorepo/clang/include/clang/Analysis/Analyses/Dominators.h:21:0, from /work/llvm.monorepo/clang/lib/Analysis/Dominators.cpp:9: /work/llvm.monorepo/llvm/include/llvm/Support/CfgTraits.h:294:44: error: from definition of ‘template<class CfgRelatedTypeT> struct llvm::CfgTraitsFor’ [-fpermissive] template <typename CfgRelatedTypeT> struct CfgTraitsFor; ^ -
Mikhail Maltsev authored
This change creates a `DenseMapInfo` trait specialization for the SourceLocation class. The empty key, the tombstone key, and the hash function are identical to `DenseMapInfo<unsigned>`, because we already have hash maps that use raw the representation of `SourceLocation` as a key. The update of existing `DenseMap`s containing raw representation of `SourceLocation`s will be done in a follow-up patch. As an example the patch makes use of the new trait in one instance: clang-tidy/google/UpgradeGoogletestCaseCheck.{h,cpp} Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D89719 -
Louis Dionne authored
Since 9b40ee8e, new/delete must be requested explicitly during the CMake configuration if one wants these definitions to appear in libc++. Differential Revision: https://reviews.llvm.org/D89793
-
https://reviews.llvm.org/D86854Akira Hatanaka authored
The test case was part of https://reviews.llvm.org/D82999, which was abandoned after https://reviews.llvm.org/D86854 fixed the bug.
-
Michael Liao authored
This reverts commit 1ed506de.
-
Nico Weber authored
To catch things like https://reviews.llvm.org/D69854 and https://reviews.llvm.org/D89708 earlier next time they happen.
-
Nico Weber authored
-
Nico Weber authored
-
Simon Pilgrim authored
[InstCombine] Add (icmp ult (X + CA), C1) | (icmp eq X, C2) -> (icmp ule (X + CA), C1) test coverage Add both commuted variants and vector uniform/nonuniform examples
-
Michael Liao authored
-
Michael Liao authored
- In general, a generic point may alias to pointers in all other address spaces. However, for certain cases enforced by the programming model, we may found a generic point won't alias to pointers to local objects. * When a generic pointer is loaded from the constant address space, it could only be a pointer to the GLOBAL or CONSTANT address space. Thus, it won't alias to pointers to the PRIVATE or LOCAL address space. * When a generic pointer is passed as a kernel argument, it also could only be a pointer to the GLOBAL or CONSTANT address space. Thus, it also won't alias to pointers to the PRIVATE or LOCAL address space. Differential Revision: https://reviews.llvm.org/D89525 -
Florian Hahn authored
This change should currently not have any impact, but guard against further inconsistencies between MemoryLocation and function attributes.
-
Georgii Rymar authored
This reverts commit 1b589f4d and relands the D89463 with the fix: update `MappingTraits<FileFilter>::validate()` in ClangTidyOptions.cpp to match the new signature (change the return type to "std::string" from "StringRef"). Original commit message: This: Changes the return type of MappingTraits<T>>::validate to std::string instead of StringRef. It allows to create more complex error messages. It introduces std::vector<std::pair<StringRef, bool>> getEntries(): a new virtual method of Section, which is the base class for all sections. It returns names of special section specific keys (e.g. "Entries") and flags that says if them exist in a YAML. The code in validate() uses this list of entries descriptions to generalize validation. This approach was discussed in the D89039 thread. Differential revision: https://reviews.llvm.org/D89463
-
Sanjay Patel authored
-
Sanjay Patel authored
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Florian Hahn authored
It is not known how many bytes are written by memccpy, so it cannot kill any stores.
-
Simon Pilgrim authored
[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) uniform vector support Reapplied rGa704d823 with a check for integer/integervector types to prevent matching with pointer types
-
Nico Weber authored
This reverts commit 6ca3dd97. d09b0891 relanded in 53065c54.
-
Eric Fiselier authored
This patch ensures that __shared_weak_count provides a consistent vtable regardless of if RTTI is enabled or if we are targeting a static or shared libc++ build. This patch is technically ABI breaking, but only for a very specific configuration that no vendor should be shipping. Note that _LIBCPP_BUILD_STATIC is not normally defined when building libc++.a, but instead it must be manually provided by the user or the __config_site. Differential Revision: https://reviews.llvm.org/D32838
-
Georgii Rymar authored
This reverts commit b9e2b596.
-
Jean Perier authored
Check INTENT(OUT)/INTENT(INOUT) constraints for actual argument of intrinsic procedure calls. - Adding a common::Intent field to the IntrinsicDummyArgument in the intrinsic table. - Propagating it to the DummyDataObject intent field so that it can later be used in CheckExplicitDataArg semantic checks. - Add related tests. - Fix regression (C846 false error), C846 INTENT(OUT) rule does not apply to intrinsic call. Propagate the information that we are in an intrinsic call up to CheckExplicitDataArg (that is doing this check). Still enforce C846 on intrinsics other than MOVE_ALLOC (for which allocatable coarrays are explicitly allowed) since it's not clear it is allowed in all intrinsics and allowing this would lead to runtime penalties in the intrinsic runtime. Differential Revision: https://reviews.llvm.org/D89473
-
Nicolai Hähnle authored
The CfgTraits abstraction simplfies writing algorithms that are generic over the type of CFG, and enables writing such algorithms as regular non-template code that operates on opaque references to CFG blocks and values. Implementations of CfgTraits provide operations on the concrete CFG types, e.g. `IrCfgTraits::BlockRef` is `BasicBlock *`. CfgInterface is an abstract base class which provides operations on opaque types CfgBlockRef and CfgValueRef. Those opaque types encapsulate a `void *`, but the meaning depends on the concrete CFG type. For example, MachineCfgTraits -- for use with MachineIR in SSA form -- encodes a Register inside CfgValueRef. Converting between concrete references and opaque/generic ones is done by CfgTraits::{fromGeneric,toGeneric}. Convenience methods CfgTraits::{un}wrap{Iterator,Range} are available as well. Writing algorithms in terms of CfgInterface adds some overhead (virtual method calls, plus in same cases it removes the opportunity to inline iterators), but can be much more convenient since generic algorithms can be written as non-templates. This patch adds implementations of CfgTraits for all CFGs on which dominator trees are calculated, so that the dominator tree can be ported to this machinery. Only IrCfgTraits (LLVM IR) and MachineCfgTraits (Machine IR in SSA form) are complete, the other implementations are limited to the absolute minimum required to make the upcoming dominator tree changes work. v5: - fix MachineCfgTraits::blockdef_iterator and allow it to iterate over the instructions in a bundle - use MachineBasicBlock::printName v6: - implement predecessors/successors for all CfgTraits implementations - fix error in unwrapRange - rename toGeneric/fromGeneric into wrapRef/unwrapRef to have naming that is consistent with {wrap,unwrap}{Iterator,Range} - use getVRegDef instead of getUniqueVRegDef v7: - std::forward fix in wrapping_iterator - fix typos v8: - cleanup operators on CfgOpaqueType - address other review comments Change-Id: Ia75f4f268fded33fca11218a7d578c9aec1f3f4d Differential Revision: https://reviews.llvm.org/D83088 -
Haojian Wu authored
This fixes a regression introduced in https://reviews.llvm.org/D88640. Differential Revision: https://reviews.llvm.org/D89783
-
Roman Lebedev authored
-
Simon Pilgrim authored
-
Luís Marques authored
Adds some simple sanity checks that the support functions for the atomic builtins do the right thing. This doesn't test concurrency and memory model issues. Differential Revision: https://reviews.llvm.org/D86278
-
Konrad Kleine authored
Recently [1], there was an upgrade to the version of buildbot being deployed. The new setup will still work with old buildslaves but I thought it might be a good idea to update the documentation to reflect, that you now can use a newer buildbot version to when setting up your worker (formely known as slave). The upgrade from buildbot 0.8.5 to 2.8.5 went a long with a transition to a new "worker" terminology [2] which is also reflected by this change. [1]: http://lists.llvm.org/pipermail/llvm-dev/2020-October/145629.html [2]: http://docs.buildbot.net/0.9.12/manual/worker-transition.html Reviewed By: gkistanova Differential Revision: https://reviews.llvm.org/D89230
-
Pushpinder Singh authored
The calls to atmi_memcpy presently determine the direction of copy (host to device or device to host) by storing pointers in a map during malloc and looking up the pointers during memcpy. As each call site already knows the direction, this stash+lookup can be eliminated. This NFC will be followed by a functional one that deletes those map lookups. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D89776 Change-Id: I1d9089bc1e56b3a9a30e334735fa07dee1f84990
-
Carl Ritson authored
Remove immediate operand from SI_ELSE which indicates if EXEC has been modified. Instead always emit code that handles EXEC and remove unnecessary instructions during pre-RA optimisation. This facilitates passes (i.e. SIWholeQuadMode) adding exec mask manipulation post control flow lowering, and pre control flow lower passes do not need to be aware of SI_ELSE handling. Reviewed By: nhaehnle Differential Revision: https://reviews.llvm.org/D89644
-
Aleksandr Platonov authored
Without this patch 6 marshalling tests fail on Windows. This patch contains the following changes: - Allow paths with Windows slashes (convert to the POSIX style instead of assertion) - Add support for URI with Windows path. - Change the value of the second parameter of several `llvm::sys::path::convert_to_slash()` calls: we should use `windows` instead of `posix` to ensure UNIX slashes in the path. - Port `RemoteMarshallingTest::IncludeHeaderURI` test to Windows. Reviewed By: kbobyrev Differential Revision: https://reviews.llvm.org/D89529
-
sstefan1 authored
D70365 allows us to make attributes default. This is a follow up to actually make nosync, nofree and willreturn default. The approach we chose, for now, is to opt-in to default attributes to avoid introducing problems to target specific intrinsics. Intrinsics with default attributes can be created using `DefaultAttrsIntrinsic` class.
-
Tres Popp authored
This still satisfies the constraints required by the affine dialect and gives more flexibility in what iteration bounds can be used when loewring to the GPU dialect. Differential Revision: https://reviews.llvm.org/D89782
-
Georgii Rymar authored
[yaml2obj][NFCI] - Address post commit comments for "[yaml2obj][ELF] - Simplify the code that performs sections validation." This addresses post commit comments for D89463.
-