- Apr 03, 2024
-
-
Florian Hahn authored
Test case for failures from https://lab.llvm.org/buildbot/#/builders/74/builds/26697 caused the revert of 95fef1df in 589c7abb.
-
Louis Dionne authored
-
Louis Dionne authored
This is an exact upstreaming of the downstream diff. Minor simplifications can be made in the future but upstreaming as-is will make it easier for us to deal with downstream merge conflicts. Partially fixes #83805
-
AinsleySnow authored
Hi all, This patch is a follow-up of #79101. It migrates logic from `visitVSELECT` to `visitVP_SELECT` to simplify `vp.select`. With this patch we can do the following combinations: ``` vp.select undef, T, F --> T (if T is a constant), F otherwise vp.select <condition>, undef, F --> F vp.select <condition>, T, undef --> T vp.select false, T, F --> F vp.select <condition>, T, T --> T ``` I'm a total newbie to llvm and I'm sure there's room for improvements in this patch. Please let me know if you have any advice. Thank you in advance!
-
Simon Pilgrim authored
This is an extension to 07151f02 which handled SandyBridge so we at least model the regression identified in #14640 Confirmed by Agner + uops.info/uica (SkylakeServer also had an incorrect use of Port015 instead of just Port01) I raised #86669 as a proposal for a 'x86 unfold' pass that can unfold these (if we have the free registers) driven by the scheduler model.
-
Jacek Caban authored
It's a common pattern that we have a machine type, but we don't care which ARM64* platform we're dealing with. We already have isAnyArm64 for that, but it does not fit cases where we use a switch statement. With this helper, it's easy to simplify such cases by using Triple::ArchType instead of machine type.
-
Gleb Popov authored
This is a proper fix for https://github.com/llvm/llvm-project/issues/40308
-
Longsheng Mou authored
Empty structs are ignored for parameter passing purposes, but va_arg was incrementing the pointer anyway for that the size of empty struct in c++ is 1 byte, which could lead to va_list getting out of sync. Fix #86057.
-
Simon Camphausen authored
For pointer types the indices are restricted to one integer-like operand. For opaque types no further restrictions are made.
-
Haojian Wu authored
-
Louis Dionne authored
One or two of the tests need slight tweaks to make them pass when building with musl. This patch is a re-application of b61fb184 which was reverted in 0847c903 because it broke the build. rdar://118885724 Co-authored-by:
Alastair Houghton <ahoughton@apple.com>
-
Louis Dionne authored
Fixes #84843
-
Han-Kuan Chen authored
FixedVectorType::isValidElementType for consistency.
-
Daniel Grumberg authored
Reenables b31414bf. Also adds a new warning for missing `--symbol-graph-dir` arg when `--emit-extension-symbol-graphs` is provided. This also reverts the commit that removed.
-
Jay Foad authored
We were generating "" (the empty string) as an alias for a bunch of FLAT instructions, which had no effect except to cause tablegen to generate some very long if-else chains in the generate AsmMatcher.
-
Chen Zheng authored
-
Florian Hahn authored
addMeadata is only over called with a single element, clean up the variant that takes multiple values.
-
Chuanqi Xu authored
This was part of https://github.com/llvm/llvm-project/pull/85050. It is suggested to split the unrelated change as much as possible. So here is the patch.
-
Chuanqi Xu authored
[C++20] [Modules] [Driver] Emit unused argument warning if we use '-fmodule-output' with non-module input We required the file name of an 'importable module unit' should end with .cppm (or .ccm, .cxxm, .c++m). But the driver can accept '-fmodule-output' for files with normal suffixes (e.g., .cpp). This is somewhat inconsistency. In this patch, we only claim the option `-fmodule-output` is used if the type of the input file is modules related. Then now the compiler will emit 'unused argument' warnings if the input file is not modules related.
-
Elizaveta Noskova authored
-
Phoebe Wang authored
This reverts commit 4b25053a. There're failures in some target.
-
David Green authored
This tries to fill in the basic vector handling for sadd_sat/uadd_sat and ssub_sat/usub_sat. It just handles the basics, marking legal types and clamping illegally sized vectors to legal ones.
-
Phoebe Wang authored
We have many problems to use CodeView for a win32-elf target, e.g., #87140 and `error: .seh_* directives are not supported on this target`. Fixes: #87140
-
Chuanqi Xu authored
Now the `DeclContext::noload_lookup()` asserts that 'this' is not a transparent context. However, this is not consistent with `DeclContext::lookup()`, which will lookup into its parent context if 'this' is a transparent context. This patch makes the behavior of `DeclContext::noload_lookup()` to be consistent with `DeclContext::lookup()`, to lookup into the parent context if 'this' is a transparent context.
-
Chuanqi Xu authored
This patch extract logics in ASTWriter::WriteASTCore about writing decls and types into a standalone function. The WriteASTCore function is pretty long and hard to read. It should be helpful for readability to extract the common logics into a standalone function. This is also helpful for further changes e.g., removing unreachable declarations.
-
Bevin Hansson authored
expand-large-fp-convert cannot handle vector types. If overly large vector element types survive into isel, they will likely be scalarized there, but since isel cannot handle scalar integer types of that size, it will assert. Handle vector types in expand-large-fp-convert by scalarizing them and then expanding the scalar type operation. For large vectors, this results in a *massive* code expansion, but it's better than asserting.
-
hanbeom authored
`and/or/xor` operations can each be changed to sum of logical operations including operators other than themselves. `x&y -> (x|y) ^ (x^y)` `x|y -> (x&y) | (x^y)` `x^y -> (x|y) ^ (x&y)` if left of condition of `SelectInst` is `and/or/xor` logical operation and right is equal to `0, -1`, or a `constant`, and if `TrueVal` consist of `and/or/xor` logical operation then we can optimize this case. This patch implements this combination. Proof: https://alive2.llvm.org/ce/z/WW8iRR Fixes https://github.com/llvm/llvm-project/issues/71792.
-
Mingming Liu authored
The check for compressed string is too restrictive (e.g. broke downstream users) and doesn't add much value to the test. Removed it.
-
Slava Zakharin authored
Recurrencies in the call graph (even if they are not executed) prevent computing the minimal stack size required for a kernel execution. This change disables some functionality of F18 IO to avoid recursive calls. A couple of functions are rewritten to work without using recursion.
-
smanna12 authored
[Clang] Fix bugs the way we handle duplicate vs conflicting values with loop attribute 'code_align' (#87372) https://github.com/llvm/llvm-project/pull/70762 added support for new loop attribute [[clang::code_align()]]. This patch fixes bugs for the test cases below that misses diagnostics due to discontinue to while loop during checking duplicate vs conflicting code_align attribute values in routine CheckForDuplicateLoopAttrs(). [[clang::code_align(4)]] [[clang::code_align(4)]] [[clang::code_align(8)]] for(int I=0; I<128; ++I) { bar(I); } [[clang::code_align(4)]] [[clang::code_align(4)]] [[clang::code_align(8)]] [[clang::code_align(32)]] for(int I=0; I<128; ++I) { bar(I); }
-
Jonas Devlieghere authored
Support generating dSYM companion files for (non-Darwin) firmware environments by considering the binary component of the triple in addition to the OS component. rdar://125629792
-
Chuanqi Xu authored
Before this patch, the size of the reduced BMI may be large than the full BMI when the source codes is pretty small. This violates the design principles. The root cause is an oversight that we skipped something in full BMI but forgot to make it in reduced BMI.
-
Vinayak Dev authored
Moves the functions `fsqrt()` and `dsqrt()` from basic functions to higher math functions in math docs
-
Fangrui Song authored
The unstable partition in partitionRels might reverse IRELATIVE relocations, so stable_partition in computeRels would lead to IRELATIVE relocations ordered by decreasing offset. Use stable_partition in partitionRels to get IRELATIVE relocations ordered by increasing offset.
-
Vinayak Dev authored
Re-organizes the tables that listed libc's support for math functions, and adds two new columns to the tables indicating where the respective function definitions and error handling methods are located in the C23 standard draft WG14-N3096.
-
Cinhi Young authored
- The opcode of the mina.fmt and max.fmt is documented wrong, the object code compiled from the same assembly with LLVM behaves differently than one compiled with GCC and Binutils. - Modify the opcodes to match Binutils. The actual opcodes are as follows: {5,3} | bits {2,0} of func | ... | 100 | 101 | 110 | 111 -----+-----+-----+-----+-----+----- 010 | ... | min | mina | max | maxa -
Joseph Huber authored
This reverts commit 2cf8118e. Failing tests, revert until I can fix it
-
Fangrui Song authored
Improve the test gnu-ifunc-nonpreemptible.s to check IRELATIVE offsets. Ensure that IRELATIVE offsets are ordered to improve locality.
-
Jan Svoboda authored
[clang][modules] NFCI: Pragma diagnostic mappings: write/read `FileID` instead of `SourceLocation` (#87427) For pragma diagnostic mappings, we always write/read `SourceLocation` with offset 0. This is equivalent to just writing a `FileID`, which is exactly what this patch starts doing. Originally reviewed here: https://reviews.llvm.org/D137213
-
Craig Topper authored
Use a single insert for the non-mask case instead of a push_back followed by an insert that may contain 0 registers.
-