- May 11, 2022
-
-
Florian Hahn authored
-
Amir Ayupov authored
Add an option to only peel ICP targets that can be subsequently inlined. Yet there's no guarantee that they will be inlined. The mode is independent from the heuristic used to choose ICP targets: by exec count, mispredictions, or memory profile. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D124900
-
Nikita Popov authored
-
`FileNotFound` preprocessor callback is removed in D119708. We should also remove it from the documentation. Reviewed by: jansvoboda11 Differential Revision: https://reviews.llvm.org/D125258
-
Nikita Popov authored
-
Nikita Popov authored
-
David Green authored
As pointed out in #55342, given non-canonical IR with multiple constants, we check the second operand in isSafeWrap, but can promote both with sext. Fix that as suggested by @craig.topper by ensuring we only extend the second constant if multiple are present. Fixes #55342 Differential Revision: https://reviews.llvm.org/D125294
-
Fraser Cormack authored
Rather than VP_SEXT/VP_ZEXT/VP_TRUNC, having VP_SIGN_EXTEND/VP_ZERO_EXTEND/VP_TRUNCATE better matches their non-VP counterparts. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D125298
-
Chris Lattner authored
Change the parsing logic to use StringRef instead of lower level char* logic. Also, if emitting a diagnostic on the first token in the file, we make sure to use that position instead of the very start of the file. Differential Revision: https://reviews.llvm.org/D125353
-
David Green authored
This clang-formats the TypePromotion code, with the only meaningful change being the removal of a verifyFunction call inside a LLVM_DEBUG, and the printing of the entire function which can be better handled via -print-after-all.
-
Jonas Hahnfeld authored
The code was incorrectly sorting by the function address. Differential Revision: https://reviews.llvm.org/D123311
-
Xiang Li authored
A new pass DXILOpLowering was added. It will scan all llvm intrinsics, create dxil op function if it can map to dxil op function. Then translate call instructions on the intrinsic into call on dxil op function. dxil op function will add i32 argument to the begining of args for dxil opcode. So cannot use setCalledFunction to update the call instruction on intrinsic. This commit only support sin to start the work. Reviewed By: kuhar, beanz Differential Revision: https://reviews.llvm.org/D124805
-
Yeting Kuo authored
The patch make PseudoReadVL have the vtypes of the corresponding VLEFF/VLSEGFF. It's useful to get the vtypes of locations of PseudoReadVL without finding the corresponding VLEFF/VLSEGFF. It could simplify optimizations in RISCVInsertVSETVLI like D123581. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D125199
-
jacquesguan authored
This patch adds rvv codegen support for vp.fpext. The lowering of fp_round, vp.fptrunc, fp_extend and vp.fpext share most code so use a common lowering function to handle these four. And this patch changes the intermediate cast from ISD::FP_EXTEND/ISD::FP_ROUND to the RVV VL version op RISCVISD::FP_EXTEND_VL and RISCVISD::FP_ROUND_VL for scalable vectors. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D123975
-
Peter Steinfeld authored
Similar to change D125046. If a programmer is able to compile and link a program that contains types that are not yet supported by the runtime, it must be because they're not yet implemented. This change will make it easier to find unimplemented code in tests. Differential Revision: https://reviews.llvm.org/D125267
-
Mingming Liu authored
Differential Revision: https://reviews.llvm.org/D125345
-
Mingming Liu authored
This reverts commit 8bef5476. Need to revert, update commit message and reapply.
-
Alexander Shaposhnikov authored
-
Xiang1 Zhang authored
Reviewed By: PengfeiWang Differential Revision: https://reviews.llvm.org/D125159
-
Mingming Liu authored
Differential Revision: https://reviews.llvm.org/D125345
-
Ting Wang authored
Enable FeatureISA2_06 on Power A2 target Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D125203
-
Eduard Zingerman authored
Commit 8a633261 ("[BPF] Mark FI_ri as isPseudo to avoid assertion during disassembly") added isPseudo to FI_ri insn in BPFInstrInfo.td file. This patch added the missing test file. Differential Revision: https://reviews.llvm.org/D125185
-
Eduard Zingerman authored
When a specific sequence of bytes is present in the file during disassembly the disassembler fails with the following assertion: ... 0: 18 20 00 00 00 00 00 00 lea ... Assertion `idx < size()' failed. ... llvm::SmallVectorTemplateCommon<...>::operator[](...) ... llvm::MCInst::getOperand(unsigned int) ... llvm::BPFInstPrinter::printOperand(...) ... llvm::BPFInstPrinter::printInstruction() ... llvm::BPFInstPrinter::printInst(...) ... ... The byte sequence causing the error is (little endian): 18 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 The issue could be reproduced using the program bellow: test.ir: @G = constant [16 x i8] [i8 u0x18, i8 u0x20, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00, i8 u0x00], section "foo", align 8 Compiled and disassembled as follows: cat test.ir | llc -march=bpfel -filetype=obj -o - \ | llvm-objdump --arch=bpfel --section=foo -d - This byte sequence corresponds to FI_ri instruction declared in the BPFInstrInfo.td as follows: def FI_ri : TYPE_LD_ST<BPF_IMM.Value, BPF_DW.Value, (outs GPR:$dst), (ins MEMri:$addr), "lea\t$dst, $addr", [(set i64:$dst, FIri:$addr)]> { // This is a tentative instruction, and will be replaced // with MOV_rr and ADD_ri in PEI phase let Inst{51-48} = 0; let Inst{55-52} = 2; let Inst{47-32} = 0; let Inst{31-0} = 0; let BPFClass = BPF_LD; } Notes: - First byte (opcode) is formed as follows: - BPF_IMM.Value is 0x00 - BPF_DW.Value is 0x18 - BPF_LD is 0x00 - Second byte (registers) is formed as follows: - let Inst{55-52} = 2; - let Inst{51-48} = 0; The FI_ri instruction is always replaced by MOV_rr ADD_ri instructions pair in the BPFRegisterInfo::eliminateFrameIndex method. Thus, this instruction should be invisible to disassembler. This patch achieves this by adding "isPseudo" flag for this instruction. The bug was found by decompiling of one of the BPF tests from Linux kernel (llvm-objdump -D tools/testing/selftests/bpf/bpf_iter_sockmap.o) Differential Revision: https://reviews.llvm.org/D125185 -
Florian Mayer authored
-
Florian Mayer authored
Don't fail on corrupted ELF file on indexing. This happens because files change in the directory from concurrent tests.
-
Peter Klausler authored
Inquiries into the bounds, size, and length of local variables (and function results) are acceptable specification expressions. A recent change allowed them for dummy arguments that are not OPTIONAL or INTENT(OUT), but didn't address other object entities. Differential Revision: https://reviews.llvm.org/D125343
-
Nick Desaulniers authored
We're having a hard time booting the ARCH=i386 Linux kernel with clang after removing -ffreestanding because instcombine was dropping inreg from callers during libcall simplification, but not the callees defined in different translation units. This led the callers and callees to have wildly different calling conventions, which (predictably) blew up at runtime. Infer the inreg param attrs on function declarations from the module metadata "NumRegisterParameters." This allows us to boot the ARCH=i386 Linux kernel (w/ -ffreestanding removed). Fixes: https://github.com/llvm/llvm-project/issues/53645 Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D125285
-
Wende Tan authored
The original fix (commit 23ec5782) of https://github.com/llvm/llvm-project/issues/52787 only adds `Function`s that have `Instruction`s that directly use `BlockAddress`es into the bitcode (`FUNC_CODE_BLOCKADDR_USERS`). However, in either @rickyz's original reproducing code: ``` void f(long); __attribute__((noinline)) static void fun(long x) { f(x + 1); } void repro(void) { fun(({ label: (long)&&label; })); } ``` ``` ... define dso_local void @repro() #0 { entry: br label %label label: ; preds = %entry tail call fastcc void @fun() ret void } define internal fastcc void @fun() unnamed_addr #1 { entry: tail call void @f(i64 add (i64 ptrtoint (i8* blockaddress(@repro, %label) to i64), i64 1)) #3 ret void } ... ``` or the xfs and overlayfs in the Linux kernel, `BlockAddress`es (e.g., `i8* blockaddress(@repro, %label)`) may first compose `ConstantExpr`s (e.g., `i64 ptrtoi...
-
Mingming Liu authored
(following AND) and eliminates redundant TEST instruction. Differential Revision: https://reviews.llvm.org/D124118
-
Chia-hung Duan authored
Before dump, Insetad of switching to generic form silently after verification failure. Print some debug logs to help identify why an op may be printed in a different way. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D125136
-
Thomas Raoux authored
Move async copy operations to NVGPU as they only exist on NV target and are designed to match ptx semantic. This allows us to also add more fine grain caching hint attribute to the op. Add hint to bypass L1 and hook it up to NVVM op. Differential Revision: https://reviews.llvm.org/D125244
-
Vasileios Porpodas authored
The current reordering scheme only checks the ordering of in-tree operands. There are some cases, however, where we need to adjust the ordering based on the ordering of a future SLP-tree who's instructions are not part of the current tree, but are external users. This patch is a simple implementation of this. We keep track of scalar stores that are users of TreeEntries and if they look profitable to vectorize, then we keep track of their ordering. During the reordering step we take this new index order into account. This can remove some shuffles in cases like in the lit test. Differential Revision: https://reviews.llvm.org/D125111
-
Philip Reames authored
-
Philip Reames authored
-
Mike Rice authored
This adds support for variable stride with the val, uval, and ref linear modifiers. Previously only the no modifer type ls<argno> was supported. val -> Ls<argno> uval -> Us<argno> ref -> Rs<argno> Differential Revision: https://reviews.llvm.org/D125330
-
LLVM GN Syncbot authored
-
Mehdi Amini authored
-
Jan Korous authored
This reverts commit ce583b14.
-
Mingming Liu authored
This reverts commit d84ca05e. Will revert, update commit message and re-commit.
-
Vasileios Porpodas authored
[SLP][NFC] Precommit a lit test for a followup patch that improves tree reordering for external users. Differential Revision: https://reviews.llvm.org/D125110
-