- Oct 19, 2021
-
-
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
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D111959
-
Jim Ingham authored
I need to set a fake default platform for the UnitTest test to run on other systems.
-
Arthur Eubanks authored
Right now when we see -O# we add the corresponding 'default<O#>' into the list of passes to run when translating legacy -pass-name. This has the side effect of not using the default AA pipeline. Instead, treat -O# as -passes='default<O#>', but don't allow any other -passes or -pass-name. I think we can keep `opt -O#` as shorthand for `opt -passes='default<O#>` but disallow anything more than just -O#. Tests need to be updated to not use `opt -O# -pass-name`. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D112036
-
Arthur Eubanks authored
Now that the legacy PM is deprecated for the optimization pipeline, we can start deleting legacy PM tests. For tests that test both PMs, merge the RUN lines. Delete tests specific to the legacy PM.
-
not-jenni authored
Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D112037
-
Michael Jones authored
Add the string to floating point conversion functions. Long doubles aren't supported yet, but floats and doubles are. The primary algorithm used is the Eisel-Lemire ParseNumberF64 algorithm, with the Simple Decimal Conversion algorithm as backup. Links for more information on the algorithms: Number Parsing at a Gigabyte per Second, Software: Practice and Experience 51 (8), 2021 (https://arxiv.org/abs/2101.11408) https://nigeltao.github.io/blog/2020/eisel-lemire.html https://nigeltao.github.io/blog/2020/parse-number-f64-simple.html Differential Revision: https://reviews.llvm.org/D109261
-
Craig Topper authored
This value is only used by the RVVIntrinsic constructor. We don't need it to be a member.
-
Anshil Gandhi authored
By default clang emits complete contructors as alias of base constructors if they are the same. The backend is supposed to emit symbols for the alias, otherwise it causes undefined symbols. @yaxunl observed that this issue is related to the llvm options `-amdgpu-early-inline-all=true` and `-amdgpu-function-calls=false`. This issue is resolved by only inlining global values with internal linkage. The `getCalleeFunction()` in AMDGPUResourceUsageAnalysis also had to be extended to support aliases to functions. inline-calls.ll was corrected appropriately. Reviewed By: yaxunl, #amdgpu Differential Revision: https://reviews.llvm.org/D109707
-
Craig Topper authored
-
Jim Ingham authored
The point is to allow users with a related set of script based commands to organize their commands in a hierarchy in the command set, rather than having to have only top-level commands. Differential Revision: https://reviews.llvm.org/D110298
-
modimo authored
On Windows there's an *.exe suffix to opt that isn't present in Linux. Remove the check for opt in the string
-