- Sep 07, 2023
-
-
Qi Hu authored
Differential Revision: https://reviews.llvm.org/D159129
-
Felipe de Azevedo Piovezan authored
The DWARFLinker library has code to identify ObjC selector names, which is used by the debug linker to generate accelerator table entries. In the future, we would like the DWARF verifier to also have access to such code, so that it can identify these names when verifying accelerator tables (e.g. debug_names). This patch follows the same intent of D155723, where we also moved code generating simplified template names. Since this is moving code around and changing the log, we also replace raw pointer manipulation with the more expressive StringRef::{drop_front,take_front,...} methods. We also change a test so that it verifies its output, and that requires having dsymutil not write to stdout. Differential Revision: https://reviews.llvm.org/D158980 -
Dmitri Gribenko authored
-
Phoebe Wang authored
Revert "[X86][RFC] Add new option `-m[no-]evex512` to disable ZMM and 64-bit mask instructions for AVX512 features" This reverts commit 7dd48cc2. Causing buildbot failure.
-
Michael Maitland authored
Some people may not have access to `gh` or may prefer to use `git` and the GitHub web interface to make a PR. This patch adds an example of making a PR using this approach.
-
Paul T Robinson authored
The test was looking only for the bitcode writer pass; it should check the full pipeline to make sure the choice is as intended.
-
Phoebe Wang authored
[X86][RFC] Add new option `-m[no-]evex512` to disable ZMM and 64-bit mask instructions for AVX512 features This is an alternative of D157485 and a pre-feature to support AVX10. AVX10 Architecture Specification: https://cdrdv2.intel.com/v1/dl/getContent/784267 AVX10 Technical Paper: https://cdrdv2.intel.com/v1/dl/getContent/784343 RFC: https://discourse.llvm.org/t/rfc-design-for-avx10-feature-support/72661 Based on the feedbacks from LLVM and GCC community, we have agreed to start from supporting `-m[no-]evex512` on existing AVX512 features. The option `-mno-evex512` can be used with `-mavx512xxx` to build binaries that can run on both legacy AVX512 targets and AVX10-256. There're still arguments about what's the expected behavior when this option as well as `-mavx512xxx` used together with `-mavx10.1-256`. We decided to defer the support of `-mavx10.1` after we made consensus. Or furthermore, we start from supporting AVX10.2 and not providing any AVX10.1 options. Reviewed By: RKSimon, skan Differential Revision: https://reviews.llvm.org/D159250
-
Mikhail R. Gadelha authored
This test creates a time_t variable and assigns 0xfffffffffe1d7b01 which overflows the maximum time_t value for 64-bit time_t, then checks if the syscall fails and errno was set. In systems with sizeof(time_t) == 4, the value is narrowed down to 0xfe1d7b01 and doesn't overflow, causing the test to fail. This patch then disables the test on systems with 32 bits long time_t.
-
Stefan Pintilie authored
This patch tries to catch a codegen opportunity where the rotate and mask can be merged into a single RLDCL instruction. Reviewed By: lei, amyk Differential Revision: https://reviews.llvm.org/D158328
-
Mikhail R. Gadelha authored
This patch fixes the overflow check in update_from_seconds, used by gmtime, gmtime_r and mktime. In update_from_seconds, total_seconds is a int64_t and the previous overflow check for when sizeof(time_t) == 4 would check if it was < 0x80000000 and > 0x7FFFFFFF, however, this check would cause the following issues: 1. Valid negative numbers would be discarded, e.g., -1 is 0xffffffffffffffff as a int64_t, outside the range of the overflow check. 2. Some valid positive numbers would be discarded because the hex constants were being implicitly converted to int64_t, e.g., 0x80000000 would be implicitly converted to 2147483648, instead of -2147483648. The fix for both cases was to static_cast total_seconds and the constants to time_t if sizeof(time_t) == 4. The behaviour is not changed in systems with sizeof(time_t) == 8. --------- Signed-off-by:Mikhail R. Gadelha <mikhail@igalia.com>
-
Nuno Lopes authored
-
Vladislav Dzhidzhoev authored
It tackles some regressions introduced in https://reviews.llvm.org/D144670.
-
pvanhout authored
Expensive-checks was failing on it.
-
Fabian Mora authored
Currently, the NVPTX tool compilation path only calls `ptxas`; thus, the GPU running the binary must be an exact match of the arch of the target, or else the runtime throws an error due to the arch mismatch. This patch adds a call to `fatbinary`, creating a fat binary with the cubin object and the PTX code, allowing the driver to JIT the PTX at runtime if there's an arch mismatch.
-
Viktoriia Bakalova authored
Differential Revision: https://reviews.llvm.org/D157610
-
kiranchandramohan authored
To check whether we have already generated a threadprivate operation, we have to seek over the HLFIR declare in the HLFIR flow.
-
Pierre van Houtryve authored
This inst lowers to a normal v_mov_b32 so it's not zero-sized, but has a size of 4. Solves SWDEV-416337
-
Tuan Chuong Goh authored
Combine any funnel shift with a shift amount of 0 to a copy. Modulo is applied to shift amount if it is larger than the instruction's bitwidth. Differential Revision: https://reviews.llvm.org/D157591
-
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).
-