- Oct 19, 2021
-
-
Michał Górny authored
-
Simon Pilgrim authored
Inspired by D111968, provide a isNegatedPowerOf2() wrapper instead of obfuscating code with (-Value).isPowerOf2() patterns, which I'm sure are likely avenues for typos..... Differential Revision: https://reviews.llvm.org/D111998
-
Michał Górny authored
This reverts commit 1c2c67b4. Something's still wrong.
-
Matt Morehouse authored
Allows us to use the small code model when we disable relocation relaxation. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D111344
-
Michał Górny authored
Fix incorrect values for value_regs, and incomplete values for invalidate_regs in RegisterInfos_arm. The value_regs entry needs to list only one base (i.e. larger) register that needs to be read to get the value for this register, while invalidate_regs needs to list all other registers (including pseudo-register) whose values would change when this register is written to. While at it, introduce helper macros for the definitions. 7a8ba4ff fixed a similar problem for ARM64. Differential Revision: https://reviews.llvm.org/D112066
-
bakhtiyar authored
Reviewed By: ezhulenev Differential Revision: https://reviews.llvm.org/D112051
-
Louis Dionne authored
Otherwise, the individual `check-cxx`, `check-cxxabi` and similar targets will not know about `LLVM_LIT_ARGS`, and we'll end up running lit without any argument. Differential Revision: https://reviews.llvm.org/D112035
-
Valentin Clement authored
Extract some code from the big ptach D111337. This patch contains some utility functions from the FIRBuidler. List of utility functions added: - getRegion - getModule - getKindMap - getRefType - getVarLenSeqTy - getRealType - createNullConstant - createRealConstant - createRealZeroConstant - createGlobal - createGlobalConstant - createStringLitOp - getNamedFunction - getNamedGlobal - createFunction - addNamedFunction - createBool This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D112057 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Shraiysh Vaishay authored
Code reorganized in OpenMPDialect.cpp to have all functions corresponding to an operation together. Added parseClauses function to avoid code duplication while parsing clauses in OpenMP operations. Also added printers and verifiers for clauses, which are being used for multiple operations. Reviewed By: kiranchandramohan, peixin Differential Revision: https://reviews.llvm.org/D110903
-
Michał Górny authored
Refactor ABIX86::AugmentRegisterInfo() and helper functions for better readability. This also fixes listing eax & co. as potential subregs on 32-bit systems. Differential Revision: https://reviews.llvm.org/D108937
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D111890
-
Adam Czachorowski authored
For example, if you have: void foo(int bar); foo(/*^ it should auto-complete to "bar=". Because Sema callbacks for code completion in comments happen before we have an AST we need to cheat in clangd by detecting completion on /* before, moving cursor back by two characters, then running a simplified verion of SignatureHelp to extract argument name(s) from possible overloads. Differential Revision: https://reviews.llvm.org/D110823
-
Raphael Isemann authored
The demangled name no longer contains the redundant name since D111715.
-
Michał Górny authored
This reverts commit 5352ea4a. It seems to have broken the arm buildbot.
-
Jeremy Morse authored
This is purely a performance patch: InstrRefBasedLDV used to use three DenseMaps to store variable values, two for long term storage and one as a working set. This patch eliminates the working set, and updates the long term storage in place, thus avoiding two DenseMap comparisons and two DenseMap assignments, which can be expensive. Differential Revision: https://reviews.llvm.org/D111716
-
Pavel Labath authored
We had two sets of build<flavour> methods, whose bodies were largely identical. This makes any kind of modification in their vicinity repetitive and error-prone. Replace each set with a single method taking an optional debug_info parameter. Differential Revision: https://reviews.llvm.org/D111989
-
Raphael Isemann authored
This adds the `target dump typesystem'`command which dumps the TypeSystem of the target itself (aka the 'scratch TypeSystem'). This is similar to `target modules dump ast` which dumps the AST of lldb::Modules associated with a selected target. Unlike `target modules dump ast`, the new command is not a subcommand of `target modules dump` as it's not touching the modules of a target at all. Also unlike `target modules dump ast` I tried to keep the implementation language-neutral, so this patch moves our Clang `Dump` to the `TypeSystem` interface so it will also dump the state of any future/downstream scratch TypeSystems (e.g., Swift). That's also why the command just refers to a 'typesystem' instead of an 'ast' (which is only how Clang is necessarily modelling the internal TypeSystem state). The main motivation for this patch is that I need to write some tests that check for duplicates in the ScratchTypeSystemClang of a target. There is currently no way to check for this at the moment (beside measuring memory consumption of course). It's probably also useful for debugging LLDB itself. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D111936
-
Lasse Folger authored
When printing names in lldb on windows these names contain the full type information while on linux only the name is contained. This change introduces a flag in the Microsoft demangler to control if the type information should be included. With the flag enabled demangled name contains only the qualified name, e.g: without flag -> with flag int (*array2d)[10] -> array2d int (*abc::array2d)[10] -> abc::array2d const int *x -> x For globals there is a second inconsistency which is not yet addressed by this change. On linux globals (in global namespace) are prefixed with :: while on windows they are not. Reviewed By: teemperor, rnk Differential Revision: https://reviews.llvm.org/D111715
-
Raphael Isemann authored
`Target::GetScratchTypeSystems` returns the list of scratch TypeSystems. The current implementation is iterating over all LanguageType values and retrieves the respective TypeSystem for each LanguageType. All C/C++/Obj-C LanguageTypes are however mapped to the same ScratchTypeSystemClang instance, so the current implementation adds this single TypeSystem instance several times to the list of TypeSystems (once for every LanguageType that we support). The only observable effect of this is that `SBTarget.FindTypes` for builtin types currently queries the ScratchTypeSystemClang several times (and also adds the same result several times). Reviewed By: bulbazord, labath Differential Revision: https://reviews.llvm.org/D111931
-
Vladislav Vinogradov authored
The change is based on the proposal from the following discussion: https://llvm.discourse.group/t/rfc-memreftype-affine-maps-list-vs-single-item/3968 * Introduce `MemRefLayoutAttr` interface to get `AffineMap` from an `Attribute` (`AffineMapAttr` implements this interface). * Store layout as a single generic `MemRefLayoutAttr`. This change removes the affine map composition feature and related API. Actually, while the `MemRefType` itself supported it, almost none of the upstream can work with more than 1 affine map in `MemRefType`. The introduced `MemRefLayoutAttr` allows to re-implement this feature in a more stable way - via separate attribute class. Also the interface allows to use different layout representations rather than affine maps. For example, the described "stride + offset" form, which is currently supported in ASM parser only, can now be expressed as separate attribute. Reviewed By: ftynse, bondhugula Differential Revision: https://reviews.llvm.org/D111553
-
Jeremy Morse authored
This field gets assigned when the relevant object starts being used; but it remains uninitialized beforehand. This risks introducing hard-to-detect bugs if something changes, so zero-initialize the field.
-
Luke Benes authored
Fix a dangling else that gcc-11 warned about. The EXPECT_EQ macro expands to an if-else, so the whole construction contains a hidden dangling else. Differential Revision: https://reviews.llvm.org/D112044
-
Michał Górny authored
gdbserver does not expose combined ymm* registers but rather XSAVE-style split xmm* and ymm*h portions. Extend value_regs to support combining multiple registers and use it to create user-friendly ymm* registers that are combined from split xmm* and ymm*h portions. Differential Revision: https://reviews.llvm.org/D108937
-
Qiaojin.Bao authored
While build llvm-project as a sub-project on windows, met a build error: libllvm-c.exports /llvm/bin\llvm-nm.exe: error: ...builds/rel64ninja/./lib/LLVMDemangle.lib: no such file or directory The libllvm-c.exports, libllvm-c.args, and lib/*.lib should under LLVM_BINARY_DIR, using CMAKE_BINARY_DIR will cause 'no such file' error while llvm-project built as a sub-project.
-
Fangrui Song authored
This mode never works (mismatching crtbeginT.o and crtendS.o) and probably unsupported by GCC on glibc based Linux distro (incorrect crtbeginT.o causes linker error) but makes sense (-shared means building a shared object, -static means avoid shared object dependencies) and can be used on musl based Linux distro. mingw supports this mode as well.
-
Christian Kühnel authored
This is a frist draft of a set of policies around new git repos and how we grant write access to our GitHub organisation. This proposal is based on the discussions in: https://github.com/llvm/llvm-iwg/issues/40 https://github.com/llvm/llvm-iwg/issues/51 Differential Revision: https://reviews.llvm.org/D111723
-
Jon Chesterfield authored
Subset of D111993. Fix typos, rename read to load. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D111999
-
Jonas Devlieghere authored
Fix a potential nullptr dereference in AppleObjCRuntimeV2 by checking the result of GetClassInfoUtilityFunction and returning a failure if it's null. The DynamicClassInfoExtractor was already doign the right thing, but the SharedCacheClassInfoExtractor was missing this check.
-
Fangrui Song authored
-
Fangrui Song authored
By default, such a non-template variable of non-volatile const-qualified type having namespace-scope has internal linkage ([basic.link]), so no need for `static`.
-
Lang Hames authored
This lifts the global offset table and procedure linkage table builders out of ELF_x86_64.h and into x86_64.h, renaming them with generic names x86_64::GOTTableBuilder and x86_64::PLTTableBuilder. MachO_x86_64.cpp is updated to use these classes instead of the older PerGraphGOTAndStubsBuilder tool.
-
Craig Topper authored
It was being used to control the nothrow attribute on the builtins. The nothrow attribute is for C++ exceptions. Even if the vector builtins have side effects in IR, that's different than the nothrow attribute. Reviewed By: HsiangKai Differential Revision: https://reviews.llvm.org/D112028
-
Craig Topper authored
Similar to SVE, this separates the RVV builtlins into their own region of builtin IDs. Only those IDs are allowed to be used by the builtin_alias attribute now. Reviewed By: HsiangKai Differential Revision: https://reviews.llvm.org/D111923
-
Dave MacLachlan authored
I think the C++ code example had the wrong name for the block copy function. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D91815
-
Lang Hames authored
This avoids defining DEBUG_TYPE in a public header.
-
Noah Shutty authored
We would like to move ThinLTO’s battle-tested file caching mechanism to the LLVM Support library so that we can use it elsewhere in LLVM. Patch By: noajshu Differential Revision: https://reviews.llvm.org/D111371
-
Hsiangkai Wang authored
GPR uses argument registers as the first group of registers to allocate. This patch uses vector argument registers, v8 to v23, as the first group to allocate. Differential Revision: https://reviews.llvm.org/D111304
-
Mogball authored
- `assign` with ArrayRef was calling `append` - `assign` with empty ArrayRef was not clearing storage Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D112043
-
Lang Hames authored
Moves visitEdge into the TableManager derivatives, replacing the fixEdgeKind methods in those classes. The visitEdge method takes on responsibility for updating the edge target, as well as its kind.
-
Matthias Springer authored
This helper function checks if two given ops are in mutually exclusive branches of the same scf::IfOp. Differential Revision: https://reviews.llvm.org/D111957
-