- Oct 04, 2023
-
-
Alex Langford authored
I plan on replacing LLDB's DWARFUnitHeader implementation with LLVM's. LLVM's DWARFUnitHeader::extract applies the DWARFUnitIndex::Entry to a given DWARFUnitHeader outside of the extraction because the index entry is only relevant to one place where we may parse DWARFUnitHeaders (specifically when we're creating a DWARFUnit in a DWO context). To ease the transition, I've reshaped LLDB's implementation to look closer to LLVM's. Reviewed By: aprantl, fdeazeve Differential Revision: https://reviews.llvm.org/D151919
-
Alexey Bataev authored
Need to add NumSrcElts param to is..Mask functions in ShuffleVectorInstruction class for better mask analysis. Mask.size() not always matches the sizes of the permuted vector(s). Allows to better estimate the cost in SLP and fix uses of the functions in other cases. Differential Revision: https://reviews.llvm.org/D158449
-
Alex Bradbury authored
llvm/test/MC/Disassembler was missed off in eae1e28c
-
Alex Bradbury authored
Following the version bump in #67964 and the bug fix in #68026 I believe we're ready to mark Zfa as non-experimental. I'll note the GCC torture suite passes now with Zfa enabled (though it's more of a litmus test than anything else).
-
Daniel Thornburgh authored
All encodings that the underlying libcurl supports are automatically detected and accepted. libcurl will then decompress on the fly. This improves effective network transfer rate and prevents server-side decompression for files stored compressed. Fixes #63534
-
Matheus Izvekov authored
With this change, we are avoiding storing one pointer per Type Node instance, for the cost of one extra pointer per ASTContext, which is negligible. After we introduced `ContextualFoldingSet` a long time ago, we never went back and updated these existing users. This patch corrects that.
-
Felipe de Azevedo Piovezan authored
Currently, the code extractor functionality deletes a debug intrinsic if its "Location" argument is not part of the extracted function. The location is the first argument (or the first few arguments in case of a DIArgList) of all debug intrinsics. However, according to the docs, the signature of dbg.assign is: ``` void @llvm.dbg.assign(Value *Value, DIExpression *ValueExpression, DILocalVariable *Variable, DIAssignID *ID, Value *Address, DIExpression *AddressExpression) ``` That is, there are two `Value` arguments to it: the usual location argument and an "Address" argument. This Address argument should also receive the same treatment. -
Alex Bradbury authored
The Zfa specification was recently ratified <https://wiki.riscv.org/display/HOME/Recently+Ratified+Extensions>. This commit bumps the version to 1.0, but leaves it as an experimental extension (to be done in a follow-on patch), so reviews can focus on confirming there haven't been spec changes we have missed (which as noted below, is more difficult than usual). Because the development of the Zfa spec overlapped with the transition of riscv-isa-manual from LaTeX to AsciiDoc, it's more difficult than usual to confirm version changes. The linked PDF in RISCVUsage is for some reason a 404. Key commit histories to review are: * Changes to zfa.adoc on the main branch <https://github.com/riscv/riscv-isa-manual/commits/main/src/zfa.adoc> * Changes to zfa.tex on the now defunct latex branch <https://github.com/riscv/riscv-isa-manual/commits/latex/src/zfa.tex> From reviewing these, I believe there have been no changes to the spec since version 0.1/0.2 (sadly the AsciiDoc and LaTeX versions of the spec are inconsistent about version numbering).
-
Luke Lau authored
vandn, vrev8 and vro{l,r} are now part of Zvkb, which Zvbb now implies. This patch updates the predicates to check for Zvkb instead of Zvbb in the tablegen patterns for the SD and VL nodes, as well as some of the lowering logic in RISCVISelLowering. -
Simon Pilgrim authored
Pulled out of D155472
-
Simon Pilgrim authored
promoteExtBeforeAdd currently relies on a NSW/NUW flag, which have been lost by previous folds.
-
Alex Voicu authored
[HIP][Clang][Driver] Disable `hipstdpar` driver test on Mac & Windows, since `hipstdpar` is Linux only at the moment.
-
Philip Reames authored
Noticed by a smallish subset of the build bots. Interestingly, most compilers appear to accept a stray semi-colon between function bodies.
-
Matheus Izvekov authored
This helps check clang generated good IR in the first place, as otherwise this can cause UB in subsequent passes, with the final verification pass not catching any issues. This for example would have helped catch https://github.com/llvm/llvm-project/issues/67937 earlier.
-
- Oct 03, 2023
-
-
Kai Nacke authored
On z/OS, many library functions have a non-standard name. This change initializes the table of runtime function which results from lowering intrinsics to library calls.
-
Peiming Liu authored
-
Kiran Chandramohan authored
These are version of tests with the same name in flang/test/Lower/OpenMP/FIR.
-
Dinar Temirbulatov authored
This change enablse some of shuffle lowering with TBL instruction with SVE and SVE2 for indexing for one register and TBL version for SVE2 while indexing to both registers. Differential Revision: https://reviews.llvm.org/D152205
-
David Stone authored
[clang] Remove duplicate `ModuleId` alias
-
Philip Reames authored
This builds on the transform introduced in https://github.com/llvm/llvm-project/pull/67821, and generalizes it for all integer reduction types. A couple of notes: * This will only form smax/smin/umax/umin reductions when zbb is enabled. Otherwise, we lower the min/max expressions early. I don't care about this case, and don't plan to address this further. * This excludes floating point. Floating point introduces concerns about associativity. I may or may not do a follow up patch for that case. * The explodevector test change is mildly undesirable from a clarity perspective. If anyone sees a good way to rewrite that to stablize the test, please suggest.
-
Craig Topper authored
The driver doesn't have code to pass these down to cc1. It just prints an unused option warning. Remove them from the driver.
-
Mikhail Gudim authored
load / store offset. The patch to address this will be in a separate PR. A possible fix: https://github.com/llvm/llvm-project/pull/67024/files
-
Nimish Mishra authored
This patch adds the following semantic checks: - None of expr, and expr_list (as applicable) may access the same storage location as x - Atomic update statement should be of the form x = x operator expr or x = expr operator x or x = intrinsic_procedure(x, expr_list) or x = intrinsic_procedure(expr_list, x) - expr_list is a comma-separated, non-empty list of scalar expressions. If intrinsic_procedure_name refers to IAND, IOR, or IEOR, exactly one expression must appear in expr_list Reviewed By: TIFitis Differential Revision: https://reviews.llvm.org/D128162
-
Zequan Wu authored
Currently all upper 8 bits are reserved for different profile variants. We need more bits for new mods in the future. Context: https://discourse.llvm.org/t/how-to-add-a-new-mode-to-llvm-raw-profile-version/73688
-
Alexandre Ganea authored
Before this patch, with MSVC I was seeing: ``` [304/334] Building CXX object tools\lld\ELF\CMakeFiles\lldELF.dir\InputFiles.cpp.obj C:\git\llvm-project\lld\ELF\InputFiles.h(327): warning C4661: 'void lld::elf::ObjFile<llvm::object::ELF32LE>::importCmseSymbols(void)': no suitable definition provided for explicit template instantiation request C:\git\llvm-project\lld\ELF\InputFiles.h(291): note: see declaration of 'lld::elf::ObjFile<llvm::object::ELF32LE>::importCmseSymbols' C:\git\llvm-project\lld\ELF\InputFiles.h(327): warning C4661: 'void lld::elf::ObjFile<llvm::object::ELF32LE>::redirectCmseSymbols(void)': no suitable definition provided for explicit template instantiation request C:\git\llvm-project\lld\ELF\InputFiles.h(292): note: see declaration of 'lld::elf::ObjFile<llvm::object::ELF32LE>::redirectCmseSymbols' ``` This patch removes `redirectCmseSymbols` which is not defined. And it imports `importCmseSymbols` in InputFiles.cpp, because it is already explicitly instantiated in ARM.cpp.
-
JolantaJensen authored
A guard for empty vector function name was removed in #66656. This patch adds the guard back.
-
Matthias Springer authored
The `BufferizableOpInterface` implementation of `scf.for` currently assumes that an OpResult does not alias with any tensor apart from the corresponding init OpOperand. Newly allocated buffers (inside of the loop) are also allowed. The current implementation checks whether the respective init_arg and yielded value are equivalent. This is overly strict and causes extra buffer allocations/copies when yielding a new buffer allocation from a loop.
-
Matthias Springer authored
Make `tensor.empty` bufferizable, so that the `-empty-tensor-to-alloc-tensor` pass becomes optional. This makes the bufferization easier to use. `tensor.empty` used to be non-bufferizable, so that there two separate ops, one that can be optimized away (`tensor.empty`) and one that is guaranteed to bufferize to an allocation (`bufferization.alloc_tensor`). With the recent improvements of "empty tensor elimination" this is no longer needed and `bufferization.alloc_tensor` can be phased out.
-
Joel E. Denny authored
In PR #65242 (landed as 9e739fdb), I claimed that RUN lines cannot contain newlines. Actually, they can after substitution expansion. More generally, a lit config file can define substitutions or preamble commands containing newlines. While both of those cases seem unlikely in practice, [D154987](https://reviews.llvm.org/D154987) proposes PYTHON directives where it seems very likely. Regardless of the use case, without this patch, such newlines break expansion of `%dbg(RUN: at line N)`, and the fix is simple.
-
Qiongsi Wu authored
When computing the module maps, `ThinLTOCodeGenerator` asserts if it sees duplicating module names. This PR adds a debug print, so that the list of modules already added can be printed. With this information, one can identify which modules are causing the duplication.
-
Björn Schäpers authored
Fixes #68102.
-
agozillon authored
[Flang][OpenMP][MLIR] Remove deletion of unused declare target global after use replacement (#67762) At the moment, for device a reference pointer is generated in place of the original declare target global value, this reference pointer is the pointer that actually receives the data. In Clang the original global value isn't generated for device, just the reference pointer. Unfortunately for Flang/MLIR this is currently not the case, as the declare target attribute is processed after the creation of the global so we end up with a dead global on device effectively after rewriting its uses to the new device reference pointer. It appears I was a little overzealous with the deletion of the declare target globals for device. The current method breaks in-cases where the same declare target global is used across two target regions (added a runtime reproduced in the patch). As it'll effectively delete it before the second target gets a chance to be written to LLVM IR and have it's uses rewritten . I'd like to remove this deletion as the dead global isn't breaking any code and will likely be removed in later dead code elimination passes, perhaps a little too heavy handed with the original approach.
-
agozillon authored
[Clang][OpenMP][OMPIRBuilder] Move Clang's OpenMP Member/MemberOf flag helpers into the OMPIRBuilder (#67844) This patch seeks to move the following functions to the OMPIRBuilder: - getFlagMemberOffset - getMemberOfFlag - setCorrectMemberOfFlag These small helper functions help set the end bits of the OpenMPOffloadMappingFlags flag that correspond to the reserved segment for OMP_MAP_MEMBER_OF. They will be of use in the future for lowering MLIR types/values that can contian members and can be lowered similarly to a structure or class type within the OpenMPToLLVMIRTranslation step of the OpenMP dialects lowering to LLVM-IR. In particular for Flang which currently uses this flow. Types with descriptors like pointers/allocatables, and likely derived types in certain cases can be lowered as if they were structures with explicitly mapped members.
-
Dhanrajbir-Hira authored
Currently using the `-flto-jobs=N` option passes `-bplugin_opt:jobs=N` to the AIX linker which is not a valid option. This PR seeks to change this behaviour to instead pass `-bplugin_opt:-threads=N` to control the level of concurrency during LTO builds.
-
Mats Petersson authored
The CreateMLIRToLLVMPassPipeline function has quite a few arguments, all of which has default values. Create a struct, with a constructor for the default values, and pass that struct instead. Re-arrange a few include files to make everything available. No functional change intended.
-
Oleksandr "Alex" Zinenko authored
Expose the autogenerated bindings. Co-authored-by:Martin Lücke <mluecke@google.com>
-
Alex Voicu authored
[HIP][Clang][Driver] Fix build failure introduced by https://reviews.llvm.org/rG9a408588d1b8b7899eff593c537de539a4a12651
-
Alex Voicu authored
This patch adds the Sema changes needed for enabling HIP parallel algorithm offload on AMDGPU targets. This change impacts the CUDA / HIP language specific checks, and only manifests if compiling in `hipstdpar` mode. In this case, we essentially do three things: 1. Allow device side callers to call host side callees - since the user visible HLL would be standard C++, with no annotations / restriction mechanisms, we cannot unambiguously establish that such a call is an error, so we conservatively allow all such calls, deferring actual cleanup to a subsequent pass over IR; 2. Allow host formed lambdas to capture by reference; 3. Allow device functions to use host global variables. Reviewed by: yaxunl Differential Revision: https://reviews.llvm.org/D155833
-
Jakub Chlanda authored
-
Alex Voicu authored
This patch adds the Driver changes needed for enabling HIP parallel algorithm offload on AMDGPU targets. This change merely adds two macros to inform user space if we are compiling in `hipstdpar` mode and, respectively, if the optional allocation interposition mode has been requested, as well as associated minimal tests. The macros can be used by the runtime implementation of offload to drive conditional compilation, and are only defined if the HIP language has been enabled. Reviewed by: yaxunl Differential Revision: https://reviews.llvm.org/D155826
-