- Apr 04, 2023
-
-
Luke Lau authored
-
Mikhail Maltsev authored
The required target features for VMOVSR instruction (integer -> MVE FP register copy) are HasFPRegs and UseVMOVSR (see https://reviews.llvm.org/D60694). The instruction selection pattern must use the same set of requirements (i.e., HasFPRegs instead of HasVFP2). The discrepancy can cause instruction selection failure when compiling code for execute-only position-independence mode. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D147523
-
Valentin Clement authored
Assumed type are represented differently in the ActualArgument class. Correctly handle them in intrinsic arg lowering. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D147487
-
Noah Goldstein authored
This rarely comes up because most `vselect` are lowered with actually avx512 mask instructions, but is an improvement in the rare cases. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D145221
-
Noah Goldstein authored
Original location of the unittests was Transforms/InstCombine/X86 which caused an issue as non-x86 targets ended up with a dependency on X86 which isn't right. Moved the unit tests to Target/X86 so should be good now. Differential Revision: https://reviews.llvm.org/D145220
-
Thomas Lively authored
Since clang started emitting roundeven intrinsics in a7d6593a, they would cause a crash in the WebAssembly backend because it did not know the roundeven library function signatures. Fix the crash by adding the signatures. Differential Revision: https://reviews.llvm.org/D147476
-
Ben Langmuir authored
While we eventually want to remove the mapping from .Private to _Private modules, until we do, ensure that it behaves the same for explicit modules. rdar://107449872 Differential Revision: https://reviews.llvm.org/D147477
-
Byungchul Kim authored
Differential Revision: https://reviews.llvm.org/D147354
-
Jie Fu authored
/data/llvm-project/flang/lib/Semantics/check-call.cpp:1234:29: error: comparison of integers of different signs: 'int' and 'size_type' (aka 'unsigned long') [-Werror,-Wsign-compare] CHECK(index >= 0 && index < actuals.size()); ~~~~~ ^ ~~~~~~~~~~~~~~ /data/llvm-project/flang/include/flang/Common/idioms.h:89:20: note: expanded from macro 'CHECK' ^ 1 error generated. -
sstwcw authored
We added the option `VerilogBreakBetweenInstancePorts` to put ports on separate lines in module instantiations. We made it default to true because style guides mostly recommend it that way for example: https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md#module-instantiation Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D147327
-
Simon Pilgrim authored
Improves fix for #61683 to handle cases where the legalization concatenation isn't just 2 subops.
-
Jay Foad authored
Verify the SlotIndexes analysis after a pass that claims to preserve it, even if there are no further passes (apart from the verifier itself) that would use the analysis. Differential Revision: https://reviews.llvm.org/D129201
-
Luke Lau authored
If the legalized type is a legal interleaved access type (i.e. there's a supported vlseg/vsseg instruction for it), the interleaved access pass will pick any interleaved memory op (wide load + shuffles) and lower it into a vlseg/vsseg intrinsic. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D146522
-
David Sherwood authored
Given just how many arguments we pass to preferPredicateOverEpilogue and considering this list may grow over time I've decided to pass in a pointer to a new TailFoldingInfo structure instead, similar to what we do with IntrinsicCostAttributes, etc. In addition, many of the arguments we pass in are actually available in the LoopVectorizationLegality class so I've managed to reduce the set of pointers that we need to pass in the TailFoldingInfo struct. Differential Revision: https://reviews.llvm.org/D146127
-
Benjamin Kramer authored
This reverts commit 5bff5237. The bf16->f32 conversion is incorrect. This can't be on by default, if you want this behavior make it a separate pass.
-
Simon Pilgrim authored
This will be necessary once we merge with combineVectorSizedSetCCEquality and we need to support KORTEST handling for 128/256-bit comparisons
-
Paul Scoropan authored
Implements the PowerPC mtfsf and mtfsfi intrinsics as well as introduces semantic error checking code for PowerPC intrinsics Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D144876
-
Simon Pilgrim authored
Show failure for other vector size concatenations
-
Jez Ng authored
For functions that use DWARF encodings, their compact unwind entry will contain a hint about the offset of their DWARF entry from the start of the `__eh_frame` section. The encoding only has 3 bytes to encode this hint. Previously, I neglected to check for overflow (and didn't realize that the value was merely a hint without needing to be exact.) So for large `__eh_frame` sections, the hint would overflow and cause the compact unwind MODE flag to be corrupted, leading to uncaught exceptions at runtime. This diff fixes things by encoding zero as the hint for offsets that are too large. The unwinder will start a linear search at the hint location for the matching CFI record. The only requirement is that the hint points to a valid CFI record start, and the start of the section is always the start of a CFI record (in well-formed programs). I'm not adding a test for this because generating the test inputs takes a bit too much time. However, I have been testing locally with this lit file, which takes about 15s to run on my machine: ``` # RUN: rm -rf %t; mkdir %t # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos11.0 %s -o %t/test.o # RUN: %lld -dylib -lSystem %t/test.o -o %t/test .subsections_via_symbols .text .p2align 2 _f: .cfi_startproc .rept 0x7fffff .cfi_escape 0x2e, 0x10 .endr ret .cfi_endproc _g: .cfi_startproc .cfi_escape 0x2e, 0x10 ret .cfi_endproc ``` Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D147505
-
Simon Pilgrim authored
Leftover from eb435b7f
-
Paul Robinson authored
Differential Revision: https://reviews.llvm.org/D147461
-
Simon Pilgrim authored
Fixes #61683
-
Artur Ryt authored
Add is_in_system_header property for Location class. Corresponding unit test was also added. Differential Revision: https://reviews.llvm.org/D147414
-
Simon Pilgrim authored
-
Ilya Leoshkevich authored
They are no longer used, which leads to the -Wunused-function warning. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D147521
-
Luke Lau authored
Test is related to vectors so probably belongs in the rvv directory Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D147412
-
Nuno Lopes authored
This reverts commit 18c594c1. Build bots broke
-
Shengchen Kan authored
1. Remove redundant definition of constructor 2. Move the array in .inc to .def file 3. Add a licence for the .def file
-
Tim Northover authored
The default code can detect what width of atomic instructions are supported based on the targeted architecture profile, version etc so there's no need to hard-code 64 on Darwin targets (especially as it's wrong in most M-class cases).
-
Jie Fu authored
/data/llvm-project/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp:209:21: error: unused function 'decodeU6ImmOperand' [-Werror,-Wunused-function] static DecodeStatus decodeU6ImmOperand(MCInst &Inst, uint64_t Imm, ^ 1 error generated. -
Kriti Gupta authored
Differential Revision: https://reviews.llvm.org/D145622
-
Nikita Popov authored
-
Leandro Lupori authored
The build of scudo was failing on armv7l, with undefined references to unwinder symbols, such as __aeabi_unwind_cpp_pr0. These are needed by RTGwpAsan and thus, on ARM, scudo must also be linked against an unwind library. The cmake command that caused the build failure was: cmake --fresh -S "$PWD/llvm/" -B "$PWD/build/" -G Ninja \ -DCMAKE_INSTALL_PREFIX="$PWD/install" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_PROJECTS="clang;lld;lldb;clang-tools-extra;polly" \ -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" \ -DLLVM_TOOLCHAIN_TOOLS="llvm-ar;llvm-ranlib;llvm-objdump;\ llvm-rc;llvm-cvtres;llvm-nm;llvm-strings;llvm-readobj;\ llvm-dlltool;llvm-pdbutil;llvm-objcopy;llvm-strip;llvm-cov;\ llvm-profdata;llvm-addr2line;llvm-symbolizer;llvm-windres;llvm-ml;\ llvm-readelf;llvm-size" \ -DLLVM_INSTALL_BINUTILS_SYMLINKS=OFF -DLLVM_PARALLEL_LINK_JOBS=1 Fixes #60115 Reviewed By: hctim Differential Revision: https://reviews.llvm.org/D142888
-
Jameson Nash authored
There does not seem to be any purpose to allocating this object, which is Metadata, so LLVM will simply leak it until the context is destroyed (the subprogram metadata it contains are distinct, so there is little chance of it being reused later). This should not have a functional change. This seems to be left over from an earlier design, when it used to call ``` CUNode->replaceSubprograms(SPs.get()); ``` here also. (removed in http://reviews.llvm.org/D19034) Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D147469
-
Ilya Leoshkevich authored
For all RotateSelect* instructions, PoP says: Bits 0-1 of the I5 field (bits 32-33 of the instruction) are ignored. LLVM, however, completely prohibits using them, e.g.: error: invalid operand for instruction asm("rxsbg %[r1],%[r2],177,43,228\n" Lift this unnecessary restriction. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D146185 -
Nikita Popov authored
Retaining bitcasts to keep test intent. addrsig_sym is no longer emitted for metedata_f1, but this improvement is ultimately inconsequential, as it will get dropped at a later stage anyway.
-
Bing1 Yu authored
Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D147301
-
Florian Hahn authored
The original typed pointer version of the tests (matrix-intrinsics.ll) is now obsolete. Replace matrix-intrinsics.ll with matrix-intrinsics-opaque-ptrs.ll.
-
Shengchen Kan authored
-
Kadir Cetinkaya authored
Certain standard library functions (e.g. std::move) are also implemented as builtins. This patch moves filtering logic to the symbol->header mapping phase to rather generate these references without any providers only when we don't have a mapping. That way we can also map them to header names mentioned in the builtin mappings. Differential Revision: https://reviews.llvm.org/D147449
-