- Apr 23, 2020
-
-
Alex Richardson authored
Using getValueType() is not correct for architectures extended with CHERI since we need a pointer type and not the value that is loaded. While stack protector is useless when you have CHERI (since CHERI provides much stronger security guarantees), we still have a test to check that we can generate correct code for checks. Merging b281138a into our tree broke this test. Fix by using TLI.getFrameIndexTy(). Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D77785
-
Xing GUO authored
This change helps improve `dsymutil` documentation. - Add missing options - Re-arrange options in alphabetical order - Wrap inline options in double-back-quote - `-v` is for `--version` not `--verbose` Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D78479
-
River Riddle authored
It currently requires that the condition match the shape of the selected value, but this is only really useful for things like masks. This revision allows for the use of i1 to mean that all of the vector/tensor is selected. This also matches the behavior of LLVM select. A benefit of this change is that transformations that want to generate selects, like those on the CFG, don't have to special case vector/tensor. Previously the only way to generate a select from an i1 was to use a splat, but that doesn't support dynamically shaped/unranked tensors. Differential Revision: https://reviews.llvm.org/D78690
-
River Riddle authored
This revision adds support for canonicalizing the following: ``` br ^bb1 ^bb1 br ^bbN(...) br ^bbN(...) ``` Differential Revision: https://reviews.llvm.org/D78683
-
River Riddle authored
This revision adds support for canonicalizing the following: ``` cond_br %cond, ^bb1(A, ..., N), ^bb1(A, ..., N) br ^bb1(A, ..., N) ``` If the operands to the successor are different and the cond_br is the only predecessor, we emit selects for the branch operands. ``` cond_br %cond, ^bb1(A), ^bb1(B) %select = select %cond, A, B br ^bb1(%select) ``` Differential Revision: https://reviews.llvm.org/D78682
-
River Riddle authored
This revision adds support for the following canonicalization: ``` cond_br %cond, ^bb1, ^bb2 ^bb1 br ^bbN(...) ^bb2 br ^bbK(...) cond_br %cond, ^bbN(...), ^bbK(...) ``` Differential Revision: https://reviews.llvm.org/D78681
-
Simon Pilgrim authored
Move VPlan.h include from VPlanVerifier.h down to VPlanVerifier.cpp
-
Jay Foad authored
This avoids more long lists of register classes that have to be updated every time we add a new one. NFC. Differential Revision: https://reviews.llvm.org/D78570
-
Serguei Katkov authored
The motivation is to be able to play with the option and change if it is required. Reviewers: fedor.sergeev, apilipenko, rnk, jdoerfert Reviewed By: fedor.sergeev Subscribers: hiraditya, dantrushin, llvm-commits Differential Revision: https://reviews.llvm.org/D78624
-
Florian Hahn authored
This patch adds VPValue version of the instruction operands to VPWidenRecipe and uses them during code-generation. Similar to D76373 this reduces ingredient def-use usage by ILV as a step towards full VPlan-based def-use relations. Reviewers: rengolin, Ayal, gilr Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D76992
-
Jay Foad authored
12994a70 did this for 128-bit classes: SGPR_128 only includes the real allocatable SGPRs, and SReg_128 adds the additional non-allocatable TTMP registers. There's no point in allocating SReg_128 vregs. This shrinks the size of the classes regalloc needs to consider, which is usually good. This patch extends it to all classes > 64 bits, for consistency. Differential Revision: https://reviews.llvm.org/D78622
-
Raphael Isemann authored
-
Sander de Smalen authored
This patch changes the FP conversion intrinsics to take a predicate that matches the number of lanes for the vector with the widest element type as opposed to using <vscale x 16 x i1>. For example: ```<vscale x 4 x float> @llvm.aarch64.sve.fcvt.f32f16(<vscale x 4 x float>, <vscale x 4 x i1>, <vscale x 8 x half>)``` now uses <vscale x 4 x i1> instead of <vscale x 16 x i1> And similar for: ```<vscale x 4 x float> @llvm.aarch64.sve.fcvt.f32f64(<vscale x 4 x float>, <vscale x 2 x i1>, <vscale x 2 x double>)``` where the predicate now matches the wider type, so <vscale x 2 x i1>. Reviewers: efriedma, SjoerdMeijer, paulwalker-arm, rengolin Reviewed By: efriedma Tags: #clang Differential Revision: https://reviews.llvm.org/D78402
-
Sander de Smalen authored
This adds the flag IsOverloadCvt which tells CGBulitin to use the result type and the type of the last operand as the overloaded types for the LLVM IR intrinsic. This also adds the flag IsFPConvert, which is needed to avoid converting the predicate of the operation from svbool_t to a predicate with fewer lanes, as the LLVM IR intrinsics use the <vscale x 16 x i1> as the predicate. Reviewers: SjoerdMeijer, efriedma Reviewed By: efriedma Tags: #clang Differential Revision: https://reviews.llvm.org/D78239
-
Djordje Todorovic authored
The documentation says we need python >= 3.6. Running it with an older version, we get verbose output from python interpreter. This patch fixes that as: $ python2 dexter.py list-debuggers You need python 3.6 or later to run DExTer Differential Revision: https://reviews.llvm.org/D78621
-
Georgii Rymar authored
It allows to simplify the current code and also might help for the code around. It is also consistent with what we do for another headers, e.g. section headers, elf file header etc. Differential revision: https://reviews.llvm.org/D78627
-
Kazuaki Ishizaki authored
Differential Revision: https://reviews.llvm.org/D78696
-
Andi-Bogdan Postelnicu authored
Summary: Add option to use alpha checkers from clang-analyzer when using `run-clang-tidy.py`. Reviewers: JonasToth Subscribers: xazax.hun, baloghadamsoftware, a.sidorin, Szelethus, donat.nagy, dkrupp, Charusso, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77882
-
Amara Emerson authored
-
Alexander Belyaev authored
Summary: Lowering is pretty much a copy of AtomicRMWOp -> llvm.cmpxchg pattern. Differential Revision: https://reviews.llvm.org/D78647
-
Haojian Wu authored
This reverts 3d61b112, 5daa25fd The clang-format test (FormatTest.ConfigurableUseOfTab) is failing in the buildbot: http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/31811/steps/ninja%20check%201/logs/stdio
-
Craig Topper authored
I don't believe this pass deals with vectors of pointers. I think this getScalarType() was added during a mechanical opaque pointer change of the interface to GetElementPtrInst::getIndexedType.
-
Kazuaki Ishizaki authored
Differential Revision: https://reviews.llvm.org/D78090
-
Kazuaki Ishizaki authored
Differential Revision: https://reviews.llvm.org/D77469
-
Puyan Lotfi authored
This reverts commit 2aa044ed. Reverting due to bot failure in lldb.
-
Puyan Lotfi authored
This is a code clean up of the PropertyAttributeKind and ObjCPropertyAttributeKind enums in ObjCPropertyDecl and ObjCDeclSpec that are exactly identical. This non-functional change consolidates these enums into one. The changes are to many files across clang (and comments in LLVM) so that everything refers to the new consolidated enum in DeclObjCCommon.h. Differential Revision: https://reviews.llvm.org/D77233
-
Sean Silva authored
Summary: This test is in a different file because it contains a literal NUL character, which causes various tools to treat it as a binary file. Hence it is useful to have this test kept in a separate, rarely-changing file. Differential Revision: https://reviews.llvm.org/D78689
-
Aditya Nandakumar authored
Loosen the restriction on what kinds of opcodes can be CSEd as targets may want to CSE some generic target specific pseudos. NFC as far as this change is concerned as CSEConfig still pretty much is a subset of this check. Differential Revision: https://reviews.llvm.org/D78684
-
Aaron Puchert authored
-
Vedant Kumar authored
Fix an issue where the presence of debug instructions could break collection of linker optimization hints.
-
Vedant Kumar authored
Fix an issue where the FConstantToConstant combine could fail if debug instructions were present.
-
Vedant Kumar authored
Do not count the presence of debug insts against the limit set by LdStLimit, and allow the optimizer to find matching insts by skipping over debug insts. Differential Revision: https://reviews.llvm.org/D78411
-
Vedant Kumar authored
Summary: The findSuitableCompare method can fail if debug instructions are present in the MBB -- fix this by using helpers to skip over debug insts. Reviewers: aemerson, paquette Subscribers: kristof.beyls, hiraditya, danielkiss, aprantl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78265
-
Vedant Kumar authored
Summary: This fixes several instances in which condbr optimization was missed due to a debug instruction appearing as a bogus NZCV clobber. Reviewers: aemerson, paquette Subscribers: kristof.beyls, hiraditya, jfb, danielkiss, aprantl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78264
-
Vedant Kumar authored
Summary: Use the variants of these APIs which skip over debug instructions. This is mostly a cleanup, but it does fix a debug-variance issue which causes addsub-shifted.ll and addsub_ext.ll to fail when debug info is inserted by -mir-debugify. Reviewers: aemerson, paquette Subscribers: kristof.beyls, hiraditya, jfb, danielkiss, llvm-commits, aprantl Tags: #llvm Differential Revision: https://reviews.llvm.org/D78262
-
Vedant Kumar authored
Summary: Fix an issue where the presence of debug info could disable the ccmp optimization due to findConvertibleCompare failing too early (the error is "Can't create ccmp with multiple uses", where the "use" is a DBG_VALUE inst). Depends on D78151. Reviewers: t.p.northover, paquette, aemerson Subscribers: kristof.beyls, hiraditya, danielkiss, aprantl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78156
-
Vedant Kumar authored
Summary: Fix an issue where the presence of debug info could disable a peephole optimization due to areCFlagsAccessedBetweenInstrs returning the wrong result. In test/CodeGen/AArch64/arm64-csel.ll, the issue was found in the function @foo5, in which the first compare could successfully be optimized but not the second. Reviewers: t.p.northover, eastig, paquette Subscribers: kristof.beyls, hiraditya, danielkiss, aprantl, dsanders, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78157
-
Vedant Kumar authored
Summary: Fix an issue where the presence of debug info could disable a peephole optimization in optimizeCompareInstr due to canInstrSubstituteCmpInstr returning the wrong result. Depends on D78137. Reviewers: t.p.northover, eastig, paquette Subscribers: kristof.beyls, hiraditya, danielkiss, aprantl, llvm-commits, dsanders Tags: #llvm Differential Revision: https://reviews.llvm.org/D78151
-
Vedant Kumar authored
Summary: While lowering memory intrinsics, GIsel attempts to form a tail call to a library routine. There might be a DBG_LABEL or something after the intrinsic call, though: in that case, GIsel should still be able to form the tail call, and should also delete the debug insts after the tail call as the transform makes them invalid. Reviewers: dsanders, aemerson Subscribers: hiraditya, aprantl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78335
-
Vedant Kumar authored
[GIsel][CombinerHelper] Fix for missed ElideBrByInvertingCond/CombineIndexedLoadStore combines [4/14] Summary: Fix an issue which could result in ElideBrByInvertingCond or CombineIndexedLoadStore being missed when debug info is present. In both cases the fix is s/hasOneUse/hasOneNonDbgUse/. Reviewers: aemerson, dsanders Subscribers: hiraditya, aprantl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78254
-