- Feb 16, 2024
-
-
jeanPerier authored
Descriptor addendum have a field to hold length parameters (currently only one). This field is currently never used because flang does not lowered derived types with length parameters. However, leaving it uninitialized is causing bugs in code like gFTL where the code is trying to sort POINTERs (see [1]). More precisely, it is an issue when two pointers should compare equal (same base address), because the uninitialized values in the addendum may differ depending on the "stack history" and optimization level. Always initialized the length parameters field in the addendum to zero. [1]: https://github.com/Goddard-Fortran-Ecosystem/gFTL/blob/dc93a5fc2fe2b487590580d9f0a17d77ca3fe5c1/include/v1/templates/set_impl.inc#L312 The type being transferred to an integer array may look like: ``` TYPE :: localwrapper TYPE(T), POINTER :: item END TYPE localwrapper ``` Which in flang case ends-up transferring a descriptor to an integer array, the code in gFTL later compare the integer arrays. This logic is used when building set data structures in gFTL.
-
Balázs Kéri authored
A class is added that contains common functions and data members that are used in many of the "eval" functions. This results in shorter "eval" functions and less code repetition.
-
Yingwei Zheng authored
This patch implements the codegen support of zabha (Byte and Halfword Atomic Memory Operations) v1.0-rc1 extension. See also https://github.com/riscv/riscv-zabha/blob/v1.0-rc1/zabha.adoc . --------- Co-authored-by:
Craig Topper <craig.topper@sifive.com>
-
PiJoules authored
This fixes https://github.com/llvm/llvm-project/issues/81555
-
Kiran Chandramohan authored
This is to avoid warnings when invoked from the flang documentation generation build. The warning can be seen in the CI (https://lab.llvm.org/buildbot/#/builders/89/builds/57451). ``` /home/buildbot/as-worker-4/publish-sphinx-docs/llvm-project/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp:2956:38: warning: unused variable ‘operand’ [-Wunused-variable] ```
-
Timm Bäder authored
Just forward the pointer. Copy tests from SemaCXX
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
-
Kareem Ergawy authored
Introduces conversion of `omp.private`'s regions to the LLVM dialect. This reuses the already existing conversion pattern for `ReducetionDeclareOp` and repurposes it to be used for multi-region ops as well.
-
Ryosuke Niwa authored
Allow address-of operator (&), enum constant, and a reference to constant as well as materializing temporqary expression and an expression with cleanups to appear within a trivial function.
-
azhan92 authored
The current test-release.sh script does not install the necessary compiler-rt builtin's during Phase 1 on AIX, resulting on a non-functional Phase 1 clang. Futhermore, the installation is also necessary for Phase 2 on AIX. Co-authored-by:Alison Zhang <alisonzhang@ibm.com>
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Congcong Cai authored
-
Cyndy Ishida authored
Previously this class was only used by ExtractAPI, but it will soon also be needed by InstallAPI. This patch should not change availability behavior but just centralizes the information next to what already is captured about availability for AST traversal.
-
akshaykumars614 authored
(bad error message on incorrect string literal) Fixed the error message for incorrect string literal before: ``` test.cpp:1:19: error: invalid character ' ' character in raw string delimiter; use PREFIX( )PREFIX to delimit raw string char const* a = R" ^ ``` now: ``` test.cpp:1:19: error: invalid newline character in raw string delimiter; use PREFIX( )PREFIX to delimit raw string 1 | char const* a = R" | ^ ``` --------- Co-authored-by:Jon Roelofs <jroelofs@gmail.com>
-
Shoaib Meenai authored
R_ARM_GOT_PREL is equivalent to GOTPCREL on other architectures, so we can use it for indirect symbol replacement the same way. This is the equivalent of https://github.com/llvm/llvm-project/pull/67754 for x86_64 and https://github.com/llvm/llvm-project/pull/78003 for AArch64 and 64-bit RISC-V.
-
Vitaly Buka authored
Existing code worked only for local, recorder FP, and the faulty address are the same 1 MiB page. Now, instead of guessing FP, we guess variable address. We need to try just two cases of addresses around of faulty one. Fixes https://github.com/google/sanitizers/issues/1723
-
Chris Bieneman authored
This should effectively preserve the old behavior for non-HLSL code.
-
Philip Reames authored
This reverts commit 834d11c2 which was a revert of my 3a626937. I had failed to rebase after new tests added overnight by fc0b67e1. Original commit message follows: Extracing a subvector at index zero corresponds to a type conversion and possibly a subregister operation. We will not emit a vslidedown. As such, they are free. As an aside, it looks like we're not passing an index in for cases where the subvec type is scalable. For at least index zero, we probably should be. Revert "Revert "[RISCV][TTI] Extract subvector at index zero is free (#81751)""
-
Craig Topper authored
This was trying to rewrite a branch that uses X0 to a branch that uses a register produced by LI of 1 or -1. Using X0 is free so there is no reason to rewrite it. Doing so would just extend the live range of the LI register increasing register pressure. In practice this might not have triggered often because we were calling MRI.hasOneUse on X0. I'm not sure what the returns for a physical reigster.
-
Peiming Liu authored
-
Craig Topper authored
If it isn't virtual, we may extend the live range of the physical register past were it is valid. For example, across a call. Found while trying to enable -riscv-enable-sink-fold which enables some copy propagation in machine sink that led to ADDIs with physical register destinations.
-
Youngsuk Kim authored
Replace outdated typed-pointer notation in LLVM IR examples. NFC.
-
Michael Jones authored
The cmake test generator needed to be updated to support the same flags as the source. To simplify the code, I moved it to a new file.
-
lntue authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Mehdi Amini authored
-
Hiroshi Yamauchi authored
The failure happens in the livedebugvalues pass.
-
Chelsea Cassanova authored
Per discussions from https://github.com/llvm/llvm-project/pull/81026, it was decided that having a class that manages a map of progress reports would be beneficial in order to categorize them. This class is a part of the overall `Progress` class and utilizes a map that keeps a count of how many times a progress report category has been sent. This would be used with the new debugger broadcast bit added in https://github.com/llvm/llvm-project/pull/81169 so that a user listening with that bit will receive grouped progress reports.
-
Vitaly Buka authored
-
Vitaly Buka authored
-
lntue authored
-
Amir Ayupov authored
Address the comment in https://github.com/llvm/llvm-project/pull/76906#issuecomment-1947335336
-
Peiming Liu authored
Reapply "[mlir][sparse] remove LevelType enum, construct LevelType from LevelFormat and Properties" (#81923) (#81934)
-
Cyndy Ishida authored
-
Haopeng Liu authored
This reverts commit 69a96ae0.
-