- Apr 07, 2023
-
-
Fabian Mora authored
Implementation of Pass and Dialect Plugins that mirrors LLVM Pass Plugin implementation from the new pass manager. Currently the implementation only supports using the pass-pipeline option for adding passes. This restriction is imposed by the `PassPipelineCLParser` variable in mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:114 that loads the parse options statically before parsing the cmd line args. ``` mlir-opt stanalone-plugin.mlir --load-dialect-plugin=lib/libStandalonePlugin.so --pass-pipeline="builtin.module(standalone-switch-bar-foo)" ``` Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D147053
-
Craig Topper authored
This lets tablegen generated the code and avoids a string lookup of the CSR name at runtime.
-
Lang Hames authored
ORC's ELF platform support prefers the newer libunwind registration functions (__unw_add_dynamic_eh_frame_section, __unw_remove_dynamic_eh_frame_section) when they're available, and falls back to the older registration functions (__register_frame, __deregister_frame) when they're not. Until now the choice of registration functions has been made on the controller side in ELFNixPlatform: The platform JITDylib was searched for the registration functions and aliases set depending on which ones were found. This patch drops that selection logic from ELFNixPlatform and instead uses weak imports of the registration functions in elfnix_platform.cpp to identify which ones are available and choose which ones to use. This has a few small benefits: (1) The registration functions don't need to be defined in the same JITDylib as the ORC runtime -- it's sufficient for them to be defined in a JITDylib that the ORC runtime's JITDylib links against. (2) THe elfnix_platfrom code is more readable, as we don't have to dig into ELFNixPlatform.cpp on the controller side to discover the definition of the registration aliases. (3) We may save a separate round-trip to look up the registration APIs (the lookup will be folded into the ordinary external symbol lookup when linking the runtime).
-
Nico Weber authored
-
Mahesh Ravishankar authored
Currently the use of bare pointer calling convention is controlled globally through use of an option in the `LLVMTypeConverter`. To allow more fine-grained control use an attribute on a function to drive the calling convention to use. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D147494
-
Alexey Bataev authored
Made the condition for the erasing of the gathered extractelements stricter, remove it only if it has single vectorized use, otherwise leave it for instcombiner/instsimplify analysis.
-
Philip Reames authored
-
Nico Weber authored
-
- Apr 06, 2023
-
-
Joe Nash authored
-
Akshay Baviskar authored
generateUnrolledLoop was assuming that the yielded value is always generated in the Block corresponding to the loop being unrolled. Thus, it was updating the last yielded values with it's cloned value. However, if the yielded value is not generated in the same Block then the cloned value and it's corresponding mapping won't exist, resulting in a crash. Fix this. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D146931
-
Vimal Patel authored
test-affine-parametric-tile pass was crashing on an incorrect input. Instead it should emit an error message and exit. Fixes: https://github.com/llvm/llvm-project/issues/61528 Reviewed By: mehdi_amini, bondhugula Differential Revision: https://reviews.llvm.org/D147595
-
Valentin Clement authored
Update the design document to reflect the actual implementation of polymorphic entities. Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D147665
-
OCHyams authored
Revert D146987 for the 2nd time. This reverts commit 91a07404 Buildbot: https://lab.llvm.org/buildbot/#/builders/70/builds/36007
-
Philip Reames authored
-
Philip Reames authored
And more importantly, move the fixme to the sole caller where it actually makes sense in context.
-
Matthias Springer authored
-
Dávid Bolvanský authored
This reverts commit 3b5ff3a6.
-
Dávid Bolvanský authored
This reverts commit f6059243.
-
Dávid Bolvanský authored
Based on info from https://github.com/llvm/llvm-project/issues/54964
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
-
OCHyams authored
Correctly handle the case of splitting an alloca which backs contiguous distinct variables, where a slice's size equals the size of a backed variable. We need to ensure that we don't generate fragments expressions with fragments of the same size as the variable as this is a verifier error. Prior to this patch a fragment expression would be created in this situation. e.g. splitting an alloca i64 with two adjacent 32-bit variables into two 32-bit allocas, the new dbg.assign expressions would contain (DW_OP_LLVM_fragment, 0, 32) and (DW_OP_LLVM_fragment, 32, 32) even though those fragments cover each variable entirely. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D147696
-
Alexis Engelke authored
All users of MCCodeEmitter::encodeInstruction use a raw_svector_ostream to encode the instruction into a SmallVector. The raw_ostream however incurs some overhead for the actual encoding. This change allows an MCCodeEmitter to directly emit an instruction into a SmallVector without using a raw_ostream and therefore allow for performance improvments in encoding. A default path that uses existing raw_ostream implementations is provided. Reviewed By: MaskRay, Amir Differential Revision: https://reviews.llvm.org/D145791
-
Aaron Ballman authored
We were trying to mangle templated names and the Microsoft mangler does not have an implementation for mangling dependent names. Instead, we now skip trying to print the mangled name if the AST node is still a templated node rather than a fully resolved node. Fixes https://github.com/llvm/llvm-project/issues/61440
-
NAKAMURA Takumi authored
It is easier to introduce header-only library.
-
Tue Ly authored
Let RISCV64 targets math implementations with and without FMA automatically. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D146730
-
liqinweng authored
This patch is mainly to deal with folding trunci with ext,as flows: trunci(zexti(a)) -> trunci(a) trunci(zexti(a)) -> trunci(a) Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D140604 -
Dmitri Gribenko authored
-
David Spickett authored
COMPILER_RT_DEFAULT_TARGET_ONLY is the goto workaround for building only one of a multilib setup while still being able to autodetect the native target. For example only building 64 bit libraries on Intel instead of 32 and 64 bit. Which may fail without 32 bit compatibility libs installed. As reported in https://discourse.llvm.org/t/configuring-compiler-rt-to-use-default-target-only-does-not-work/62727 this build config hasn't worked in a while. It relies on a variable usually set during cross compliation, though my testing shows you can set it in other scenarios too. https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_TARGET.html So the options you need to provide are: -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON -DCMAKE_C_COMPILER_TARGET="aarch64-unknown-linux-gnu" And we should error if CMAKE_C_COMPILER_TARGET isn't set. Reviewed By: glaubitz Differential Revision: https://reviews.llvm.org/D147598
-
Simon Pilgrim authored
[DAG] combineSelect - select(i1,vXi1,vXi1) - only cast <X x i1> constants to iX pre-legalization or if its a legal type Fixes #61524
-
Pavel Kosov authored
Currently llvm-exegesis fails to do this which causes every snippet to crash ~~ Huawei RRI, OS Lab Reviewed By: courbet Differential Revision: https://reviews.llvm.org/D147699
-
Dmitri Gribenko authored
Remove the file copied from the source tree before overwriting it. If the source code is stored with readonly (0444) permissions, then the copied files are also readonly and attempting to overwrite them fails.
-
Shengchen Kan authored
Reviewed By: yubing Differential Revision: https://reviews.llvm.org/D147527
-
Max Kazantsev authored
Looks like it can benefit from this mode.
-
Shengchen Kan authored
1. Simplify code by using conditional operator 2. Add comments for "kz" and "store" cases 3. Rename variables to match flags
-
Caroline Concatto authored
The LDR and STR instructions must have the same value for imm4(second operand) and offset(fourth operand). The disassembly guarantees that happens, but the Asm parser was not checking that. This patch fixes that by checking if the second operand and fourth operand are immediate and have the same value. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D147617
-
Mariya Podchishchaeva authored
Due to not resetting that, clang still thinks that it is in immediate function context even if it already entered non-consteval function. This caused consteval functions reaching codegen in some cases. Fixes https://github.com/llvm/llvm-project/issues/61142 Reviewed By: cor3ntin, aaron.ballman Differential Revision: https://reviews.llvm.org/D147531
-
Simon Pilgrim authored
FCMP may use ISD::SETNE when nnan, we don't want to end up with cases where we mismatch signed zeros etc. Thanks to @pengfei for the test case from D147688
-
Dmitry Makogon authored
This reverts commit efd34ba6. Reapplies 8ff48326. Missed a failing test. Needed to just update test checks.
-