- Feb 21, 2024
-
-
Noah Goldstein authored
-
Schrodinger ZHU Yifan authored
fix the issue that `__has_builtin` is undefined on some non-clang targets.
-
Schrodinger ZHU Yifan authored
See docs at - https://gustedt.gitlabpages.inria.fr/c23-library/#stdckdint - https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf (Ch7.10) Compiler header: - https://github.com/llvm/llvm-project/blob/450462cbaceddf57812ce15b5135b17f65a77654/clang/lib/Headers/stdckdint.h - New version of GCC (https://github.com/gcc-mirror/gcc/blob/cd503b0616462445381a8232fb753239d319af76/gcc/ginclude/stdckdint.h) also provides this.
-
Jeremy Morse authored
It turns out there's a pathway for Functions to be inserted into modules without having the "New" debug-info flag set correctly, which this patch fixes. Sadly there isn't a Module::insert method to instrument out there, everyone touches the list directly. This fix exposes a path where such functions are produced in the outliner in the wrong mode; requiring a fix there to correctly drop RemoveDIs-mode debug-info. This is covered by test/DebugInfo/AArch64/ir-outliner.ll
-
Orlando Cazalet-Hyams authored
Patch 1 of 3 to add llvm.dbg.label support to the RemoveDIs project. The patch stack adds a new base class -> 1. Add DbgRecord base class for DPValue and the not-yet-added DPLabel class. 2. Add the DPLabel class. 3. Enable dbg.label conversion and add support to passes. Patches 1 and 2 are NFC. In the near future we also will rename DPValue to DbgVariableRecord and DPLabel to DbgLabelRecord, at which point we'll overhaul the function names too. The name DPLabel keeps things consistent for now.
-
- Feb 20, 2024
-
-
Schrodinger ZHU Yifan authored
Add `atomic_signal_fence`. This will be useful in https://gustedt.gitlabpages.inria.fr/c23-library/#memset_explicit.
-
Simon Pilgrim authored
If the vXi8 add(X,Y) is guaranteed not to overflow then we can push the addition though the psadbw nodes (being used for reduction) and only need a single psadbw node. Noticed while working on CTPOP reduction codegen
-
Simon Pilgrim authored
[X86] combineEXTRACT_SUBVECTOR - share the same SDLoc argument instead of recreating it over and over again.
-
Valentin Clement (バレンタイン クレメン) authored
IV variable are privatized during acc loop lowering. An hlfir.declare operation is added when mapping the symbol to the new private value. In order to avoid using multiple value in the acc.loop region, we map the symbol to the result of the hlfir.declare operation inserted.
-
cmtice authored
Currently there are two versions of llvm::unique, one that requires a predicate, and is in STLExtras.h; and one that does not require a predicate, and is in GenericUniformityImpl.h. This moves the one from GenericUniformityImp.h to STlExtras.h, so they are both together, and can both be easily called from other places inside LLVM.
-
Yingwei Zheng authored
This patch adds some tests for https://github.com/llvm/llvm-project/pull/82344.
-
Yingwei Zheng authored
This patch extends [D36234](https://reviews.llvm.org/D36234) to handle `zext nneg` instructions. I found this while adding support for cast instructions in `getFreelyInvertedImpl`.
-
Sander de Smalen authored
This patch removes the `-reverse-csr-restore-seq` option from AArch64FrameLowering, since this is no longer used.
-
stephenpeckham authored
The section headers for XCOFF files have a subtype flag for Dwarf sections. This PR updates obj2yaml, yaml2obj, and llvm-readobj so that they recognize the subtype.
-
Benjamin Maxwell authored
This unrolls n-D vector.interleave ops like: ```mlir vector.interleave %i, %j : vector<6x3xf32> ``` To a sequence of 1-D operations: ```mlir %i_0 = vector.extract %i[0] %j_0 = vector.extract %j[0] %res_0 = vector.interleave %i_0, %j_0 : vector<3xf32> vector.insert %res_0, %result[0] : // ... repeated x6 ``` The 1-D operations can then be directly lowered to LLVM. Depends on: #80966
-
Aaron Ballman authored
This adds predefined formatting macros in C23 mode for printing unsigned integers in binary format (e.g, UINT_FAST64_FMTB). These are used to implement the PRIb (et al) macros in inttypes.h Fixes https://github.com/llvm/llvm-project/issues/81896 (Was previously reviewed in [82037](https://github.com/llvm/llvm-project/pull/82037), this is fixing some failures found post-commit.)
-
Florian Hahn authored
widenIVUse may hoist a wide induction increment and introduce new uses, but does not recompute the wrap flags. In some cases this can make the new uses of the wide IV inc more poisonous. Update the code to recompute flags if needed when hoisting an IV. If both the narrow and wide IV increment's flags match and we can re-use the flags from the increments, there's no need to recompute the flags, as the replacement won't make the new uses of the wide IV's increment more poisonous. Note that this also updates a stale comment which claimed that the widen increment is only used if it dominates the new use. The helper should also be used to guard the code added in da437330, which I am planning on doing separately once the helper lands. Fixes https://github.com/llvm/llvm-project/issues/82243.
-
Nikita Popov authored
-
Shilei Tian authored
-
Timm Bäder authored
There used to be some diagnostic differences between the new interpreter and the old one.
-
Marius Brehler authored
As part of the renaming the Standard dialect to Func dialect, *support* for the `func.constant` operation was added to the emitter. However, the emitter cannot emit function types. Hence the emission for a snippet like ``` %0 = func.constant @myfn : (f32) -> f32 func.func private @myfn(%arg0: f32) -> f32 { return %arg0 : f32 } ``` failes with `func.mlir:1:6: error: cannot emit type '(f32) -> f32'`. This removes `func.constant` from the emitter. -
Jay Foad authored
64-bit SDWA encodings have to be checked first because their first 32 bits are a special case of the corresponding 32-bit non-SDWA encoding of the same instruction. But all 64-bit encodings are checked first, so we don't need special handling for SDWA.
-
Vlad Serebrennikov authored
This patch implements `__is_layout_compatible` intrinsic, which supports `std::is_layout_compatible` type trait introduced in C++20 ([P0466R5](https://wg21.link/p0466r5) "Layout-compatibility and Pointer-interconvertibility Traits"). Name matches GCC and MSVC intrinsic. Basically, this patch exposes our existing machinery for checking for layout compatibility and figuring out common initial sequences. Said machinery is a bit outdated, as it doesn't implement [CWG1719](https://cplusplus.github.io/CWG/issues/1719.html) "Layout compatibility and cv-qualification revisited" and [CWG2759](https://cplusplus.github.io/CWG/issues/2759.html) "`[[no_unique_address]` and common initial sequence". Those defect reports are considered out of scope of of this PR, but will be implemented in subsequent PRs. Partially addresses #48204
-
Nikita Popov authored
Remove the `-freroll-loops` flag, which has not had any effect since the migration to the new pass manager. The underlying pass has been removed entirely in #80972 due to lack of maintenance and known bugs. Fixes https://github.com/llvm/llvm-project/issues/59065.
-
LLVM GN Syncbot authored
-
Krasimir Georgiev authored
This reverts commit 0e6a48c3. Temporary revert as it causes bad codegen: https://github.com/llvm/llvm-project/pull/82011#issuecomment-1951426107
-
Jay Foad authored
AMDGPUDisassembler::getInstruction tries decoding instructions using different DecoderTables in a confusing order: first 96-bit instructions, then some 64-bit, then 32-bit, then some more 64-bit. This patch changes it to always try longer encodings first. The motivation is to make getInstruction easier to understand, and to pave the way for combining some 64-bit tables that do not need to be separate.
-
Nikita Popov authored
Extend the transform added in https://github.com/llvm/llvm-project/pull/76458 to also handle unsigned division. X exact/ Y * Y == X holds independently of whether the division is signed or unsigned. Proofs: https://alive2.llvm.org/ce/z/wFd5Ec
-
Ivan Kosarev authored
Using OtherPredicates for True16 predicates is often problematic due to interference with other kinds of predicates, particularly when this overrides predicates inherited from pseudo instructions.
-
Florian Hahn authored
Test for https://github.com/llvm/llvm-project/issues/82243.
-
Timm Bäder authored
If they aren't we need to load from the pointer the Store op leaves on the stack.
-
Timm Bäder authored
-
David Green authored
This combine transforms an unmerge where only the first element is used into a truncate. That works OK for scalar but for vector needs to insert a bitcast to integers, perform the truncate then bitcast back to vectors. This generates more awkward code than using an Unmerge.
-
Timm Bäder authored
We need to limit the shift width to the type bitwidth, then do the shift and report success, but still diagnose what we limited the shiftwidth.
-
Nikita Popov authored
-
Balázs Kéri authored
Continuation of commit 42b5037c, apply changes to the remaining functions. Code for function `fflush` was not changed, because it is more special compared to the others.
-
Thomas Preud'homme authored
-
Jannik Silvanus authored
This option makes the lint pass abort if errors were found. This is intended to help lit testing where the lint pass is used and lint errors should be detected. Previously, this required checking for non-empty stderr.
-
Luke Lau authored
On Python 3.12 we now get a warning in common.py: llvm/utils/UpdateTestChecks/common.py:488: SyntaxWarning: invalid escape sequence '\s' This fixes it by using a raw string literal, see https://github.com/llvm/llvm-project/pull/78036 and https://docs.python.org/3/library/re.html
-
Timm Baeder authored
In C++, we get a ComplexToBool cast, but we might not in C.
-