- Oct 13, 2022
-
-
Michael Jones authored
These options will allow the SCUDO standalone to be built with custom headers. Specifically, this patch will enable building with the LLVM-libc headers. Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D135702
-
bixia1 authored
[mlir][sparse] Replace pass-by-value with pass-by-memref for C interface routines to fix Windows build. Reviewed By: aartbik, wrengr Differential Revision: https://reviews.llvm.org/D135811
-
Florian Mayer authored
Before this, we would incorrectly coalesce CIE for frames with and without stack MTE. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D135639
-
Florian Mayer authored
Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D135638
-
Louis Dionne authored
-
River Riddle authored
We only ever generate documentation for one dialect, so there isn't a good reason to collect every possible dialect entity. Differential Revision: https://reviews.llvm.org/D135812
-
Chris Bieneman authored
We had a bunch of places in the code where we were translating triple environment enum cases to shader stage enum cases. The order of these enums needs to be kept in sync for the translation to be simple, but we were not properly handling out-of-bounds cases. In normal compilation out-of-bounds cases shouldn't be possible because the driver errors if you don't have a valid shader environment set, but in clang tooling that error doesn't get treated as fatal and parsing continues. This can result in crashes in clang tooling for out-of-range shader stages. To address this, this patch adds a constexpr method to handle the conversion which handles out-of-range values by converting them to `Invalid`. Since this new method is a constexpr, the tests for this are a group of static_asserts in the implementation file that verifies the correct conversion for each valid enum case and validates that other cases are converted to `Invalid`. Reviewed By: bogner Differential Revision: https://reviews.llvm.org/D135595
-
Louis Dionne authored
On Darwin, libc++ is the default C++ stdlib now, and that requires a deployment target of at least 10.7.
-
Philip Reames authored
Continuing the theme of adding branchless lowerings for simple selects, this time handle the 0 arm case. This is very common for various umin idioms, etc.. Differential Revision: https://reviews.llvm.org/D135600
-
Louis Dionne authored
This is the equivalent of 340b48b2 applied to the non-experimental std::pmr.
-
Louis Dionne authored
-
David Tenty authored
These "implementation detail" function templates were already hidden and have no specializations in the dylib, so they seem like they can safely use _LIBCPP_HIDE_FROM_ABI instead and have the abi tags applied as well. Seems some of these got over looked (e.g. D129823) in various places, and they won't be flagged by the new checks added in D129968, as they were already hidden. Reviewed by: ldionne Differential Revision: https://reviews.llvm.org/D135504
-
Yaxun (Sam) Liu authored
When -lxxx is specified, if there happens to have a directory or file with name xxx, clang will not look up libxxx.a, but will try to unbundle xxx instead. Reviewed by: Saiyedul Islam, Artem Belevich Differential Revision: https://reviews.llvm.org/D135724
-
Michael Jones authored
These headers are uncommonly used, and from extensions, but some basic support is needed. Macros have been added where available. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D135731
-
Louis Dionne authored
-
Krzysztof Parzyszek authored
This is a workaround until perfect shuffle generation is improved.
-
Qiongsi Wu authored
This patch teaches `clang` to use the prefix `-bplugin_opt:` (instead of `-plugin-opt`) on AIX, when passing plugin options to the linker. This patch follows https://reviews.llvm.org/D134668. We put the code that decides what plugin option prefix to use at the top of the function `tools::addLTOOptions`. The plugin option prefix, the mcpu prefix, and the opt level prefix are different on AIX. We thought about choosing the strings in a function that reads the linker name and the target triple, or we could push the logic into different derived `ToolChain` classes. But this logic would not be used anywhere else, so these alternatives looked too complicated for what they did. Therefore we are doing it the current way. That said, I am all ears for suggestions to improve this code! Subsequent code uses the `PluginOptPrefix` variable consistently instead of the hardcoded `-plugin-opt`. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D134820
-
Joe Nash authored
Reviewed By: foad Differential Revision: https://reviews.llvm.org/D135782
-
Jacob Hegna authored
-
Jacob Hegna authored
When training large models, we encounter use-after-free bugs when writing to the input tensors for various MLGO models. This patch fixes the issue by marking the tensors as "persistent". Differential Revision: https://reviews.llvm.org/D135739
-
Krzysztof Parzyszek authored
-
Florian Hahn authored
Breaks up a large function and allows for the use to early exits.
-
Dan Albert authored
Allowing incorrect version scripts is not a helpful default. Flip that to help users find their bugs at build time rather than at run time. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D135402
-
Martin Storsjö authored
Without this, unwinding through functions that does use PAC would fail, if PAC actually was active. Differential Revision: https://reviews.llvm.org/D135103
-
Martin Storsjö authored
This new opcode was initially documented as "pac_sign_return_address" in https://github.com/MicrosoftDocs/cpp-docs/pull/4202, but was soon afterwards renamed into "pac_sign_lr" in https://github.com/MicrosoftDocs/cpp-docs/pull/4209, as the other name was unwieldy, and there were no other external references to that name anywhere. Rename our external .seh assembler directive - it hasn't been merged for very long yet, so there's probably no external use to account for. Rename all other internal references to the opcode similarly. Differential Revision: https://reviews.llvm.org/D135762
-
Valentin Clement authored
86771d0b introduced some fialure for flang https://buildkite.com/llvm-project/premerge-checks/builds/116406#0183ca8c-bc14-4314-9b1d-c764cf47e0aa Update FIROps.td to fix the issues.
-
Joseph Huber authored
If an invalid architecture is set we currently return an empty string. This will cause the offloading toolchain to continue to be built and hit an assertion elsewhere due to the invalid architecture. This patch fixes that so we now correctly exit. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D135791
-
Louis Dionne authored
Differential Revision: https://reviews.llvm.org/D135297
-
Arthur Eubanks authored
Matches CMake build. Otherwise currently everything is literally std::_LIBCPP_ABI_NAMESPACE::foo.
-
Fangrui Song authored
See https://reproducible-builds.org/docs/source-date-epoch/ . The environment variable ``SOURCE_DATE_EPOCH`` been recognized by many compilers. In GCC, if `SOURCE_DATE_EPOCH` is set, it specifies a UNIX timestamp to be used in replacement of the current date and time in the `__DATE__` and `__TIME__` macros. Note: GCC as of today does not update `__TIMESTAMP__` (the modification time of the current source file) but https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros expresses the intention to update it. This patches parses SOURCE_DATE_EPOCH and changes all the three macros. In addition, in case gmtime/localtime returns null (e.g. on 64-bit Windows gmtime returns null when the timestamp is larger than 32536850399 (3001-01-19T21:59:59Z)), use `??? ?? ????` as used by GCC. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D135045
-
Fangrui Song authored
When zlib is disabled at build time, the diagnostic `LLVM was not compiled with LLVM_ENABLE_ZLIB: cannot decompress` for --decompress-debug-sections may be inaccurate: if zstd is enabled, we should still support zstd decompression. It's not useful to test zlib and zstd. Just remove the diagnostic and add a new one before `compression::decompress`. This fixes compress-debug-sections-zstd.test Reviewed By: mariusz-sikora-at-amd, jhenderson, phosek Differential Revision: https://reviews.llvm.org/D135744
-
Florian Hahn authored
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D135774
-
Mark de Wever authored
This moves some includes missed in D133212. Reviewed By: ldionne, #libc, philnik Differential Revision: https://reviews.llvm.org/D135180
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D135773
-
Peter Rong authored
-
Volodymyr Sapsai authored
[modules] Allow to validate system headers less often with `-fmodules-validate-once-per-build-session`. Make flags `-fmodules-validate-system-headers` and `-fmodules-validate-once-per-build-session` orthogonal, so they have their own independent responsibilities - if system headers should be validated and how often. rdar://87988889 Differential Revision: https://reviews.llvm.org/D135232
-
Sanjoy Das authored
This patch takes the first step towards a more principled modeling of undefined behavior in MLIR as discussed in the following discourse threads: 1. https://discourse.llvm.org/t/semantics-modeling-undefined-behavior-and-side-effects/4812 2. https://discourse.llvm.org/t/rfc-mark-tensor-dim-and-memref-dim-as-side-effecting/65729 This patch in particular does the following: 1. Introduces a ConditionallySpeculatable OpInterface that dynamically determines whether an Operation can be speculated. 2. Re-defines `NoSideEffect` to allow undefined behavior, making it necessary but not sufficient for speculation. Also renames it to `NoMemoryEffect`. 3. Makes LICM respect the above semantics. 4. Changes all ops tagged with `NoSideEffect` today to additionally implement ConditionallySpeculatable and mark themselves as always speculatable. This combined trait is named `Pure`. This makes this change NFC. For out of tree dialects: 1. Replace `NoSideEffect`...
-
Sam McCall authored
- store NestedNameSpecifier & Loc for the qualifiers This information was entirely missing from the AST. - expose the location information for qualifier/identifier/typedefs as typeloc This allows many traversals/astmatchers etc to handle these generically along with other references. The decl vs type split can help preserve typedef sugar when https://github.com/llvm/llvm-project/issues/57659 is resolved. - fix the SourceRange of UsingEnumDecl to include 'using'. Fixes https://github.com/clangd/clangd/issues/1283 Differential Revision: https://reviews.llvm.org/D134303
-