- Mar 15, 2023
-
-
Yeting Kuo authored
The patch handles fixed type strict-fp by new RISCVISD::STRICT_ prefixed isd nodes. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D145900
-
Shafik Yaghmour authored
[Clang] Fix ClassifyImplicitMemberAccess to handle cases where the access in an unevaluated context is not within a CXXRecordDecl or CXXMethodDecl ClassifyImplicitMemberAccess assumes that if we are not in a static context then the DeclContext must be a CXXRecordDecl or a CXXMethodDecl. In the case of the unevaluated context this may not be true. This will lead to a crash because contextClass will remain a nullptr. Fixes: https://github.com/llvm/llvm-project/issues/37792 Fixes: https://github.com/llvm/llvm-project/issues/48405 Differential Revision: https://reviews.llvm.org/D142490
-
NAKAMURA Takumi authored
For now, I have introduced `llvm::tmp::getValueType(Rec)` as a copy from `CodeGenTarget.cpp`. This will be removed in the near future, when IntrinsicEmitter will not depend on MVT. Differential Revision: https://reviews.llvm.org/D143844
-
NAKAMURA Takumi authored
Differential Revision: https://reviews.llvm.org/D143844
-
NAKAMURA Takumi authored
-
Jorge Gorbe Moya authored
https://reviews.llvm.org/D146014 removed the dependency on errno from several targets and added it to the `libc_test` macro. However, strtol_test_helper is not a `libc_test` but a `cc_library` so it's missing a dependency.
-
Fangrui Song authored
-
Jakub Kuderski authored
Only rewrite `scf.yield` when the parent op is supported by scf-to-spirv. Fixes: #61380, #61107, #61148 Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D146080
-
Jakub Kuderski authored
This is a clean up before fixing issues identified in this pass by https://github.com/llvm/llvm-project/issues/61380 and similar issues. - Move patterns definitions closer to declarations. - Simplify pattern definitions. - Drop hand-written pass constructor in favor of an auto-generated on. - Fix typos in pass description. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D146077
-
David Blaikie authored
-
Amir Ayupov authored
Apply the replacement throughout BOLT. Reviewed By: #bolt, rafauler Differential Revision: https://reviews.llvm.org/D145464
-
Amir Ayupov authored
Reviewed By: #bolt, rafauler Differential Revision: https://reviews.llvm.org/D144924
-
Fangrui Song authored
D132262 tried to simplify `IsMetadataOrEHFrameSection` originally introduced in D127549 but caused a regression as `.quad` directives in ``` .section .note,"a",@note; note: .quad extern-note # extern is undefined .section .rodata,"a",@progbits; rodata: .quad extern-rodata # extern is undefined .section .nonalloc,"",@progbits; nw: .quad extern-nw ``` are incorrectly rejected: these differences may be link-time constants and are allowed in GNU assembler and LLVM MC's non-RISC-V ports. Relax the conditions to allow these cases. For A-B, A may be defined later, but this requiresFixups call has to eagerly make a decision. For now, emit ADD/SUB unless A is `.L*`. This euristic handles many temporary label differences for .debug_* and .apple_types sections. Ideally we should delay the decision of PC-relative vs ADD/SUB until A is defined. Reviewed By: compnerd Differential Revision: https://reviews.llvm.org/D145474
-
Fangrui Song authored
Follow-up to D143226 Currently we incorrectly emit R_RISCV_ADD32/R_RISCV_SUB32. Emit R_RISCV_PLT32 instead. The new behavior matches x86-64 and AArch64.
-
Arthur Eubanks authored
Or else InstCombine can incorrectly report that no change has been made. This optimization doesn't really fit into InstCombine since it optimizes multiple instructions at once; there's likely a more comprehensive fix. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D146064
-
bixia1 authored
Previously, we generate function calls to compare values for sorting. It turns out that the compiler doesn't inline those function calls. We now directly generate inlined code. Also, modify the code for comparing values to use less number of branches. This improves all sort implementation in general. For arabic-2005.mtx CSR, the improvement is around 25%. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D145442
-
Kiran Chandramohan authored
Add conversion for integer multiplication in scf reductions in the SCF to OpenMP dialect conversion. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D145948
-
Kiran Chandramohan authored
This patch adds support for reduction of max-intrinsic for scalar types. Max is lowered as a compare-select in the default lowering flow for Flang. This pattern is matched and replaced with the OpenMP dialect reduction operation. Note: This is a temporary flow. The plan is to move to a flow where the OpenMP reduction operation is inserted during lowering. Reviewed By: do Differential Revision: https://reviews.llvm.org/D145083
-
David Green authored
The FP16 broadcast and transpose can always use the same instructions as are used for i16 vectors, with or without +fullfp16. This fills in some extra costs to make sure we get them right. Differential Revision: https://reviews.llvm.org/D146035
-
Julian Lettner authored
Remove the `-lower-global-dtors-via-cxa-atexit` escape hatch introduced in D121736 [1], which switched the default lowering of global destructors on MachO to use `__cxa_atexit()` to avoid emitting deprecated `__mod_term_func` sections. I added this flag as an escape hatch in case the switch causes any problems. We didn't discover any problems so now we can remove it. [1] https://reviews.llvm.org/D121736 rdar://90277838 Differential Revision: https://reviews.llvm.org/D145715
-
Jacob Lambert authored
The bundler accepts both of the following for the --target option: hip-amdgcn-amd-amdhsa-gfx900 (no env field) hip-amdgcn-amd-amdhsa--gfx900 (blank env field) The environment field is defined as optional for Triples in Triple.h. However, in this patch we update the bundler to internally standardize to include the env field. While users aren't required to specify an env field when listing targets on the commandline, bundles generated by the offload-bundler will include the ABI field. This standardization simplifies things for APIs that deal with bundles generated by the clang-offload-bundler tool. Differential Revision: https://reviews.llvm.org/D145770
-
Philip Reames authored
Shrinking a patch about to be posted for review.
-
Valery N Dmitriev authored
Cost modeling for GEPs should actually be target dependent but is currently done inside SLP target-independent way. Sinking it into TTI enables target dependent implementation. This patch adds new TTI interface and implementation of the basic functionality trying to retain existing cost modeling. Differential Revision: https://reviews.llvm.org/D144770
-
Slava Zakharin authored
-
Daniel Thornburgh authored
This change had tests that break whenever LLVM_ENABLE_LINKER_BUILD_ID is set, as is the case in the Fuchsia target. This reverts commits: f81317a5 72474afa
-
Valentin Clement authored
When a subroutine has an entry statement, the non-used argument will be a fir.alloca and result in a fir.ref<fir.class<T>> for polymorphic entities. In createBox, just load the box instead of creating a wrong box. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D146079
-
Arthur Eubanks authored
NewGVN GVNHoist GVNSink MemCpyOpt Float2Int These were only used for the optimization pipeline, of which the legacy version was removed.
-
Philip Reames authored
-
Joseph Huber authored
-
Kazu Hirata authored
This allows developing and distributing inlining heuristics outside of tree. And together with the inline advisor plugins allows for fine grained control of the inliner. The PluginInlineOrderAnalysis class serves as the entry point for dynamic advisors. Plugins must register instances of this class to provide their own InlineOrder. I'm checking in this patch on behalf of ibricchi <ibricchi@student.ethz.ch>. Differential Revision: https://reviews.llvm.org/D140637
-
Craig Topper authored
We currently have 3 functions and 3 lookup tables. This was the most expediant and obvious way to fix several bugs. This patch uses a single function and single lookup table. It uses APFloat::convert to convert from the half or double to single precision. If the conversion doesn't have any errors or lose any information we use the f32 table to finish the lookup. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D145897
-
Craig Topper authored
-
Slava Zakharin authored
Without this change the problem is that flangOmpReport and flangPrintFunctionNames libraries are not built under 'all', but they are imported targets via LLVMExports.cmake so that any out-of-tree build that configures upon LLVM+Flang package will get this CMake error: ``` The imported target "flangPrintFunctionNames" references the file ".../lib/flangPrintFunctionNames.so" but this file does not exist. ``` flang-aarch64-out-of-tree buildbot (https://lab.llvm.org/buildbot/#/builders/175) does not catch this issue, because it does not enable Flang on the first stage. This change gets rid of FLANG_BUILD_EXAMPLES in favor of LLVM_BUILD_EXAMPLES and uses available LLVM CMake macros to add example executables/libraries. Differential Revision: https://reviews.llvm.org/D145992 -
Vladislav Khmelevsky authored
The golang support creates 2 new data segments, one of them contains relocations in PIC binaries, so the section must have writable rights. Currently BOLT creates only one new segment that contains new sections with RX rights, now also create RW segment if there are any new writable sections were allocated during BOLT binary processing. Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei Differential Revision: https://reviews.llvm.org/D143390
-
Joseph Huber authored
Summary: We use `-Xclang` to pass the GPU binary to be embedded. In the case of multi-source objects this will be passed more than once, but CMake implicitly deduplicates arguments. Use the special generator to prevent this from happening.
-
Joseph Huber authored
Summary: Multi-source object libraries require some additional handling, this logic wasn't correctly settending the dependency on each filename individually and was instead using the last one. This meant that only the last file was built for multi-object libraries.
-
Craig Topper authored
Use the predicate condition instead of checkFeatures in *GenDAGISel.inc. This makes the code similar to isel pattern predicates. checkFeatures is still used by code created by SubtargetEmitter so we can't remove the string. Backends need to be careful to keep the string and predicates in sync, but I don't think that's a big issue. I haven't measured it, but this should be a compile time improvement for isel since we don't have to do any of the string processing that's inside checkFeatures. Reviewed By: kparzysz Differential Revision: https://reviews.llvm.org/D146012
-
Alex Bradbury authored
As noted in <https://github.com/llvm/llvm-project/issues/61216>, the documentation for -fexceptions appears to imply that unwind information is always generated, which isn't the case. Differential Revision: https://reviews.llvm.org/D145564
-
Arthur Eubanks authored
Auto-upgrade can be expensive, especially UpgradeDebugInfo() since it runs the verifier. With this patch, we can specify that the imported bitcode is built with the same revision of LLVM, meaning there's no need to run any auto-upgrading. For now, limit this to just debug info since projects like Rust want to support multiple versions of LLVM at the same time (at compiler build time, not at Rust source code build time) and run a subset of the autoupgrade functionality for simplicity. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D143229
-
Alex Bradbury authored
RISCVISAInfo::parseArchString would sometimes error for arch strings with a trailing _ and sometimes accept them. This patch makes it consistently error. Differential Revision: https://reviews.llvm.org/D145949
-