- Dec 05, 2023
-
-
hev authored
This adds a per-global code model attribute, which can override the target's code model to access global variables. Suggested-by:
Arthur Eubanks <aeubanks@google.com> Link: https://discourse.llvm.org/t/how-to-best-implement-code-model-overriding-for-certain-values/71816 Link: https://discourse.llvm.org/t/rfc-add-per-global-code-model-attribute/74944
-
Matthias Springer authored
When two `complex.bitcast` ops are folded and the resulting bitcast is a non-complex -> non-complex bitcast, an `arith.bitcast` should be generated. Otherwise, the generated `complex.bitcast` op is invalid. Also remove a pattern that convertes non-complex -> non-complex `complex.bitcast` ops to `arith.bitcast`. Such `complex.bitcast` ops are invalid and should not appear in the input. Note: This bug can only be triggered by running with `-debug` (which will should intermediate IR that does not verify) or with `MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS` (#74270).
-
Lu Weining authored
psABI v2.20 added R_LARCH_CALL36 and removed R_LARCH_DELETE / R_LARCH_CFA. R_LARCH_CALL36 was designed for function call on medium code model where the 2 instructions (pcaddu18i + jirl) must be adjacent.
-
Johannes Doerfert authored
We accessed the `Devices` container most of the time while holding the RTLsMtx, but not always. Sometimes we used the mutex for the size query, but then accessed Devices again unguarded. From now we properly encapsulate the container in a ProtectedObj which ensures exclusive accesses. We also hide the "isReady" part in the `getDevice` accessor and use an `llvm::Expected` to allow to return errors.
-
zhongyunde 00443407 authored
When all the large const offsets masked with the same value from bit-12 to bit-23. Fold add x8, x0, #2031, lsl #12 add x8, x8, #960 ldr x9, [x8, x8] ldr x8, [x8, #2056] into add x8, x0, #2031, lsl #12 ldr x9, [x8, #960] ldr x8, [x8, #3016]
-
zhongyunde 00443407 authored
-
Brad Smith authored
lldb/source/Host/netbsd/HostInfoNetBSD.cpp:48:8: warning: unused variable 'osrev_str' [-Wunused-variable] char osrev_str[12]; ^ 1 warning generated. -
michaelrj-google authored
The printf float to string conversion functions had some implicit integer conversion warnings on gcc. This patch adds explicit casts to these places.
-
Owen Pan authored
Re-implement ObjCPropertyAttributeOrder using std::set for sorting and removing duplicates. (We can't use llvm::SmallSet because it's unordered.)
-
stephenpeckham authored
This works around an AIX assembler and linker bug. If the -fno-integrated-as and -frecord-command-line options are used but there's no actual code in the source file, the assembler creates an object file with only an .info section. The AIX linker rejects such an object file.
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Krzysztof Parzyszek authored
``` /usr/bin/ld: CMakeFiles/obj.MLIRMeshDialect.dir/MeshOps.cpp.o: in function `mlir::mesh::BroadcastOp::print(mlir::OpAsmPrinter&) [clone .localalias]': MeshOps.cpp:(.text._ZN4mlir4mesh11BroadcastOp5printERNS_12OpAsmPrinterE+0x2 d3): undefined reference to `mlir::printDynamicIndexList(mlir::OpAsmPrinter&, mlir::Operation*, mlir::OperandRange, llvm::ArrayRef<long>, mlir::TypeRange, llvm::ArrayRef<bool>, mlir::AsmParser::Delimiter)' ```
-
Juergen Ributzka authored
This reverts commit fef18543.
-
Michael Maitland authored
The Arithmetic, Load, and Store sequencers can accept instructions in parallel. The PipeV blocked that from happening since it became busy if any of the sequencers were busy. This change allows the sequencers to accept instructions in parallel. The VCQ accepts instructions from the the A Pipe and holds them until the vector unit is ready to dequeue them. The unit dequeues up to one instruction per cycle, in order, as soon as the sequencer for that type of instruction is avaliable. This resource is meant to be used for 1 cycle by all vector instructions, to model that only one vector instruction may be dequed at a time. The actual dequeueing into the sequencer is modeled by the VA, VL, and VS sequencer resources below. Each of them will only accept a single instruction at a time and remain busy for the number of cycles associated with that instruction.
-
Craig Topper authored
This should say "Assume that VL output is <= 65536".
-
Jorge Gorbe Moya authored
-
Schrodinger ZHU Yifan authored
According to https://lab.llvm.org/buildbot/#/builders/163/builds/48002, the generic build on HashTable fails with two major issues with `werror`: 1. warnings on `error: suggest braces around initialization of subobject`. 2. `__support/HashTable` tests are built regardless of its entrypoints` This PR attempts to fix such issues.
-
Alexander Yermolovich authored
Enables Type Units with DWARF5 accelerator tables for split dwarf. It is still under discussion what is the best way to implement support for de-duplication in DWP. This will be in follow up PR.
-
Juergen Ributzka authored
CodeGen options do not affect the AST, so they usually can be ignored. The only exception to the rule is when a PCM is created with `-gmodules`. In that case the Clang module format is switched to object file container and contains also serialized debug information that can be affected by debug options. There the following approach was choosen: 1.) Split out all the debug options into a separate `DebugOptions.def` file. The file is included by `CodeGenOptions.def`, so the change is transparent to all existing users of `CodeGenOptions.def`. 2.) Reset all CodeGen options, but excluding affecting debug options. 3.) Conditionally reset debug options that can affect the PCM. This fixes rdar://113135909. -
Owen Pan authored
This is a rework of #74176, which erroneously changed the default clang-format filename (`clang-format`, `clang-format.exe`, etc.) to an absolute pathname. Instead, we should do that only if the name is a pathname, e.g. `./clang-format`, `llvm-project/build/bin/clang-format.exe`, etc. See also https://github.com/llvm/llvm-project/pull/74176#issuecomment-1837921351.
-
Evgenii Stepanov authored
free(nullptr) is guaranteed by ISO and POSIX to be a no-op, we should not pay for the overhead of maybeInit() in this case. Additionally, Bionic calls free(nullptr) before the allocator settings are finalized. Scudo should not run allocator initialization at that time. Doing so causes various bad things to happen, like mapping primary regions with the wrong PROT_MTE setting.
-
Vlad Serebrennikov authored
-
Martin Storsjö authored
This redoes the fix from 3ab6209a differently, without the unwanted effect of preserving unnecessary `__imp_` prefixed symbols. If the referencing object is a regular object, the `__imp_` symbol will have `isUsedInRegularObj` set on it from that already. If the referencing object is an LTO object, we set `isUsedInRegularObj` for any symbol starting with `__imp_`. If the object file defining the `__imp_` symbol is a regular object, the `isUsedInRegularObj` flag has no effect. If it is an LTO object, it causes the symbol to be preserved.
-
madanial0 authored
The `llvm::sys::fs::getMainExecutable(nullptr, nullptr)` is not able to obtain the correct executable path on AIX without Argv0 due to the lack of a current process on AIX's `proc` filesystem. This causes a build failure on AIX as intrinsic module directory is missing. --------- Co-authored-by:Mark Danial <mak.danial@ibm.com>
-
Nick Desaulniers authored
Fixes: libc/src/__support/float_to_string.h:551:48: error: conversion from ‘long unsigned int’ to ‘int32_t’ {aka ‘int’} may change value [-Werror=conversion] 551 | const int32_t shift_amount = SHIFT_CONST + (-exponent - IDX_SIZE * idx); | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Observed in gcc fullbuilds. IDX_SIZE is a size_t (aka 'long unsigned int'), but has the value 128, so the expression is undergoing implicit promotion. Link: https://lab.llvm.org/buildbot/#/builders/250/builds/14891 -
Youngsuk Kim authored
Opaque ptr cleanup effort
-
Craig Topper authored
-
Kazu Hirata authored
The header file has been deprecated since: commit f09cf34d Author: Archibald Elliott <archibald.elliott@arm.com> Date: Tue Dec 20 10:24:02 2022 +0000
-
Schrodinger ZHU Yifan authored
The test cases of mincore require getting correct page size from OS. As `sysconf` is not functioning correctly, these patches are implemented in a somewhat confusing way. We revert such patches and will reintroduce mincore after we correct sysconf. This reverts 54878b80, 985c0d19 and 418a3a45.
-
Nico Weber authored
-
Louis Dionne authored
In preparation for the moment when we'll clang-format the whole code base, this patch adds a script that can be used to rebase patches across clang-format changes mechanically, without requiring manual intervention. See https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all.
-
Louis Dionne authored
This is in preparation for clang-formatting the whole code base. These annotations are required either to avoid clang-format bugs or because the manually formatted code is significantly more readable than the clang-formatted alternative. All in all, it seems like very few annotations are required, which means that clang-format is doing a very good job in most cases.
-
Brad Smith authored
-
Florian Hahn authored
Tests for support for the disjoint flag added in #72583.
-
Seth Brenith authored
As [scottmcm described](https://discourse.llvm.org/t/conv-c-and-conv-preservemost-mix-badly-on-windows-x64/73054), the `preserve_most` calling convention, as currently implemented, is a bad fit for Windows on x64. The intent of `preserve_most` is "to make the code in the caller as unintrusive as possible", but `preserve_most` causes the caller to spill and restore ten SIMD registers. It would be preferable to make `preserve_most` treat the XMM registers however the C calling convention does on the target operating system. This is a breaking change, but the documentation indicates that `preserve_most` is still experimental, so I believe that ABI compatibility is not yet a requirement.
-
Kevin Frei authored
I've plumbed the LLVM DebugInfoD client into LLDB, and added automatic downloading of DWP files to the SymbolFileDWARF.cpp plugin. If you have DEBUGINFOD_URLS set to a space delimited set of web servers, LLDB will try to use them as a last resort when searching for DWP files. If you do *not* have that environment variable set, nothing should be changed. There's also a setting, per @clayborg 's suggestion, that will override the environment variable, or can be used instead of the environment variable. The setting is why I also needed to add an API to the llvm-debuginfod library ### Test Plan: Suggestions are welcome here. I should probably have some positive and negative tests, but I wanted to get the diff up for people who have a clue what they're doing to rip it to pieces before spending too much time validating the initial implementation. --------- Co-authored-by:
Kevin Frei <freik@meta.com> Co-authored-by:
Alex Langford <nirvashtzero@gmail.com>
-