- Jun 19, 2023
-
-
Serge Pavlov authored
-
Simon Pilgrim authored
This function was lifted from fast-isel, and still referred to the Instruction::SRem/URrem opcodes, instead of the G_SREM/G_UREM opcodes. But it turns out these aren't necessary at all as only the G_SREM/G_UREM codepaths will use the AH register for DivRemResultReg anyhow.
-
Simon Pilgrim authored
-
- Jun 18, 2023
-
-
Serge Pavlov authored
A new builtin function __builtin_isfpclass is added. It is called as: __builtin_isfpclass(<floating point value>, <test>) and returns an integer value, which is non-zero if the floating point argument falls into one of the classes specified by the second argument, and zero otherwise. The set of classes is an integer value, where each value class is represented by a bit. There are ten data classes, as defined by the IEEE-754 standard, they are represented by bits: 0x0001 (__FPCLASS_SNAN) - Signaling NaN 0x0002 (__FPCLASS_QNAN) - Quiet NaN 0x0004 (__FPCLASS_NEGINF) - Negative infinity 0x0008 (__FPCLASS_NEGNORMAL) - Negative normal 0x0010 (__FPCLASS_NEGSUBNORMAL) - Negative subnormal 0x0020 (__FPCLASS_NEGZERO) - Negative zero 0x0040 (__FPCLASS_POSZERO) - Positive zero 0x0080 (__FPCLASS_POSSUBNORMAL) - Positive subnormal 0x0100 (__FPCLASS_POSNORMAL) - Positive normal 0x0200 (__FPCLASS_POSINF) - Positive infinity They have corresponding builtin macros to facilitate using the builtin function: if (__builtin_isfpclass(x, __FPCLASS_NEGZERO | __FPCLASS_POSZERO) { // x is any zero. } The data class encoding is identical to that used in llvm.is.fpclass function. Differential Revision: https://reviews.llvm.org/D152351 -
Yingwei Zheng authored
Fixes issue https://github.com/llvm/llvm-project/issues/63365 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D153194
-
luxufan authored
-
Ivan Butygin authored
Add pass to uplift from arith mulf + addf ops to math.fma if fastmath flags allow it. Differential Revision: https://reviews.llvm.org/D152633
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Paul Walker authored
Consider: add(pg, a, mul_u(pg, b, c)) Although the multiply's inactive lanes are undefined, they don't contribute to the final result. The overall result of the inactive lanes come from "a" and thus the above is another form of mla rather than mla_u.
-
Paul Walker authored
-
Paul Walker authored
-
AMS21 authored
We now display a simple note if the reason is that the used class does not support move semantics. This fixes llvm#62550 Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D153220
-
AMS21 authored
For a declaration the `FunctionDecl` begin location does not include the template parameter lists, but for some reason if you have a separate definitions to the declaration the begin location does include them. With this patch we now correctly handle that case. This fixes llvm#62746 Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D153218
-
LLVM GN Syncbot authored
-
AMS21 authored
As discussed in the https://reviews.llvm.org/D148697 review. Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D153198
-
NAKAMURA Takumi authored
-
Youngsuk Kim authored
* Add `Address::withElementType()` as a replacement for `CGBuilderTy::CreateElementBitCast`. * Partial progress towards replacing `CreateElementBitCast`, as it no longer does what its name suggests. Either replace its uses with `Address::withElementType()`, or remove them if no longer needed. * Remove unused parameter 'Name' of `CreateElementBitCast` Reviewed By: barannikov88, nikic Differential Revision: https://reviews.llvm.org/D153196
-
-
-
Krzysztof Parzyszek authored
-
LLVM GN Syncbot authored
-
Nico Weber authored
-
Fangrui Song authored
For a function not in an IR COMDAT, currently we place it into a nodeduplicate IR COMDAT so that its text section and its associated .pseudo_probe section will be in the same section group, which can be retained or discarded by the linker as a unit. However, the section group wastes space. After D153189 uses SHF_LINK_ORDER to ensure a .pseudo_probe section will be discarded when its associated text section is discarded, we can remove the nodeduplicate IR change. In the following example, the .pseudo_probe associated with .text.f is discarded as expected. ``` clang -c -ffunction-sections -fpseudo-probe-for-profiling -xc =(printf 'void _start(){} void f(){}') -o a.o ld.lld --gc-sections --print-gc-sections a.o ``` Reviewed By: hoy Differential Revision: https://reviews.llvm.org/D153191 -
Owen Pan authored
-
Brad Smith authored
OpenBSD commit for reference: https://github.com/openbsd/src/commit/7b407c478fab53a6d9a091887c828c3f7b3f8b46
-
Florian Hahn authored
The test fails SCEV verification, which cause the expensive check bots to fail. Always run verification and mark as XFAIL until fixed.
-
Fangrui Song authored
to simplify code near __tls_get_addr parsing.
-
Uday Bondhugula authored
Add support for the bare pointer calling convention in the gpu-to-llvm pass. This wasn't being exposed and is needed when GPU-compiled MLIR is to be called with this convention. Reviewed By: krzysz00 Differential Revision: https://reviews.llvm.org/D152477
-
Florian Hahn authored
This reverts commit abfeda5a. and fe19036e. The added assertion triggers during clang bootstrap builds. Revert while I investigate.
-
Jeff Niu authored
Differential Revision: https://reviews.llvm.org/D153203
-
Florian Hahn authored
Add test for LSR miscompile.
-
- Jun 17, 2023
-
-
Felipe de Azevedo Piovezan authored
-
Hui authored
- This was to make implementing jthread easier and requested in https://reviews.llvm.org/D151559 Differential Revision: https://reviews.llvm.org/D151792
-
Prajwal S N authored
It was previously present in the inline code block and did not work as a hyperlink. Reviewed By: yassingh Differential Revision: https://reviews.llvm.org/D153061
-
Florian Hahn authored
-
Florian Hahn authored
GenerateTruncates at the moment creates extends/truncates for post-inc uses of normalized expressions. For example, if an add rec of the form {1,+,-1} is used outside the loop, the normalized form will use {1,+,-1} instead of {0,+,-1}. When naively sign-extending the normalized expression, it will get extended incorrectly to {1,+,-1} for the wider type, if the backedge-taken count of the loop is 1. To address this, the patch updates GenerateTruncates to check if the LSRUse contains any fixups with PostIncLoops. If that's the case, first de-normalize the expression, then perform the extend/truncate, then normalize again. There may be other places where similar checks are needed and the helper can be generalized for those cases. I'd not be surprised if other subtle mis-compiles are caused by this. Fixes #38847. Fixes #58039. Fixes #62852. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D153004 -
Florian Hahn authored
-
Corentin Jabot authored
-
Fangrui Song authored
* Add the SHF_LINK_ORDER flag so that the .pseudo_probe section is discarded when the associated text section is discarded. * Add unique ID so that with `clang -ffunction-sections -fno-unique-section-names`, there is one separate .pseudo_probe for each text section (disambiguated by `.section ....,unique,id` in assembly) The changes allow .pseudo_probe GC even if we don't place instrumented functions in an IR comdat (see `getOrCreateFunctionComdat` in SampleProfileProbe.cpp). Reviewed By: hoy Differential Revision: https://reviews.llvm.org/D153189
-