- Jun 27, 2023
-
-
cabreraam authored
This patch implements the lowering for the `hlfir.char_extremum` operation. Discussion for this patch can be found in the draft patch [here](https://reviews.llvm.org/D143326). The reason for not promoting this draft to a true patch for review was because I needed to separate the op definition/codegen and lowering into two separate patches, as preferred by @jeanPerier. Depends on D152474 Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D152475
-
Fangrui Song authored
-
Aiden Grossman authored
llvm-exegesis currently isn't compiling on 32-bit ARM due to SYS_mmap not being defined as 32-bit ARM instead uses SYS_mmap2. This patch defines SYS_mmap to be SYS_mmap2 in the relevant places to allow for compilation to succeed.
-
Matthias Braun authored
No longer conservatively assume a load/store accesses the stack when we can prove that we did not compute any stack-relative address up to this point in the program. We do this in a cheap not-quite-a-dataflow-analysis: Assume `NoStackAddressUsed` when all predecessors of a block already guarantee it. Process blocks in reverse post order to guarantee that except for loop headers we have processed all predecessors of a block before processing the block itself. For loops we accept the conservative answer as they are unlikely to be shrink-wrappable anyway. Differential Revision: https://reviews.llvm.org/D152213
-
Matthias Braun authored
Switch and update some tests to use `update_llc_test_checks` to reduce clutter in upcoming change. Differential Revision: https://reviews.llvm.org/D152215
-
Aiden Grossman authored
Some builders are currently failing as they don't have MAP_FIXED_NOREPLACE available. This patch checks if MAP_FIXED_NOREPLACE is available and if it isn't, it is simply defined as MAP_FIXED.
-
Shubham Sandeep Rastogi authored
When emitting a debug_frame section, it contains a named symbol. > echo "void foo(void) {}" | clang -arch arm64 -ffreestanding -g -c -o \ /tmp/test.o -x c - > nm /tmp/test.o -s __DWARF __debug_frame 0000000000000200 s ltmp1 There are no such symbols emitted in any of the other DWARF sections, this is because when the __debug_frame section is created, it doesn't get a `BeginSymName` and so it creates a named symbol, such as `ltmp1` and emits it when we switch to the section in MCDwarf.cpp. This patch fixes the above issue. Differential Revision: https://reviews.llvm.org/D153484 -
Aiden Grossman authored
On some platforms such as PPC shm_open is in librt and it isn't automatically linked against. This patch explicitly links against librt in the unittests which should hopefully fix the symbol resolution errors.
-
Diego Caballero authored
This patch fixes a bug in the way we compute the vector type for vector transfer writes when the value to store needs to be transposed. Reviewed By: nicolasvasilache, mravishankar Differential Revision: https://reviews.llvm.org/D153687
-
Nicolas Vasilache authored
matmul with transposed LHS operand allows better memory access patterns on several architectures including common GPUs. Having a named op for it allows to handle this kind of matmul in a more explicit way.
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Nico Weber authored
-
Aart Bik authored
Submitting for Wren Reviewed By: K-Wu Differential Revision: https://reviews.llvm.org/D153804
-
Fangrui Song authored
-
Nicolas Vasilache authored
D141430 added the generated yaml file for (batch_)?matmul_transpose_b ops, but the source of truth core_named_ops.py was not updated. This change fixes .py file to generate the same result as the yaml file. Differential revision: https://reviews.llvm.org/D150059 Authored-by:
kon72 <kinsei0916@gmail.com>
-
Philip Reames authored
-
Fangrui Song authored
-
Anthony Cabrera authored
This patch adds an hlfir operation called `char_extremum`, which takes the lexicographic comparison between a variadic number (minimum of 2 arguments) of characters. Discussion for this work can be found in the draft revision found [here](https://reviews.llvm.org/D143326). The reason I'm not promoting that draft to a true patch for review was because I needed to separate out the op definition/codegen and lowering as two separate patches, as preferred by @jeanPerier. Differential Revision: https://reviews.llvm.org/D152474
-
Fangrui Song authored
Previously, Clang Driver reported a warning when assembler input was assembled with the -mabi= option. D152856 added TargetSpecific to -mabi= option and reported an error for such a case. This change restores the previous behavior by reporting a warning. GCC translates -mabi={apcs-gnu,atpcs} to gas -meabi=gnu and other -mabi= values to -meabi=5. We don't support setting e_flags to any value other than EF_ARM_EABI_VER5. Close https://github.com/ClangBuiltLinux/linux/issues/1878 Reviewed By: michaelplatings Differential Revision: https://reviews.llvm.org/D153691 -
Aiden Grossman authored
This patch adds in several functions to ExegesisTarget that will assist in setting up memory for the planned memory annotations. Reviewed By: courbet Differential Revision: https://reviews.llvm.org/D151023
-
Sam McCall authored
The SAT solver imported its constraints by iterating over an unordered DenseSet. The path taken, and ultimately the runtime, the specific solution found, and whether it would time out or complete could depend on the iteration order. Instead, have the caller specify an ordered collection of constraints. If this is built in a deterministic way, the system can have deterministic behavior. (The main alternative is to sort the constraints by value, but this option is simpler today). A lot of nondeterminism still appears to be remain in the framework, so today the solver's inputs themselves are not deterministic yet. Differential Revision: https://reviews.llvm.org/D153584
-
Craig Topper authored
I'm investigating if it is feasible to have i32 as a legal type for RV64. The first thing we need to do is make i32 a valid type for the GPR register class. We already added f32/f64 as valid types which required adding explicit types to tablegen patterns. Adding additional types to GPR is free now. Reviewed By: sunshaoce Differential Revision: https://reviews.llvm.org/D151177
-
Aiden Grossman authored
This patch changes to disabling tests in SubprocessMemoryTest.cpp using preprocessor directives rather than pulling the file out of the build using CMake. This is the de facto canonical way to do it in the rest of the tree as seen in other unittest files such as DwarfDebugInfoTest.cpp.
-
Mike Crowe authored
Add FormatStringConverter utility class that is capable of converting printf-style format strings into std::print-style format strings along with recording a set of casts to wrap the arguments as required and removing now-unnecessary calls to std::string::c_str() and std::string::data() Use FormatStringConverter to implement a new clang-tidy check that is capable of converting calls to printf, fprintf, absl::PrintF, absl::FPrintF, or any functions configured by an option to calls to std::print and std::println, or other functions configured by options. In other words, the check turns: fprintf(stderr, "The %s is %3d\n", description.c_str(), value); into: std::println(stderr, "The {} is {:3}", description, value); if it can. std::print and std::println can do almost anything that standard printf can, but the conversion has some some limitations that are described in the documentation. If conversion is not possible then the call remains unchanged.... -
Valentin Clement authored
Add loweirng support for array reduction with the max operator. Simplify generation of init value. Depends on D153661 Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D153663
-
Craig Topper authored
[RISCV][SelectionDAGBuilder] Fix an implicit scalable TypeSize to fixed size conversion in getUniformBase. If the index needs to be scaled by a scalable size, just give up. Fixes #63459 Reviewed By: frasercrmck, RKSimon Differential Revision: https://reviews.llvm.org/D153601
-
Shubham Sandeep Rastogi authored
This reverts commit d6576add. Reverted because BUILD FAILED: failed 41960 expected passes 86 expected failures 28788 unsupported tests 1 unexpected failures (failure)
-
Jeff Niu authored
Depends on D153736 Reviewed By: rriddle, jpienaar Differential Revision: https://reviews.llvm.org/D153780
-
Jeff Niu authored
Fold `mul(x, 1)` and `mul(x, 0)`. Depends on D153736 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D153736
-
Jeff Niu authored
This is a case that is not picked up by integer range inference and suggests a weakness with integer range inference on the index dialect. The problem is that when `[1, SMAX_64]` is truncated to 32 bits, the resulting range could be `[SMIN_32, SMAX_32]`, making the subsequent comparison worthless. This is because integer range inference doesn't know that the result of the max/min inference also changes based on the bitwidth, and doing the truncation locally at the input of the comparison op loses that information. This also was a pattern that frequently showed up in our code, so adding it as a folder allows dead code to be pruned more frequently. Depends on D153731 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D153732
-
Jeff Niu authored
Mark the relevant index dialect operations as Commutative. Specifically, this allows the folder to move constant operands to the RHS. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D153731
-
Matt Arsenault authored
-
Philip Reames authored
This converts a crash (due an assertion inside getImm) into a verifier failure. Much easier to debug when you have malformed instructions.
-
Matt Arsenault authored
Pre-C99 didn't include bool, and C99 allows you to redefine true/false apparently.
-
Matt Arsenault authored
-
David Goldman authored
Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D152720
-
Shubham Sandeep Rastogi authored
When emitting a debug_frame section, it contains a named symbol. > echo "void foo(void) {}" | clang -arch arm64 -ffreestanding -g -c -o \ /tmp/test.o -x c - > nm /tmp/test.o -s __DWARF __debug_frame 0000000000000200 s ltmp1 There are no such symbols emitted in any of the other DWARF sections, this is because when the __debug_frame section is created, it doesn't get a `BeginSymName` and so it creates a named symbol, such as `ltmp1` and emits it when we switch to the section in MCDwarf.cpp. This patch fixes the above issue. Differential Revision: https://reviews.llvm.org/D153484 -
Garvit Gupta authored
Support for below instruction is added 1. CFLUSH.D.L1 2. CDISCARD.D.L1 3. CEASE Additionally, Zihintpause extension is added to sifive s76 for pause instruction. Spec - https://sifive.cdn.prismic.io/sifive/767804da-53b2-4893-97d5-b7c030ae0a94_s76mc_core_complex_manual_21G3.pdf Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D153370
-
LLVM GN Syncbot authored
-