- May 17, 2023
-
-
Slava Zakharin authored
The two constants should be equal only if their derived types are the same. This fixes regression caused by D150380. Differential Revision: https://reviews.llvm.org/D150634
-
Viktoriia Bakalova authored
-
Craig Topper authored
Previously we added the SP operands when an immediate operand was added to certain opcodes. This patch moves it to a post processing step using the information in MCInstrDesc. This avoids an explicit opcode list in RISCVDisassembler.cpp. In considered using a custom DecoderMethod, but the bit swizzling we need to do for the immediates on these instructions made that unattractive. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D149931
-
Goran Flegar authored
-
Jonas Devlieghere authored
Whether assertions are enabled or not is orthogonal to the build type which could lead to surprising behavior for lldbassert. Previously, when doing a debug build with assertions disabled, lldbassert would become a NOOP, rather than printing an error like it does in a release build. By definining lldbassert in terms of NDEBUG, it behaves like a regular assert when assertions are enabled, and like a soft assert. Differential revision: https://reviews.llvm.org/D150639
-
Fangrui Song authored
If a symbol needs both JUMP_SLOT and GLOB_DAT relocations, there is a minor linker optimization to keep just GLOB_DAT. This optimization is only implemented by GNU ld's x86 port and mold. https://maskray.me/blog/2021-08-29-all-about-global-offset-table#combining-.got-and-.got.plt With the optimizing, the PLT entry is placed in .plt.got and the associated GOTPLT entry is placed in .got (ld.bfd -z now) or .got.plt (ld.bfd -z lazy). The relocation is in .rel[a].dyn. This patch synthesizes `symbol@plt` labels for these .plt.got entries. Example: ``` cat > a.s <<e .globl _start; _start: mov combined0@gotpcrel(%rip), %rax; mov combined1@gotpcrel(%rip), %rax call combined0@plt; call combined1@plt call foo0@plt; call foo1@plt e cat > b.s <<e .globl foo0, foo1, combined0, combined1 foo0: foo1: combined0: combined1: e gcc -fuse-ld=bfd -shared b.s -o b.so gcc -fuse-ld=bfd -pie -nostdlib a.s b.so -o a ``` ``` Disassembly of section .plt: 0000000000001000 <.plt>: 1000: ff 35 ea 1f 00 00 pushq 0x1fea(%rip) # 0x2ff0 <_GLOBAL_OFFSET_TABLE_+0x8> 1006: ff 25 ec 1f 00 00 jmpq *0x1fec(%rip) # 0x2ff8 <_GLOBAL_OFFSET_TABLE_+0x10> 100c: 0f 1f 40 00 nopl (%rax) 0000000000001010 <foo1@plt>: 1010: ff 25 ea 1f 00 00 jmpq *0x1fea(%rip) # 0x3000 <_GLOBAL_OFFSET_TABLE_+0x18> 1016: 68 00 00 00 00 pushq $0x0 101b: e9 e0 ff ff ff jmp 0x1000 <.plt> 0000000000001020 <foo0@plt>: 1020: ff 25 e2 1f 00 00 jmpq *0x1fe2(%rip) # 0x3008 <_GLOBAL_OFFSET_TABLE_+0x20> 1026: 68 01 00 00 00 pushq $0x1 102b: e9 d0 ff ff ff jmp 0x1000 <.plt> Disassembly of section .plt.got: 0000000000001030 <combined0@plt>: 1030: ff 25 a2 1f 00 00 jmpq *0x1fa2(%rip) # 0x2fd8 <foo1+0x2fd8> 1036: 66 90 nop 0000000000001038 <combined1@plt>: 1038: ff 25 a2 1f 00 00 jmpq *0x1fa2(%rip) # 0x2fe0 <foo1+0x2fe0> 103e: 66 90 nop ``` For x86-32, with -z now, if we remove `foo0` and `foo1`, the absence of regular PLT will cause GNU ld to omit .got.plt, and our code cannot synthesize @plt labels. This is an extreme corner case that almost never happens in practice (to trigger the case, ensure every PLT symbol has been taken address). To fix it, we can get the `_GLOBAL_OFFSET_TABLE_` symbol value, but the complexity is not worth it. Close https://github.com/llvm/llvm-project/issues/62537 Reviewed By: bd1976llvm Differential Revision: https://reviews.llvm.org/D149817
-
Nikita Popov authored
These need to use the IRBuilder provided by InstCombine for proper worklist management.
-
Viktoriia Bakalova authored
Differential Revision: https://reviews.llvm.org/D150668
-
Sergei Barannikov authored
This is a follow-up to D150608.
-
Mikhail R. Gadelha authored
This reverts commit b6639930. This caused a regression on aarch64: https://lab.llvm.org/buildbot#builders/138/builds/43983
-
- May 16, 2023
-
-
Mikhail R. Gadelha authored
This patch is similar to 86fe88c8 and adds several explicit constructor calls (bool(...), uint64_t(...), uint8_t(...)) that are needed when we use UInt<T> (in my case UInt<128> in riscv32). This patch also adds two operators to UInt<T>: * operator/= required by printf_core/float_hex_converter.h:148 * operator-- required by FPUtil/ManipulationFunctions.h:166 Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D149594
-
Andrzej Warzynski authored
Split Linalg vectorization tests from "vectorization.mlir" across more specialised test files: * vectorize-tensor-extract.mlir - tests for tensor.extract with no masking, * vectorize-tensor-extract-masked.mlir - tests for tensor.extract with masking, * vectorization-masked.mlir - all other tests that use masking, * vectorisation.mlir - the remaining tests. Differential Revision: https://reviews.llvm.org/D149843 -
Phoebe Wang authored
Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D150645
-
Valentin Clement authored
Just add the trait as acc.yield is a return like op. Reviewed By: razvanlupusoru, jeanPerier Differential Revision: https://reviews.llvm.org/D150617
-
Juan Manuel MARTINEZ CAAMAÑO authored
[AMDGPU][InferAddressSpaces] Only rewrite address-spaces that can be trivially casted to flat for llvm.amdgcn.flat.atomic.{fadd,fmax,fmin} The intrinsic @llvm.amdgcn.flat.atomic.{fadd,fmax,fmin} can only be selected for flat address spaces (constant, flat and global). This patch restricts the cases over which GCNTTIImpl::rewriteIntrinsicWithAddressSpace rewrites the intrinsic. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D149938 -
Matt Arsenault authored
Make it clearer minnum(+0, +0) cannot return -0. Also remove a note about the result always being quiet which is directly contradicted by the following paragraph.
-
Matt Arsenault authored
Handle addrspacecast when looking at uses.
-
Matt Arsenault authored
AllUsesOfValueWillTrapIfNull could handle addrspacecast, but currently doesn't.
-
Timm Bäder authored
This reverts commit e2917311. This caused some problems with lldb testing the diagnostic output: https://lab.llvm.org/buildbot/#/builders/68/builds/52754
-
Timm Bäder authored
Breakage: https://lab.llvm.org/buildbot/#/builders/92/builds/44222
-
Timm Bäder authored
Show line numbers to the left of diagnostic code snippets and increase the numbers of lines shown from 1 to 16. Differential Revision: https://reviews.llvm.org/D147875
-
Phoebe Wang authored
MS link accepts *.obj with ehcont bit set only. LLD should match this behavoir too. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D150508
-
Alexey Lapshin authored
This patch adds support for DWARFv5 .debug_line_str table. It replaces code generating line table. Instead of copying original table and patching certain places this patch implements full line table generation. Differential Revision: https://reviews.llvm.org/D150554
-
Bjorn Pettersson authored
Make sure the code comments in processMemSetMemCpyDependence match with the actual transform. They indicated that the memset being rewritten was sunk to after a memcpy, while it actually is inserted just before the memcpy. Also make sure we use the debug location of the original memset when creating the new simplified memset. In the past we've been using the debug location for the memcpy which could be a bit confusing. Differential Revision: https://reviews.llvm.org/D135574
-
Jay Foad authored
RegScavenger::backward is preferred because it does not rely on accurate kill flags. Differential Revision: https://reviews.llvm.org/D150571
-
Bjorn Pettersson authored
This reverts commit 5cafecf9. Buildbots are not happy with the patch. Lots of crashes and assertion failures such as llvm::LegalizeRuleSet &llvm::LegalizerInfo::getActionDefinitionsBuilder( std::initializer_list<unsigned int>): Assertion `Opcodes.size() >= 2 && "Initializer list must have at least two opcodes"' failed.
-
Jon Roelofs authored
-
Jon Roelofs authored
-
Jon Roelofs authored
-
zhijian authored
Summary: 1. we use the unsigned type for NextOffset,PrevOffset ,GlobalSymbolOffset , MemberTableSize, it will caused a malform big archive when the archive file size is large than 4G. 2. also fix a NFC comment on https://reviews.llvm.org/D142479#inline-1443927 Reviewers: James Henderson Differential Revision: https://reviews.llvm.org/D150462
-
Bjorn Pettersson authored
This remove a bunch of #include statements in Scalar.cpp. I do not think those should be needed any longer (assuming that they once upon a time possibly were needed for legacy PM C bindings, but that is not supported any longer). Also removing some other #include statements not needed any longer due to deprecation of legacy PM. Differential Revision: https://reviews.llvm.org/D149438
-
Sander de Smalen authored
These intrinsics are used to implement the pext intrinsics that extract two predicates (mask) from a predicate-as-counter value, e.g. __attribute__((arm_streaming)) svboolx2_t svpext_lane_c8_x2(svcount_t pnn, uint64_t imm); As described in https://github.com/ARM-software/acle/pull/217 Reviewed By: kmclaughlin Differential Revision: https://reviews.llvm.org/D150442
-
Sander de Smalen authored
These intrinsics are used to implement the pext intrinsics that extract a predicate (mask) from a predicate-as-counter value, e.g. __attribute__((arm_streaming)) svbool_t svpext_lane_c8(svcount_t pnn, uint64_t imm); As described in https://github.com/ARM-software/acle/pull/217 Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D150441
-
Thorsten Schütt authored
remark: unable to legalize instruction: %95:_(s16) = G_BSWAP %94:_ (in function: _ZNK4llvm13DataExtractor6getU16EPyPtj) [-Rpass-missed=gisel-legalize] check plan: ninja check-llvm-codegen-x86 Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D150667
-
Qiongsi Wu authored
https://reviews.llvm.org/D150586 removed a problematic test cases that caused failures on non-ppc buildbots. This patch revises the test case and adds it back. Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D150597
-
Michael Klein authored
Fixes #39713 fferential Revision: https://reviews.llvm.org/D150552
-
Matt Arsenault authored
In D148674, the negative condition was weakened to only checking isKnownNever(fcNegative), instead of cannotBeOrderedLessThanZero(). This avoids a regression when CannotBeOrderedLessThanZero is replaced with computeKnownFPClass.
-
Timm Bäder authored
-
Matt Arsenault authored
Copied from CannotBeNegativeZero and extended to cover fsub.
-
Sergei Barannikov authored
-