- Sep 07, 2023
-
-
Björn Schäpers authored
When we are in an expression, it has to be a binary operator and not pointer or reference.
-
Ivan Butygin authored
Return poison from foldBinary/unary if argument(s) is poison. Add ub dialect as dependency to affected dialects (arith, math, spirv, shape). Add poison materialization to dialects. Add tests for some ops from each dialect. Not all affected ops are covered as it will involve a huge copypaste. Differential Revision: https://reviews.llvm.org/D159013
-
Stanislav Mekhanoshin authored
It is copied from the pseudo anyway.
-
Vladislav Dzhidzhoev authored
It introduces minor regression in arm64-vcvt_f.ll, which will be fixed later.
-
Ricardo Jesus authored
Model some register-to-register move operations and move immediate operations as "zero latency moves", as described in the Software Optimisation Guide (SOG), §4.12: https://developer.arm.com/documentation/PJDOC-466751330-593177/r0p2/ Differential Revision: https://reviews.llvm.org/D159443
-
Christian Sigg authored
-
Rainer Orth authored
`clang -fno-integrated-as` doesn't currently work on Solaris: it doesn't even select between 32 and 64-bit objects. Besides, Solaris has both the native assembler (`/usr/bin/as`) and the GNU assembler (`/usr/bin/gas` resp. `/usr/gnu/bin/as`). The native sparc and x86 assemblers aren't compatible with `clang`'s assembler syntax to varying degrees, and the command line options for `as` and `gas` are completely different. Therefore this patch chooses to always use `gas` on Solaris, using `gnutools::Assembler::ConstructJob` to pass the correct options. Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and `x86_64-pc-linux-gnu`.
-
Jay Foad authored
It is easy to check the returned register for validity so there is no need to return a separate boolean flag.
-
Chuanqi Xu authored
Previous implementation of the warning to use `-fmodule-file=<BMIPath>` for C++20 Modules is not straightforward and it is problematic in case we read the BMIPath by writing tools based clang components. This patch refactors it with a simple and direct style.
-
Congcong Cai authored
Fixed #65055 For normal type, typedef is from typedef to the end of original type, but for function pointer it is from typedef to the end. So it needs to consider alias name length for normal type.
-
Mohamed Atef authored
Support signed multiplication Support unsigned multiplication Differential Revision: https://reviews.llvm.org/D159406
-
Jianjian Guan authored
-
David Spickett authored
Fixes #28667 There's a bunch of ways to end up building split DWARF where the DWO file is not next to the program file. On top of that you may distribute the program in various ways, move files about, switch machines, flatten the directories, etc. This change adds a few more strategies to find DWO files: * Appending the DW_AT_COMP_DIR and DWO name to all the debug search paths. * Appending the same to the binary's dir. * Appending the DWO name (e.g. a/b/foo.dwo) to all the debug search paths. * Appending the DWO name to the binary's location. * Appending the DWO filename (e.g. foo.dwo) to the debug search paths. * Appending the DWO filename to the binary's location. They are applied in that order and some will be skipped if the DW_AT_COMP_DIR is relative or absolute, same for the DWO name (though that seems to always be relative). This uses the setting target.debug-file-search-paths, which is used for DWP files already. The added tests likely do no...
-
Chuanqi Xu authored
-
Thomas authored
-
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.
-