- May 08, 2024
-
-
Fangrui Song authored
Created using spr 1.3.5-bogner
-
Fangrui Song authored
Created using spr 1.3.5-bogner
-
Fangrui Song authored
-
Max Winkler authored
For global functions and static methods the MSVC ABI returns structs/classes with a deleted copy assignment operator indirectly. From local testing this ABI holds true for all currently supported architectures including ARM64EC.
-
Youngsuk Kim authored
-
Prathamesh Tagore authored
[mlir][memref.expand_shape] Add verifier check to ensure correct output_shape is provided by user (#91245) The verifier was not checking for the case when the user provided shape in output_shape is different than the one inferred from output type. Fix this.
-
Maksim Panchenko authored
Test case for #90300.
-
Ryosuke Niwa authored
Co-authored-by:Brianna Fan <bfan2@apple.com>
-
Mircea Trofin authored
APIs for contextual profiling. `ContextNode` is the call context-specific counter buffer. `ContextRoot` is associated to those functions that constitute roots into interesting call graphs, and is the object on which we hang off `Arena`s for allocating `ContextNode`s, as well as the `ContextNode` corresponding to such functions. Graphs of `ContextNode`s are accessible by one thread at a time. (Tracking Issue: #89287, more details in the RFC referenced there)
-
Schrodinger ZHU Yifan authored
-
Stanislav Mekhanoshin authored
This is the same logic as with FMINNUM_IEEE/FMAXNUM_IEEE.
-
Marian Buschsieweke authored
This updates the list of MSP430 MCUs from TI's devices.csv obtained from [1] under the "Header and Support Files" link. A simple python script has been used to generate this list and is included as well. [1]: https://www.ti.com/tool/MSP430-GCC-OPENSOURCE#downloads
-
Ellis Hoag authored
Use `VFS.equivalent()`, which follows symlinks, to check if two module cache paths are equivalent. This prevents a PCH error when building from a different path that is a symlink of the original. ``` error: PCH was compiled with module cache path '/home/foo/blah/ModuleCache/2IBP1TNT8OR8D', but the path is currently '/data/users/foo/blah/ModuleCache/2IBP1TNT8OR8D' 1 error generated. ```
-
Stanislav Mekhanoshin authored
-
Adrian Prantl authored
This can't happen with Clang, but I've seen a crash report from the Swift plugin where this happened. rdar://126564844
-
Adrian Prantl authored
-
Shilei Tian authored
If the operand doesn't have any subreg use, the optimization could potentially generate `V_ACCVGPR_READ_B32_e64` with wrong register class. The following example demonstrates the issue. Input MIR: ``` bb.0: %0:sgpr_32 = S_MOV_B32 0 %1:sgpr_128 = REG_SEQUENCE %0:sgpr_32, %subreg.sub0, %0:sgpr_32, %subreg.sub1, %0:sgpr_32, %subreg.sub2, %0:sgpr_32, %subreg.sub3 %2:vreg_128 = COPY %1:sgpr_128 %3:areg_128 = COPY %2:vreg_128, implicit $exec bb.1: %4:areg_128 = PHI %3:areg_128, %bb.0, %6:areg_128, %bb.1 %5:areg_128 = PHI %3:areg_128, %bb.0, %7:areg_128, %bb.1 ... ``` Output of current implementation: ``` bb.0: %0:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec %1:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec %2:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec %3:agpr_32 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec %4:areg_128 = REG_SEQUENCE %0:agpr_32, %subreg.sub0, %1:agpr_32, %subreg.sub1, %2:agpr_32, %subreg.sub2, %3:agpr_32, %subreg.sub3 %5:vreg_128 = V_ACCVGPR_READ_B32_e64 %4:areg_128, implicit $exec %6:areg_128 = COPY %46:vreg_128 bb.1: %7:areg_128 = PHI %6:areg_128, %bb.0, %9:areg_128, %bb.1 %8:areg_128 = PHI %6:areg_128, %bb.0, %10:areg_128, %bb.1 ... ``` The problem is the generated `V_ACCVGPR_READ_B32_e64` instruction. Apparently the operand `%4:areg_128` is not valid for this. In this patch, we don't count the none-subreg use because `V_ACCVGPR_READ_B32_e64` can't handle none-32-bit operand. Fixes: SWDEV-459556
-
Florian Hahn authored
We only version unknown strides to 1. If the original type is i1, then the sign of the extension matters. Properly extend the stride value before replacing it. Fixes https://github.com/llvm/llvm-project/issues/91369.
-
Maryam Moghadas authored
On AIX we need to spill all [rfv]N-[rfv]31 when a function clobbers [rfv]N so that the traceback table contains accurate information.
-
Xiang Li authored
Remove string function attribute other than "waveops-include-helper-lanes" and "fp32-denorm-mode". Move DXILPrepareModulePass after DXILTranslateMetadataPass since DXILTranslateMetadataPass needs to use attribute like hlsl.numthreads. Fixes #90773
-
Jonas Devlieghere authored
Alex pointed out in #91254 that we only need the custom target if we had more than one target depending on it. This isn't the case upstream, but on our downstream fork, we have a second dependency. Reintroduce the target so that everything can depend on that, without the single-dependency foot-gun.
-
Adrian Prantl authored
Revert "[Clang] Unify interface for accessing template arguments as written for class/variable template specializations (#81642)" This reverts commit 7115ed0f. This commit broke several LLDB tests. https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/as-lldb-cmake/3480/
-
Adrian Prantl authored
This reverts commit 65e2fab4 because I'm also reverting 7115ed0f.
-
Heejin Ahn authored
This PR turns on multivalue and reference-types features when exception-handling feature is turned on, and errors out when disabling of those dependent features is explicitly requested. I think doing this would be safe anyway regardless of whether or when we end up turning on reference-types by default. We currently don't yet have a experimental flag for the Clang and LLVM for the new experimental EH yet. But I think it should be fine to turn those features on even if the LLVM does not yet generate the new EH instructions, for the same reason we tried to turn them on by default and the browsers that support EH also support multivalue and reference-types anyway.
-
Craig Topper authored
We had tests for ParseNormalizedArchString, but not ParseArchString. The ParseNormalizedArchString test was not checking MaxElenFp.
-
Noah Goldstein authored
Similiar to the `InstCombine` changes, just furthering the support of the `uitofp nneg` support. Closes #86154
-
Noah Goldstein authored
Similiar to the `InstCombine` changes, just furthering the scope of the canonicalization/`uitofp nneg` support
-
Noah Goldstein authored
-
Matt Arsenault authored
Implement the promotion in the DAG. Depends #90113
-
Florian Hahn authored
Add tests for https://github.com/llvm/llvm-project/issues/91369.
-
Kazu Hirata authored
This patch fixes: clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3937:12: error: unused variable 'CanonType' [-Werror,-Wunused-variable] clang/lib/Sema/SemaTemplate.cpp:9279:18: error: unused variable 'TemplateKWLoc' [-Werror,-Wunused-variable]
-
Jonas Devlieghere authored
On Darwin platforms, the system will generate a crash report in ~/Library/Logs/DiagnosticReports/ when a process crashes. These reports are much more useful than the "pretty backtraces" printed by LLVM and are preferred when filing bug reports on Darwin.
-
Sean Perry authored
These test cases are testing features not available when either targeting the s390x-ibm-zos target or use tools/features not available on the z/OS operating system. In a couple cases the lit test had a number of subtests with one or two that aren't supported on z/OS. Rather than mark the entire test as unsupported I split out the unsupported tests into a separate test case.
-
Florian Mayer authored
-
Craig Topper authored
[RISCV] Add partial validation of S and X extension names to RISCVISAInfo::parseNormalizedArchString. Extensions starting with 's' or 'x' should always be followed by an alphabetical character. I don't know of any crashes from this currently, but it seemed better to be defensive.
-
Benoit Jacob authored
Unblocking downstream integrate where an expected-to-fail test was expecting this to be a runtime verifier error, not a compiler crash: https://github.com/llvm/torch-mlir/pull/3279.
-
Edwin Vane authored
The handling of renaming failures and multiple usages related to those failures is currently spread over several functions. Identifying the failure NamedDecl for a given usage is also duplicated, once when creating failures and again when identify usages. There are currently two ways to a failed NamedDecl from a usage: use the canonical decl or use the overridden method. With new methods about to be added, a cleanup was in order. The data flow is simplified as follows: * The visitor always forwards NamedDecls to addUsage(NamedDecl). * addUsage(NamedDecl) determines the failed NamedDecl and determines potential new names based on that failure. Usages are registered using addUsage(NamingCheckId). * addUsage(NamingCheckId) is now protected and its single responsibility is maintaining the integrity of the failure/usage map.
-
Krystian Stasiowski authored
[Clang] Unify interface for accessing template arguments as written for class/variable template specializations (#81642) Our current method of storing the template arguments as written for `(Class/Var)Template(Partial)SpecializationDecl` suffers from a number of flaws: - We use `TypeSourceInfo` to store `TemplateArgumentLocs` for class template/variable template partial/explicit specializations. For variable template specializations, this is a rather unintuitive hack (as we store a non-type specialization as a type). Moreover, we don't ever *need* the type as written -- in almost all cases, we only want the template arguments (e.g. in tooling use-cases). - The template arguments as written are stored in a number of redundant data members. For example, `(Class/Var)TemplatePartialSpecialization` have their own `ArgsAsWritten` member that stores an `ASTTemplateArgumentListInfo` (the template arguments). `VarTemplateSpecializationDecl` has yet _another_ redundant member "`TemplateArgsInfo`" that also stores an `ASTTemplateArgumentListInfo`. This patch eliminates all `(Class/Var)Template(Partial)SpecializationDecl` members which store the template arguments as written, and turns the `ExplicitInfo` member into a `llvm::PointerUnion<const ASTTemplateArgumentListInfo*, ExplicitInstantiationInfo*>` (to avoid unnecessary allocations when the declaration isn't an explicit instantiation). The template arguments as written are now accessed via `getTemplateArgsWritten` in all cases. The "most breaking" change is to AST Matchers, insofar that `hasTypeLoc` will no longer match class template specializations (since they no longer store the type as written).
-
Brendan Dahl authored
Adds a builtin and intrinsic for the f32.load_f16 instruction. The instruction loads an f16 value from memory and puts it in an f32. Specified at: https://github.com/WebAssembly/half-precision/blob/29a9b9462c9285d4ccc1a5dc39214ddfd1892658/proposals/half-precision/Overview.md Note: the current spec has f32.load_f16 as opcode 0xFD0120, but this is incorrect and will be changed to 0xFC30 soon.
-