- Feb 22, 2024
-
-
Vitaly Buka authored
This reverts commit 67f9c35f.
-
Vitaly Buka authored
-
Zixu Wang authored
…(#79879)" This reverts commit b40d5b1b. The target OS macros work is included in the 18.x release. Move the release note to the release branch (https://github.com/llvm/llvm-project/pull/80044).
-
Joseph Huber authored
Summary: Currently, doing `ninja install` will fail in fullbuild mode due to the startup utilities not being built by default. This was hidden previously by the fact that if tests were run, it would build the startup utilities and thus they would be present. This patch solves this issue by making the `libc-startup` target a dependncy on the final library. Furthermore we simply factor out the library install directory into the base CMake directory next to the include directory handling. This change makes the `crt` files get installed in `lib/x86_64-unknown-linu-gnu` instead of just `lib`. This fixes an error I had where doing a runtimes failed to install its libraries because the install step always errored.
-
Cyndy Ishida authored
-
David Majnemer authored
We can avoid masking completely as it is OK (and probably preferable) to bring over some of the existant NaN payload.
-
Florian Mayer authored
depot can be null if allocation_ring_buffer_size=0
-
David Majnemer authored
We didn't set the exponent field, resulting in tiny numbers instead of NaNs.
-
Jorge Gorbe Moya authored
-
Shubham Sandeep Rastogi authored
-
Justin Stitt authored
Clang has a `signed-integer-overflow` sanitizer to catch arithmetic overflow; however, most of its instrumentation [fails to apply](https://godbolt.org/z/ee41rE8o6) when `-fwrapv` is enabled; this is by design. The Linux kernel enables `-fno-strict-overflow` which implies `-fwrapv`. This means we are [currently unable to detect signed-integer wrap-around](https://github.com/KSPP/linux/issues/26). All the while, the root cause of many security vulnerabilities in the Linux kernel is [arithmetic overflow](https://cwe.mitre.org/data/definitions/190.html ). To work around this and enhance the functionality of `-fsanitize=signed-integer-overflow`, we instrument signed arithmetic even if the signed overflow behavior is defined. Co-authored-by:
Justin Stitt <justinstitt@google.com>
-
Alexander Richardson authored
This re-lands cc0065a7 in a way that keeps existing targets working. --------- Original commit message: #68132 ended up removing __multc3 & __divtc3 from compiler-rt library builds that have QUAD_PRECISION but not TF_MODE due to missing int128 support. I added support for QUAD_PRECISION to use the native hex float long double representation. --------- Co-authored-by:
Sean Perry <perry@ca.ibm.com>
-
Florian Hahn authored
With vector libraries, we may vectorize calls with void return types. Do not add those values to the state; they can never be accessed.
-
mlevesquedion authored
I believe the semantics should be the same, but this saves 1 op and simplifies the code. For example, the following two instructions: ``` %2 = cmp sgt %0, %1 %3 = select %2, %0, %1 ``` Are equivalent to: ``` %2 = maxsi %0 %1 ```
-
David Majnemer authored
-
Bill Wendling authored
-
Maksim Panchenko authored
The change in #80950 exposed a memory leak in BinarySection. Let BinarySection manage memory passed via updateContents() unless a valid SectionID is set indicating that the contents are managed by JITLink.
-
cor3ntin authored
* Consider that immediate escalating function can appear at global scope, fixing a crash * Lambda conversion to function pointer was sometimes not performed in an immediate function context when it should be. Fixes #82258
-
Alexander Richardson authored
I just tried to load this into LLDB built against Python 3.8.5 and got the following error: `TypeError: 'type' object is not subscriptable`. I could fix this by wrapping the annotations in quotes but since Python 3.7 this syntax can be enabled with `from __future__ import annotations`.
-
calebwat authored
Updates the unit tests for VPlan to use opaque pointers in strings containing LLVM IR. This is to match the similar adjustments being made for lit tests to use opaque pointers.
-
Florian Hahn authored
A VPlan contains multiple live-ins without underlying IR, like VFxUF or VectorTripCount. Trying to infer the scalar type of those causes a crash at the moment. Update VPTypeAnalysis to take a VPlan in its constructor and assign types to those live-ins up front. All those live-ins share the type of the canonical IV. PR: https://github.com/llvm/llvm-project/pull/80723
-
David Majnemer authored
The logic was supposed to be choosing between {0, 1, -1} as an adjustment to the FP bit pattern. However, the adjustment itself was used as the bit pattern instead which result in garbage results. -
Nico Weber authored
-
Jordan Rupprecht authored
This uses [teyit](https://pypi.org/project/teyit/) to modernize asserts, as recommended by the [unittest release notes](https://docs.python.org/3.12/whatsnew/3.12.html#id3). For example, `assertTrue(a == b)` is replaced with `assertEqual(a, b)`. This produces better error messages, e.g. `error: unexpectedly found 1 and 2 to be different` instead of `error: False`.
-
Mingming Liu authored
Without this, each time `InstrProfData.inc` is modified (like in https://github.com/llvm/llvm-project/pull/81691), pre-commit CI clang-format aggressively formats many lines in an unreadable way. Pull request with red pre-commit checks are usually frowned upon. * Use `// clang-format:<reason>` instead of `/* clang-format */`. The former [allows](https://github.com/llvm/llvm-project/blob/563ef306017a47d387f1c36dd562b172c1ad0626/clang/lib/Format/Format.cpp#L4108-L4113) specifying a reason but the latter is [not](https://github.com/llvm/llvm-project/blob/563ef306017a47d387f1c36dd562b172c1ad0626/clang/lib/Format/Format.cpp#L4105-L4106). - Filed https://github.com/llvm/llvm-project/issues/82426 to track the issue in clang-format.
-
David Majnemer authored
We only use it to get from BF16 to F32. After that point, we insert an FP_EXTEND to get the rest of the way.
-
David Majnemer authored
Sometimes those nodes are queried with the non-bf16. We need to request to SDAG that we want to handle the non-bf16 side so that the handler can detect if bf16 is being used on either side.
-
Cyndy Ishida authored
-
Fangrui Song authored
Linux kernel fs/binfmt_elf_fdpic.c supports FDPIC for MMU-less systems. GCC/binutils/qemu support FDPIC ABI for ARM (https://github.com/mickael-guene/fdpic_doc). _ARM FDPIC Toolchain and ABI_ provides a summary. This patch implements FDPIC relocations to the integrated assembler. There are 6 static relocations and 2 dynamic relocations, with R_ARM_FUNCDESC as both static and dynamic. gas requires `--fdpic` to assemble data relocations like `.word f(FUNCDESC)`. This patch adds `MCTargetOptions::FDPIC` and reports an error if FDPIC is not set. Pull Request: https://github.com/llvm/llvm-project/pull/82187
-
Nick Anderson authored
fixes #81766 #82018
-
Cyndy Ishida authored
Fixes: https://lab.llvm.org/buildbot/#/builders/268/builds/8583
-
Cyndy Ishida authored
Appeases CI: https://lab.llvm.org/buildbot/#/builders/268/builds/8581/steps/5/logs/stdio
-
Leandro Lupori authored
Add initial handling of OpenMP copyprivate clause in Flang. When lowering copyprivate, Flang generates the copy function needed by each variable and builds the appropriate omp.single's CopyPrivateVarList. This is patch 3 of 4, to add support for COPYPRIVATE in Flang. Original PR: https://github.com/llvm/llvm-project/pull/73128
-
Mogball authored
-
Cyndy Ishida authored
Installapi has important distinctions when compared to the clang driver, so much that, it doesn't make much sense to try to integrate into it. This patch partially reverts the CC1 action & driver support to replace with its own driver as a clang tool. For distribution, we could use `LLVM_TOOL_LLVM_DRIVER_BUILD` mechanism for integrating the functionality into clang such that the toolchain size is less impacted.
-
David Majnemer authored
We did something pretty naive: - round FP64 -> BF16 by first rounding to FP32 - skip FP32 -> BF16 rounding entirely - taking the top 16 bits of a FP32 which will turn some NaNs into infinities Let's do this in a more principled way by rounding types with more precision than FP32 to FP32 using round-inexact-to-odd which will negate double rounding issues.
-
Joseph Huber authored
Summary: Currently, OpenMP handles the `omp requires` clause by emitting a global constructor into the runtime for every translation unit that requires it. However, this is not a great solution because it prevents us from having a defined order in which the runtime is accessed and used. This patch changes the approach to no longer use global constructors, but to instead group the flag with the other offloading entires that we already handle. This has the effect of still registering each flag per requires TU, but now we have a single constructor that handles everything. This function removes support for the old `__tgt_register_requires` and replaces it with a warning message. We just had a recent release, and the OpenMP policy for the past four releases since we switched to LLVM is that we do not provide strict backwards compatibility between major LLVM releases now that the library is versioned. This means that a user will need to recompile if they have an old binary that relied on `register_requires` having the old behavior. It is important that we actively deprecate this, as otherwise it would not solve the problem of having no defined init and shutdown order for `libomptarget`. The problem of `libomptarget` not having a define init and shutdown order cascades into a lot of other issues so I have a strong incentive to be rid of it. It is worth noting that the current `__tgt_offload_entry` only has space for a 32-bit integer here. I am planning to overhaul these at some point as well.
-
Pranav Bhandarkar authored
[flang][openmp] - depend clause support in target, target enter/update/exit data constructs (#81610) This patch adds support in flang for the depend clause in target and target enter/update/exit constructs. Previously, the following line in a fortran program would have resulted in the error shown below it. !$omp target map(to:a) depend(in:a) "not yet implemented: Unhandled clause DEPEND in TARGET construct" -
Diego Caballero authored
This PR adds an optional bitwidth parameter to the vector xfer op flattening transformation so that the flattening doesn't happen if the trailing dimension of the read/writen vector is larger than this bitwidth (i.e., we are already able to fill at least one vector register with that size).
-
Harald van Dijk authored
Function::Function's constructor sets the debug info format based on the passed in parent Module, so by using this rather than modifying the function list directly, we pick up the debug info format automatically.
-