- Sep 07, 2023
-
-
David Spickett authored
https://github.com/orgs/llvm/teams/pr-subscribers-lldb exists but wasn't added to this file.
-
Sergei Barannikov authored
This change allows to simplify SparcAsmParser a bit by delegating some work (parsing singleton registers) to the code generated by llvm-tblgen. Other than that, there is no functionality change, because registers are matched using custom code in SparcAsmParser.cpp and always printed in lowercase by SparcInstPrinter.
-
Martin Erhart authored
The new Buffer Deallocation pass introduced in D158421 will not need the AllocationOpInterface anymore, thus it is better to move those default implementations to a place where they will still be used.
-
Corentin Jabot authored
The change causes some libcxx regressions This reverts commit eaf725bc.
-
Markus Böck authored
The substitution supported by `extraClassOf` is currently limited to only the base instance, i.e. `Operation*`, `Type` or `Attribute`, which limits the kind of checks you can perform in the `classof` implementation. Since prior to the user code, the interface concept is fetched, we can use it to construct an instance of the interface, allowing use of its methods in the `classof` check. Since an instance of the interface allows access to the base class methods through the `->` operator, I've gone ahead and replaced the substitution of `$_op/$_type/$_attr` with an interface instance. This is also consistent with `extraSharedClassDeclaration` and other methods created in the interface class which do the same.
-
Owen authored
Running `dump_format_help.py` in `clang/docs/tools`: ``` warning: line too long: relative to the current working directory when reading stdin. warning: line too long: --files=<filename> - A file containing a list of files to process, one per line. warning: line too long: --help-list - Display list of available options (--help-list-hidden for more) Traceback (most recent call last): File "/Users/Owen/remove-braces/clang/docs/tools/./dump_format_help.py", line 63, in <module> contents = substitute(contents, "FORMAT_HELP", help_text) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/Owen/remove-braces/clang/docs/tools/./dump_format_help.py", line 17, in substitute return re.sub(pattern, "%s", text, flags=re.S) % replacement ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ TypeError: not ... -
Egor Zhdan authored
This upstreams a few Clang API Notes attributes that were recently added downstream in the Apple fork (https://github.com/apple/llvm-project/pull/7386).
-
Kinuko Yasuda authored
Usually RecordValues for record objects (e.g. struct) are initialized with `Environment::createValue()` which internally calls `getObjectFields()` to collects all fields from the current and base classes, and then filter them with `ModeledValues` via `DACtx::getModeledFields()` so that the fields that are actually referenced are modeled. The consistent set of fields should be initialized when a record is initialized with an initializer list (InitListExpr), however the existing code's behavior was different. Before this patch: * When a struct is initialized with InitListExpr, its fields are initialized based on what is returned by `getFieldsForInitListExpr()`, which only collects the direct fields in the current class, but not from the base classes. Moreover, if the base classes have their own InitListExpr, values that are initialized by their InitListExpr's weren't merged into the child objects. After this patch: *...
-
Owen Pan authored
-
wenzhi-cui authored
-
Christopher Di Bella authored
* replaces `add_rvalue_reference_t` with `is_rvalue_reference_t` * includes `"stddef.h"` for `size_t` include --------- Co-authored-by:Guillaume Chatelet <gchatelet@google.com>
-
Fangrui Song authored
-
Thomas authored
On sm_90 some instructions now support i16x2 which allows hardware to execute more efficiently add, min and max instructions. In order to support that we need to make i16x2 a native type in the backend. This does the necessary changes to make i16x2 a native type and adds support for the instructions natively supporting i16x2. This caused a negative test in nvptx slp to start passing. Changed the test to a positive one as the IR is correctly vectorized.
-
Shilei Tian authored
-
walter erquinigo authored
https://lab.llvm.org/buildbot/#/builders/68/builds/59499 caught a failed test introduced by https://github.com/llvm/llvm-project/commit/cf5d8def5cf66fbdfffa00a4845bd648ec58ed60. The fix is simple. We just need to update some values.
-
Brad Smith authored
Define __kmp_gettid() as appropriate for DragonFly.
-
Walter Erquinigo authored
Currently, if the user wants to inspect the raw version of a synthetic variable, they have to go to the debug console and type `frame var <variable>`, which is not a great experience. Taking inspiration from CodeLLDB, this adds a `[raw]` child to every synthetic variable so that this kind of inspection can be done visually. Some examples: <img width="500" alt="Screenshot 2023-09-06 at 7 56 25 PM" src="https://github.com/llvm/llvm-project/assets/1613874/7fefb7c5-0da7-49c7-968b-78ac88348fea"> <img width="479" alt="Screenshot 2023-09-06 at 6 58 25 PM" src="https://github.com/llvm/llvm-project/assets/1613874/6e650567-16e1-462f-9bf5-4a3a605cf6fc">
-
Walter Erquinigo authored
The formatter fails when num_children is invoked and self.impl_type is not set.
-
Nico Weber authored
-
Arthur O'Dwyer authored
Inspired by https://reviews.llvm.org/D120684#inline-1157644 and subsequent LWG discussion. See http://wg21.link/LWG3207 for additional context. Differential Revision: https://reviews.llvm.org/D121154 Co-authored-by:
Louis Dionne <ldionne.2@gmail.com>
-
Zoe Carver authored
Differential Revision: https://reviews.llvm.org/D61771 Co-authored-by:
Louis Dionne <ldionne.2@gmail.com>
-
Tyler Lanphear authored
Fixes a corner case of the analysis: previously GlobalValues could be affected by assumptions, but were not tracked within AffectedValues. This patch allows assumptions which affect a given GlobalValue to be looked up via `assumptionsFor()`. A small update to llvm/test/Analysis/ScalarEvolution/ranges.ll was necessary due to knowledge about a global value now being propagated from AssumptionCache -> ValueTracking -> ScalarEvolution.
-
Daniel Kutenin authored
This happened because we had a section ``` - Index: 3 Kind: DATA Name: weak_import_data Flags: [ BINDING_WEAK, UNDEFINED ] ``` Which does not have size. We managed to reproduce it by building llvm under msan with libcxx as a standard library and debug mode with -D_LIBCPP_DEBUG_STRICT_WEAK_ORDERING_CHECK. It called comp(a, a) and full tie detected uninitialized memory This started to happen after https://reviews.llvm.org/D158799 -
aeubanks authored
This was only useful during the transition when mixing non-opaque-pointer and opaque-pointer IR, now everything uses opaque pointers.
-
Walter Erquinigo authored
We were invoking GetChildAtIndex(0) without checking the number of children. This was not crashing but was showing some warnings in python formatters.
-
Corentin Jabot authored
-
Corentin Jabot authored
int a\ ス; Failed to be parsed as a valid identifier. Fixes #65156 Reviewed By: tahonermann Differential Revision: https://reviews.llvm.org/D159345
-
Walter Erquinigo authored
We've been displaying types and addresses for containers, but that's not very useful information. A better approach is to compose the summary of containers with the summary of a few of its children. Not only that, we can dereference simple pointers and references to get the summary of the pointer variable, which is also better than just showing an anddress. And in the rare case where the user wants to inspect the raw address, they can always use the debug console for that. For the record, this is very similar to what the CodeLLDB extension does, and it seems to give a better experience. An example of the new output: <img width="494" alt="Screenshot 2023-09-06 at 2 24 27 PM" src="https://github.com/llvm/llvm-project/assets/1613874/588659b8-421a-4865-8d67-ce4b6182c4f9"> And this is the <img width="476" alt="Screenshot 2023-09-06 at 2 46 30 PM" src="https://github.com/llvm/llvm-project/assets/16138...
-
Daniel Hoekwater authored
On x86 targets, -fsplit-machine-functions enables splitting of machine functions using profile information. This patch rolls out the flag for AArch64 targets. Depends on D158647 Differential Revision: https://reviews.llvm.org/D157157
-
Alexey Bataev authored
-
Razvan Lupusoru authored
The OpenACC standard specifies an `atomic` construct in section 2.12 (of 3.3 spec), used to ensure that a specific location is accessed or updated atomically. Four different clauses are allowed: `read`, `write`, `update`, or `capture`. If no clause appears, it is as if `update` is used. The OpenMP specification defines the same clauses for `omp atomic`. The types of expression and the clauses in the OpenACC spec match the OpenMP spec exactly. The main difference is that the OpenMP specification is a superset - it includes clauses for `hint` and `memory order`. It also allows conditional expression statements. But otherwise, the expression definition matches. Thus, for OpenACC, we refactor and reuse the OpenMP implementation as follows: * The atomic operations are duplicated in OpenACC dialect. This is preferable so that each language's semantics are precisely represented even if specs have divergence. * How...
-
Thomas authored
NFC changes to explicitly specify the type we are matching when creating Int32 reg. This will allow use to have multiple types mapping those register without causing ambigous matching.
-
Arthur Eubanks authored
This code path doesn't exist anymore.
-
Daniel Hoekwater authored
On AArch64, it is safe to let the linker handle relaxation of unconditional branches; in most cases, the destination is within range, and the linker doesn't need to do anything. If the linker does insert fixup code, it clobbers the x16 inter-procedural register, so x16 must be available across the branch before linking. If x16 isn't available, but some other register is, we can relax the branch either by spilling x16 OR using the free register for a manually-inserted indirect branch. This patch builds on D145211. While that patch is for correctness, this one is for performance of the common case. As noted in https://reviews.llvm.org/D145211#4537173, we can trust the linker to relax cross-section unconditional branches across which x16 is available. Programs that use machine function splitting care most about the performance of hot code at the expense of the performance of cold code, so we prioritize minimizing hot code size. Here's a breakdown of the cases: Hot -> Cold [x16 is free across the branch] Do nothing; let the linker relax the branch. Cold -> Hot [x16 is free across the branch] Do nothing; let the linker relax the branch. Hot -> Cold [x16 used across the branch, but there is a free register] Spill x16; let the linker relax the branch. Spilling requires fewer instructions than manually inserting an indirect branch. Cold -> Hot [x16 used across the branch, but there is a free register] Manually insert an indirect branch. Spilling would require adding a restore block in the hot section. Hot -> Cold [No free regs] Spill x16; let the linker relax the branch. Cold -> Hot [No free regs] Spill x16 and put the restore block at the end of the hot function; let the linker relax the branch. Ex: [Hot section] func.hot: ... hot code... func.restore: ... restore x16 ... B func.hot [Cold section] func.cold: ... spill x16 ... B func.restore Putting the restore block at the end of the function instead of just before the destination increases the cost of executing the store, but it avoids putting cold code in the middle of hot code. Since the restore is very rarely taken, this is a worthwhile tradeoff. Differential Revision: https://reviews.llvm.org/D156767
-
Dave Lee authored
Instead of hard-coding the name `lldbDataFormatters`, use `__name__` to get the module's name. This allows the formatters to be loaded from any path, with any filename.
-
Shilei Tian authored
Based on https://en.cppreference.com/w/c/memory/aligned_alloc, the `size` is supposed to be a multiple of `alignment`, and it is implementation defined behavior if not. We have a non-conformant use in `kmp_barrier.h` when allocating distribute barrier. The size of the barrier is 576 and the alignment is `4*CACHE_LINE`, which is 256 on most systems. Apparently it works perfectly fine for Linux and Intel-based Mac, but not for Apple Silicon based Mac. Fix #63194.
-
Jan Svoboda authored
This reverts commit ddbcc10b. The 'clang-tidy/checkers/misc/header-include-cycle.cpp' test started failing on Windows: https://lab.llvm.org/buildbot/#/builders/216/builds/26855.
-
Alexey Bataev authored
-
Florian Mayer authored
This reverts commit 11171d81. Broke ASAN bot.
-
Aaron Ballman authored
This addresses issues found by: https://lab.llvm.org/buildbot/#/builders/92/builds/50285
-