- Jan 27, 2024
-
-
Nour1248 authored
-
gulfemsavrun authored
After trunk is bumped to version 19, some libc++ tests started failing on Windows. This patch adds clang-19 condition to XFAIL to fix the issue.
-
Fangrui Song authored
Clarify a comment after #78944. All uses of `getFile()` assert `file` is non-null. `getFile` is not used with a synthetic section. Replace `cast_or_null` with `cast`.
-
Alex Langford authored
Instead of passing the data to BroadcastEventIfUnique to create an Event object on the behalf of the caller, the caller can create the Event up-front.
-
Adhemerval Zanella authored
The glibc now adds the required minimum ISA level for libc-nonshared.a (linked on all programs) and this is done with an inline asm along with .note.gnu.property and .pushsection/.popsection. However, the x86 backend always ends the 'note.gnu.property' section when building with -fcf-protection, leading to assert failure: llvm/llvm-project-git/llvm/lib/MC/MCStreamer.cpp:1251: virtual void llvm::MCStreamer::switchSection(llvm::MCSection*, const llvm::MCExpr*): Assertion `!Section->hasEnded() && "Section already ended"' failed. [1] https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86/isa-level.c;h=3f1b269848a52f994275bab6f60dded3ded6b144;hb=HEAD
-
Eli Friedman authored
-
Alex Langford authored
There are 3 ways to create an EventDataBytes object: (const char *), (llvm::StringRef), and (const void *, size_t len). All of these cases can be handled under `llvm::StringRef`. Additionally, this allows us to remove the otherwise unused `SetBytes`, `SwapBytes`, and `SetBytesFromCString` methods.
-
Alex Langford authored
`FindBreakpointID` take a BreakpointID and a pointer to a size_t (so you can get position information). It returns a bool to indicate whether the id was found in the list or not. There are 2 callers of this currently and neither one actually uses the position information, so I removed it. After that, I renamed it to Contains to more accurately reflect the intent. Additionally, I changed the argument type from a reference to a value (because BreakpointID is just a wrapper around 2 integers, copies are cheap).
-
David Green authored
Without this we can end up with multiple copies from gpr->fpr.
-
Amy Kwan authored
This patch disallows the use of the -maix-small-local-exec-tls and -fno-data-sections options within clang, and also disallows the use of the aix-small-local-exec-tls attribute with the -data-sections=false option in llc. This is because having data sections off when using the aix-small-local-exec-tls feature is not ideal for performance. As the small-local-exec-tls region is a limited resource, this space should not used for variables that may be replaced. Note, that on AIX, data sections is turned on by default, so this patch makes it so that a diagnostic is emitted when users explicitly turn off data sections while using the aix-small-local-exec-tls feature.
-
Andreu Carminati authored
In the case of -mno-relax option. Otherwise, we cannot prevent relaxation if we split compilation and linking using Clang driver. One can consider the following use case: clang [...] -c -o myobject.o (just compile) clang [...] myobject.o -o myobject.elf -mno-relax (linking) In this case, myobject.elf will be relaxed, the -mno-relax will be silently ignored.
-
dyung authored
This test started to fail when LLVM created the release/18.x branch and the main branch subsequently had the version number increased from 18 to 19. I investigated this failure (it was blocking our internal automation) and discovered that the CHECK statement on line 27 seemed to have the compiler version number (1800) encoded in octal that it was checking for. I don't know if this is something that explicitly needs to be checked, so I am leaving it in, but it should be more flexible so the test doesn't fail anytime the version number is changed. To accomplish that, I changed the check for the 4-digit version number to be a regex. I originally updated this test for the 18->19 transition in a01195ff. This change makes the CHECK line more flexible so it doesn't need to be continually updated.
-
Fangrui Song authored
GCC supports -mtls-dialect= for several architectures to select TLSDESC. This patch supports the following values * x86: "gnu". "gnu2" (TLSDESC) is not supported yet. * RISC-V: "trad" (general dynamic), "desc" (TLSDESC, see #66915) AArch64 toolchains seem to support TLSDESC from the beginning, and the general dynamic model has poor support. Nobody seems to use the option -mtls-dialect= at all, so we don't bother with it. There also seems very little interest in AArch32's TLSDESC support. TLSDESC does not change IR, but affects object file generation. Without a backend option the option is a no-op for in-process ThinLTO. There seems no motivation to have fine-grained control mixing trad/desc for TLS, so we just pass -mllvm, and don't bother with a modules flag metadata or function attribute. Co-authored-by:Paul Kirth <paulkirth@google.com>
-
Jon Roelofs authored
-
Jon Roelofs authored
-
erichkeane authored
The 'tile' clause takes a 'size-expr-list', where a 'size-expr' is either an asterisk or an integral constant expression. This patch parsess it as an assignment expression, which we'll check for constness and type in Sema.
-
Nemanja Ivanovic authored
Make __builtin_cpu_{init|supports|is} target independent and provide an opt-in query for targets that want to support it. Each target is still responsible for their specific lowering/code-gen. Also provide code-gen for PowerPC. I originally proposed this in https://reviews.llvm.org/D152914 and this addresses the comments I received there. --------- Co-authored-by:Nemanja Ivanovic <nemanjaivanovic@nemanjas-air.kpn> Co-authored-by:
Nemanja Ivanovic <nemanja@synopsys.com>
-
isuckatcs authored
This patch removes the two `FIXME`s that were added with patches related to the expression mentioned in the title.
-
Michael Maitland authored
-
- Jan 26, 2024
-
-
Krzysztof Drewniak authored
This commit extends separate-const-offset-from-gep to look at the newly-added `disjoint` flag on `or` instructions so as to preserve additional opportunities for optimization. The tests were pre-committed in #76972.
-
Evgenii Kudriashov authored
-
LLVM GN Syncbot authored
-
Danial Klimkin authored
this excluded file is gone.
-
Simon Pilgrim authored
Reapply b9483d30 with fix (typo - wasn't ensuring icmp vs zero) Fixes #78888
-
Boian Petkantchin authored
Rename * Op mesh.cluster -> mesh.mesh * Op mesh.cluster_shape -> mesh.mesh_shape * variables and attributes. The name `mesh` is more specific to what it really represents. It is a mesh of devices. The name `cluster` implies a broader posibility of device configurations. When just the word `mesh` is used the meaning can often be inferred from the context whether it refers to the mesh dialect or a device mesh. The full name can be used when needed.
-
Shengchen Kan authored
-
jeanPerier authored
Start implementing assumed-rank support as described in https://github.com/llvm/llvm-project/blob/main/flang/docs/AssumedRank.md This commit holds the minimal support for lowering calls to procedure with assumed-rank arguments where the procedure implementation is done in C. The case for passing assumed-size to assumed-rank is left TODO since it will be done a change in assumed-size lowering that is better done in another patch. Care is taken to set the lower bounds to zero when passing non allocatable no pointer as descriptor to a BIND(C) procedure as required per 18.5.3 point 3. This was not done before while the requirements also applies to non assumed-rank descriptors. This change required special attention with IGNORE_TKR(t) to avoid emitting invalid fir.rebox operations (the actual argument type must be used in this case as the output type). Implementation of Fortran procedure with assumed-rank arguments is still TODO.
-
Jeremy Morse authored
This reverts commit c23608b8. It looks like this depends on #79345, which isn't going to land today, so revert for now.
-
spupyrev authored
A new function sorting algorithm (cdsort) in LLVM is an optimized version of BOLT's hfsort+. In order to avoid code duplication and simplify maintenance, getting rid of hfsort+. Perf-wise this is likely a neutral change, though differences on individual benchmarks are possible, since the generated function layout has changed. I tested cdsort vs hfsort+ on a number of open-source and prod binaries built in different modes and record an average neutral perf difference, perhaps with more "green" counters.
-
Simon Pilgrim authored
[X86] Comment all getTargetConstantBitsFromNode calls that override the Whole/Partial Undefs flags. NFC.
-
Danial Klimkin authored
… (#79599)" This reverts commit e0e21609.
-
David Sherwood authored
When we generate runtime memory checks for an inner loop it's possible that these checks are invariant in the outer loop and so will get hoisted out. In such cases, the effective cost of the checks should reduce to reflect the outer loop trip count. This fixes a 25% performance regression introduced by commit 49b0e6dc when building the SPEC2017 x264 benchmark with PGO, where we decided the inner loop trip count wasn't high enough to warrant the (incorrect) high cost of the runtime checks. Also, when runtime memory checks consist entirely of diff checks these are likely to be outer loop invariant.
-
Simon Pilgrim authored
-
David Spickett authored
Compiling with -DCMAKE_CXX_STANDARD=20 produces 228 warnings from this file due to: ``` LVOptions.h:515:16: warning: implicit capture of 'this' with a capture default of '=' is deprecated [-Wdeprecated-this-capture] ``` So I've changed these to explicitly list the captures, including `this`. As llvm requires at least c++17, I think we could use `[=, *this]` instead. However when I did so I got a lot of errors about const. So on balance, explicitly listing the captures seems better than adding some kind of const cast to each one. These and other warnings can be seen on the c++20 buildbot https://lab.llvm.org/buildbot/#/builders/249.
-
Danial Klimkin authored
-
Shimin Cui authored
Currently if the merged string is used by metadata, its metadata uses are not replaced if the string is merged. This is to add code support for the metadata use replacement.
-
Tom Eccles authored
The intrinsic is defined as a GNU extension here: https://gcc.gnu.org/onlinedocs/gfortran/SIGNAL.html And as an IBM extension here: https://www.ibm.com/docs/en/xffbg/121.141?topic=procedures-signali-proc-extension The IBM version provides a compatible subset of the functionality offered by the GNU version. This patch supports most of the GNU features, but not calling SIGNAL as a function. We don't currently support intrinsics being both subroutines AND functions and this changed seemed too large to be justified by a non-standard intrinsic. I cannot point to open source code Fortran using this intrinsic. This is needed for a proprietary code base.
-
Guillaume Chatelet authored
This patch provides specific test macros to deal with `errno`. This will help abstract away the differences between unit test and integration/hermetic tests in #79319. In one case we use `libc_errno` which is a struct, in the other case we deal directly with `errno`.
-
Shengchen Kan authored
-
Kai Nacke authored
The LegalizerHelper only has support to lower G_SELECT with vector operands. The approach is the same for scalar arguments, which this PR adds.
-