- Feb 02, 2024
-
-
Anatoly Trosinenko authored
In preparation for implementing code generation for more @llvm.ptrauth.* intrinsics, move the expansion of blend(register, small integer) variant of @llvm.ptrauth.blend to the AArch64PointerAuth pass, where most other PAuth-related code generation takes place.
-
Micah Weston authored
Adds raw printing of PGOAnalysisMap in llvm-readobj. I'm leaving the fixme's for a later patch that will provide a 'pretty' printing for BBFreq and BrProb (i.e. relative frequencies and probabilities) that will apply to both llvm-readobj and llvm-objdump.
-
michaelrj-google authored
Much of unistd involves modifying files. The tests for these functions need to use libc_make_test_file_path which didn't exist when they were first implemented. This patch adds most of unistd to the bazel along with the corresponding tests. Tests that modify directories had to be disabled since bazel doesn't seem to handle them properly.
-
Carlos Galvez authored
This functionality already exists in cppcoreguidelines-use-default-member-init. It was deprecated from this check in clang-tidy 17. This allows us to fully decouple this check from the corresponding modernize check, which has an unhealthy dependency. Fixes https://github.com/llvm/llvm-project/issues/62169 --------- Co-authored-by:
Carlos Gálvez <carlos.galvez@zenseact.com>
-
Kelvin Li authored
-
Maksim Panchenko authored
Write modified Linux kernel binary to disk. The output is not supposed to be functional at the moment, but it will allow for future patches to test the output binary.
-
Maksim Panchenko authored
When we adjust section sizes while rewriting a binary, we should be using section offsets and not addresses to determine if section overlap. NFC for existing binaries.
-
Nick Desaulniers authored
The intent of the test is to check that: 1. The type generic macros are defined. 2. Those macros dispatch to the correct underlying function. The issue is that when new functionality is added to our stdbit.h without rolling out the new entrypoint to all targets, this test breaks because our generated stdbit.h will not contain declarations for the underlying function. In that case, we should just declare the underlying functions first before including our generated stdbit.h which just contains declarations. A definition is a declaration, but redeclarations must match, hence the additions of noexcept and extern "C".
-
Jiahan Xie authored
RegisterBank Selection for scalable vector G_ADD and G_SUB by creating new mappings for different types of vector register banks. Then implement Instruction Selection for the same operations by choosing the correct RISC-V vector register class.
-
Craig Topper authored
Based on the spec here https://github.com/riscv/riscv-ssqosid/releases/tag/v1.0-rc1 Ssqosid extension name will be added in a separate patch.
-
Peiming Liu authored
…parse loops.
-
Brendan Sweeney authored
This PR implements experimental support for the RISC-V Atomic Load-Acquire and Store-Release Extension (Zalasr). It has been approved to be pursued as a fast track extension (https://lists.riscv.org/g/tech-unprivileged/topic/arc_architecture_review/101951698), but has not yet been approved by ARC or ratified. See https://github.com/mehnadnerd/riscv-zalasr for draft spec. --------- Co-authored-by:
brs <turtwig@utexas.edu> Co-authored-by:
Philip Reames <preames@rivosinc.com>
-
Alexey Bataev authored
-
Marius Brehler authored
Harmonizes the include guard as it is rather uncommon within the MLIR subproject to append an underscore to include guards.
-
Kelvin Li authored
Assign `nullptr` to the pointer instead.
-
alx32 authored
When printing category conflicts in the ObjC category checker, also print the source file name of the problematic categories. Currently we only print the object file name. This change is mostly useful only for thinLTO builds, where the object file name will be of form 999.arm64.lto.o and thus does not reveal any information about the original source file. --------- Co-authored-by:Alex Borcan <alexborcan@meta.com>
-
Fangrui Song authored
GCC has supported a generic constraint "s" for a long time (since at least 1992), which references a symbol or label with an optional constant offset. "i" is a superset that also supports a constant integer. GCC's RISC-V port also supports a machine-specific constraint "S", which cannot be used with a preemptible symbol. (We don't bother to check preemptibility.) In PIC code, an external symbol is preemptible by default, making "S" less useful if you want to create an artificial reference for linker garbage collection, or define sections to hold symbol addresses: ``` void fun(); // error: impossible constraint in ‘asm’ for riscv64-linux-gnu-gcc -fpie/-fpic void foo() { asm(".reloc ., BFD_RELOC_NONE, %0" :: "S"(fun)); } // good even if -fpie/-fpic void foo() { asm(".reloc ., BFD_RELOC_NONE, %0" :: "s"(fun)); } ``` This patch adds support for "s". Modify https://reviews.llvm.org/D105254 ("S") to handle multi-depth GEPs (https://reviews.llvm.org/D61560). -
Nick Desaulniers authored
-
Nikolas Klauser authored
The header is unused now, so we can remove it.
-
Mike Rice authored
Move the diagnostic so it fires only when doing an OpenMP capture, not for non-OpenMP captures. This allows non-OpenMP code to work when using OpenMP elsewhere, such as the code reported in https://github.com/llvm/llvm-project/issues/66999.
-
Matin Raayai authored
`TargetOptions` is currently passed by value in AMDGPU targets, which makes unnecessary copies. This PR fixes this issue.
-
lntue authored
-
Yaxun (Sam) Liu authored
Currently machine LICM hoist PC_ADD_REL_OFFSET out of loops, causes register pressure when function calls are deep in loops. This is a main cause of sgpr spill for programs containing large number of function calls in loops. This patch marks PC_ADD_REL_OFFSET as rematerializable, which eliminates sgpr spills due to function calls in loops.
-
lntue authored
-
jeffreytan81 authored
`statistics dump` command relies on `SymbolFile::GetDebugInfoSize()` to get total debug info size. The current implementation is missing debug info for split dwarf scenarios which requires getting debug info from separate dwo/dwp files. This patch fixes this issue for split dwarf by parsing debug info from dwp/dwo. New yaml tests are added. --------- Co-authored-by:jeffreytan81 <jeffreytan@fb.com>
-
XDeme authored
Fixes llvm/llvm-project#80062
-
Alexey Bataev authored
-
Paschalis Mpeis authored
Run lines appear in a more natural order: - no veclib (neon, sve) - neon + veclib - sve + veclib - sve + tailfold + veclib
-
lntue authored
-
Krystian Stasiowski authored
This patch removes on-stack `TemplateArgumentList`'s. They were primary used to pass an `ArrayRef<TemplateArgument>` to `Sema::getTemplateInstantiationArgs`, which had a `const TemplateArgumentList*` parameter for the innermost template argument list. Changing this parameter to an `std::optional<ArrayRef<TemplateArgument>>` eliminates the need for on-stack `TemplateArgumentList`'s, which in turn eliminates the need for `TemplateArgumentList` to store a pointer to its template argument storage (which is redundant in almost all cases, as it is an AST allocated type).
-
Kevin Frei authored
The amount and format of output from `llvm-dwarfdump --verify` makes it quite difficult to know if a change to a tool that produces or modifies DWARF is causing new problems, or is fixing existing problems. This diff adds a categorized summary of issues found by the DWARF verifier, on by default, at the bottom of the error output. The change includes a new `--error-display` option with 4 settings: * `--error-display=quiet`: Only display if errors occurred, but no details or summary are printed. * `--error-display=summary`: Only display the aggregated summary of errors with no error detail. * `--error-display=details`: Only display the detailed error messages with no summary (previous behavior) * `--error-display=full`: Display both the detailed error messages and the aggregated summary of errors (the default) I changed a handful of tests that were failing due to new output, adding the flag to use the old behavior for all but a couple. For those two I added the new aggregated output to the expected output of the test. The `OutputCategoryAggregator` is a pretty simple little class that @clayborg suggested to allow code to only be run to dump detail if it's enabled, while still collating counts of the category. Knowing that the lambda passed in is only conditionally executed is pretty important (handling errors has to be done *outside* the lambda). I'm happy to move this somewhere else (and change/improve it) to be more broadly useful if folks would like. --------- Co-authored-by:Kevin Frei <freik@meta.com>
-
jeanPerier authored
Procedure pointer lowering used `prepareUserCallActualArgument` because it was convenient, but this helper was not meant for POINTERs when originally written and it did not handled passing NULL to an OPTIONAL procedure pointer correctly. The resulting argument should be a disassociated pointer, not an absent pointer (Fortran 15.5.2.12 point 1.). Move the logic for procedure pointer argument "cooking" in its own helper to avoid triggering the logic that created an absent argument in this case.
-
Emma Pilkington authored
Admittedly, its a bit ugly to pass the ABIVersion through onSymbolStart but I'm not sure what a better place for it would be.
-
Amir Ayupov authored
-
Anatoly Trosinenko authored
Add AEK_PAUTH to ARMV8_3A in TargetParser and let it propagate to ARMV8R, as it aligns with GCC defaults. After adding AEK_PAUTH, several tests from TargetParserTest.cpp crashed when trying to format an error message, thus update a format string in AssertSameExtensionFlags to account for bitmask being pre-formatted as std::string. The CHECK-PAUTH* lines in aarch64-target-features.c are updated to account for the fact that FEAT_PAUTH support and pac-ret can be enabled independently and all four combinations are possible.
-
Krystian Stasiowski authored
According to [temp.pre] p5: > In a template-declaration, explicit specialization, or explicit instantiation the init-declarator-list in the declaration shall contain at most one declarator. A member-declaration that is a template-declaration or explicit-specialization contains a declaration, even though it declares a member. This means it _will_ contain an init-declarator-list (not a member-declarator-list), so [temp.pre] p5 applies. This diagnoses declarations such as: ``` struct A { template<typename T> static const int x = 0, f(); // error: a template declaration can only declare a single entity template<typename T> static const int g(), y = 0; // error: a template declaration can only declare a single entity }; ``` The diagnostic messages are the same as those of the equivalent namespace scope declarations. Note: since we currently do not diagnose declarations with multiple abbreviated function template declarators at namespace scope e.g., `void f(auto), g(auto);`, so this patch does not add diagnostics for the equivalent member declarations. This patch also refactors `ParseSingleDeclarationAfterTemplate` (now named `ParseDeclarationAfterTemplate`) to call `ParseDeclGroup` and return the resultant `DeclGroup`. -
Ilya Biryukov authored
Fixes #80284. Calling `getASTRecordLayout` on invalid types may crash and results of `__datasizeof` on invalid types can be arbitrary, so just use whatever `sizeof` returns.
-
Simon Pilgrim authored
[X86] X86FixupVectorConstants.cpp - refactor constant search loop to take array of sorted candidates Pulled out of #79815 - refactors the internal FixupConstant logic to just accept an array of vzload/broadcast candidates that are pre-sorted in ascending constant pool size
-
- Feb 01, 2024
-
-
Philip Reames authored
-
Ivan Butygin authored
Properly handle fusion of loops with reductions: * Check there are no first loop results users between loops * Create new loop op with merged reduction init values * Update `scf.reduce` op to contain reductions from both loops * Update loops users with new loop results
-