- Mar 15, 2022
-
-
Simon Pilgrim authored
-
Dávid Bolvanský authored
-
Fangrui Song authored
https://discourse.llvm.org/t/parallel-input-file-parsing/60164 initializeSymbols currently sets Defined::section and handles non-prevailing COMDAT groups. Move the code to the parallel postParse to reduce work from the single-threading code path and make parallel section initialization infeasible. Postpone reporting duplicate symbol errors so that the messages have the section information. (`Defined::section` is assigned in postParse and another thread may not have the information). * duplicated-synthetic-sym.s: BinaryFile duplicate definition (very rare) now has no section information * comdat-binding: `%t/w.o %t/g.o` leads to an undesired undefined symbol. This is not ideal but we report a diagnostic to inform that this is unsupported. (See release note) * comdat-discarded-lazy.s: %tdef.o is unextracted. The new behavior (discarded section error) makes more sense Depends on D120640 Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D120626
-
Stella Laurenzo authored
-
Stanislav Mekhanoshin authored
Fixes: SWDEV-326366 Differential Revision: https://reviews.llvm.org/D121491
-
Valentin Clement authored
This patch lowers the `any` intrinsic function to FIR. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121609 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
mleair <leairmark@gmail.com>
-
Amara Emerson authored
The existing volatile checks only handle aliasing hazards between stores, but that isn't enough since by that point volatile stores may have already been added to the current candidate group.
-
Andrew Browne authored
This reverts commit 84af9033.
-
Dávid Bolvanský authored
Motivation: ``` int test(int x, int y) { int r = 0; [[clang::always_inline]] r += foo(x, y); // force compiler to inline this function here return r; } ``` In 2018, @kuhar proposed "Introduce per-callsite inline intrinsics" in https://reviews.llvm.org/D51200 to solve this motivation case (and many others). This patch solves this problem with call site attribute. "noinline" statement attribute already landed in D119061. Also, some LLVM Inliner fixes landed so call site attribute is stronger than function attribute. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D120717 -
Andrew Browne authored
https://github.com/llvm/llvm-project/issues/54172 Reviewed By: pcc Differential Revision: https://reviews.llvm.org/D121250
-
Florian Mayer authored
Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D121433
-
Shafik Yaghmour authored
Applied modernize-use-default-member-init clang-tidy check over LLDB. It appears in many files we had already switched to in class member init but never updated the constructors to reflect that. This check is already present in the lldb/.clang-tidy config. Differential Revision: https://reviews.llvm.org/D121481
-
Andrew Litteken authored
The IR Outliner is supposed to extract the outputs contained in an external phi node and place them into a phi node contained within the outlined function. However, when the output values of two outlined functions with two different output sets are contained within the same phi node, they are counted as the same exit path when first analyzed. In reality, these create two different phi nodes, creating an inconsistency, resulting in a mismatch in the expected number of output paths and a crash. This fixes that counting when analyzing the outputs by also analyzing the incoming blocks rather than just the incoming values. Reviewer: paquette Differential Revision: https://reviews.llvm.org/D121313
-
Peter Collingbourne authored
Differential Revision: https://reviews.llvm.org/D121260
-
Florian Hahn authored
Add missing outside user check for truncated IVs. Also hoist the code in the helper with additional explanations. Fixes #54370.
-
Amir Ayupov authored
- Remove spurious } in invlpgb mnemonic - Add \t between mnemonic and operands for ud1 instructions Reviewed By: skan, craig.topper Differential Revision: https://reviews.llvm.org/D121570
-
Jonas Devlieghere authored
To allow us to select a different platform based on where the process is running, plumb the process host architecture through platform selection. This patch is in preparation for D121444 which needs this functionality to tell apart iOS binaries running on Apple Silicon vs on a remote iOS device. Differential revision: https://reviews.llvm.org/D121484
-
Fangrui Song authored
In GCC -fgnu-unique output, STB_GNU_UNIQUE symbols are always defined relative to a section in a COMDAT group. Currently `other` cannot be STB_GNU_UNIQUE for valid input, so this patch is NFC. If we switch to the model that ignores COMDAT resolution when performing symbol resolution (D120626), this will fix bogus `relocation refers to a symbol in a discarded section` errors when mixing -fno-gnu-unique objects with -fgnu-unique objects. Differential Revision: https://reviews.llvm.org/D120640
-
Ben Barham authored
`getFileName` returns a `StringRef`, there's no reason it shouldn't be const. Differential Revision: https://reviews.llvm.org/D121495
-
Ben Barham authored
The rest of LLVM uses `print` for the method taking the `raw_ostream` and `dump` only for the method with no parameters. Use the same for `RedirectingFileSystem`. Differential Revision: https://reviews.llvm.org/D121494
-
Kazu Hirata authored
-
Fangrui Song authored
With a sufficiently large output buffer, the only failure is Z_MEM_ERROR. Check it and call the noreturn report_bad_alloc_error if applicable. resize_for_overwrite may call report_bad_alloc_error as well. Now that there is no other error type, we can replace the return type with void and simplify call sites. Reviewed By: ikudrin Differential Revision: https://reviews.llvm.org/D121512
-
Jonas Devlieghere authored
-
Peter Klausler authored
LBOUND must return 1 for an empty dimension, no matter what explicit expression might appear in a declaration or arrive in a descriptor. Differential Revision: https://reviews.llvm.org/D121488
-
Eric Schweitz authored
around the feature in MLIR's canonicalizer, which considers the semantics of constants differently based on how they are packaged and not their values and use. Add test. Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D121625
-
Andrzej Warzynski authored
This reverts commit b6a76004. It caused the following build failure: ``` ninja: error: dependency cycle: include/flang/__fortran_ieee_exceptions.mod -> include/flang/__fortran_ieee_exceptions.mod ``` See e.g.: * https://lab.llvm.org/buildbot/#/builders/172/builds/9595 To reproduce: ``` cmake -G Ninja \ -DLLVM_TARGETS_TO_BUILD=host \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_PROJECTS="clang;flang" \ ../../llvm ninja check-flang ```
-
Fraser Cormack authored
The InstAlias framework cannot match registers against zero_reg, which RVV uses to encode unmasked operations. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D92228
-
Louis Dionne authored
It turns out that the whole header is only enabled in C++20 and above, so these checks were redundant (and always true). Differential Revision: https://reviews.llvm.org/D121604
-
Mircea Trofin authored
Discussed extensively on D98232. The functionality introduced in D35816 never worked correctly. In D98232, it was fixed, but, as it was introducing a large compile-time regression, and the value of the original patch was called into doubt, we disabled it by default everywhere. A year later, it appears that caused no grief, so it seems safe to remove the disabled code. This should be accompanied by re-opening bug 26810. Differential Revision: https://reviews.llvm.org/D121128
-
Peter Klausler authored
The intrinsic module IEEE_ARITHMETIC must incorporate the public names from the intrisic module IEEE_EXCEPTIONS. Rename IEEE_EXCEPTIONS to __Fortran_ieee_exceptions so that it won't clash with the nonintrinsic namespace, establish a new intrinic IEEE_EXCEPTIONS module that USEs it, and add a USE to IEEE_ARITHMETIC. Differential Revision: https://reviews.llvm.org/D121490
-
Jonas Devlieghere authored
Use the debugger's asynchronous output stream for printing progress events. This allows the active IOHandler to be in charge of printing them and doing the necessary synchronization. Differential revision: https://reviews.llvm.org/D121502
-
zhongyunde authored
Test bit of lane EC-1 can use P register directly, eg: Materialize : Idx = (add (mul vscale, NumEls), -1) i1 = extract_vector_elt t37, Constant:i64<Idx> ... into: "ptrue p, all" + PTEST Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D121180 -
Stanislav Gatev authored
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev. Differential Revision: https://reviews.llvm.org/D121455
-
Sam Clegg authored
Differential Revision: https://reviews.llvm.org/D121538
-
Teresa Johnson authored
Extend -wholeprogramdevirt-check to support both the existing trapping mode on an incorrect devirtualization, as well as a new mode to fallback to an indirect call on a mismatch. The new mode is The new mode is useful in cases where we want to enable devirtualization but cannot fully guarantee whole program visibility (e.g in the case where LTO has been disabled for a small set of objects that could potentially override virtual methods without having a symbol reference to anything in the base class including the vtable). Remove !prof and !callees metadata (which are used by indirect call promotion) from both the new direct call and the fallback indirect call (so that we don't perform another round of promotion on the latter). Also remove it from the direct call in the non-fallback cases, which was an oversight, although it didn't seem to cause any issues. Add tests for the metadata removal covering the various cases. Differential Revision: https://reviews.llvm.org/D121419
-
Valentin Clement authored
This patch lowers the format statement. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121611
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
PrintAsync is relying on the IOHandler to print to the output/error stream. In that context it doesn't make much sense that this is using the debugger's streams rather than the one from the IOHandler. Differential revision: https://reviews.llvm.org/D121536
-
Arthur Eubanks authored
Includes verifier changes checking the elementtype, clang codegen changes to emit the elementtype, and ISel changes using the elementtype. Reviewed By: #opaque-pointers, nikic Differential Revision: https://reviews.llvm.org/D120527
-
Valentin Clement authored
This patch lowers common block variable to FIR. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121610 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-