- Jun 28, 2020
-
-
Nathan James authored
Following on from D77085, I was never happy with the passing a mapping to the option get/store functions. This patch addresses this by using explicit specializations to handle the serializing and deserializing of enum options. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D82188
-
Nathan James authored
Currently on http://clang.llvm.org/docs/ClangFormattedStatus.html there are format stats on files no actually inside the tree but generated by build scripts. These are usually copied from somewhere else. Right now for example there are files from `llvm/utils/release/llvm-package...`. Adding these files bloats the list while not giving an accurate representation of how formatted the repo is. This addresses this issue by checking the git index and ignoring any folder that doesn't contain tracked files. I'm still unsure whether it would be better to just do away with the `os.walk` method and just check over every file returned from `git ls-index <project-root>`. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D82707
-
Chen Zheng authored
-
Brad Smith authored
-
Mike Edwards authored
-
Benjamin Kramer authored
-
Nikita Popov authored
-
Simon Pilgrim authored
[X86] SimplifyDemandedVectorEltsForTargetNode - merge shuffle/pack lower demanded elements handling. Generalize the vector operand extraction code for shuffle/pack ops - we can assume that the vector operands are the same width as the result, and any non-vector values can be reused directly in the smaller width op.
-
Hsiangkai Wang authored
This follows the design as discussed on the mailing lists in the following RFC: http://lists.llvm.org/pipermail/llvm-dev/2020-January/138364.html Support for the vector 'v' extension v0.8. Differential revision: https://reviews.llvm.org/D81188
-
Hsiangkai Wang authored
Assemble/disassemble RISC-V V extension instructions according to latest version spec in https://github.com/riscv/riscv-v-spec/. I have tested this patch using GNU toolchain. The encoding is aligned to GNU assembler output. In this patch, there is a test case for each instruction at least. The V register definition is just for assemble/disassemble. Its type is not important in this stage. I think it will be reviewed and modified as we want to do codegen for scalable vector types. This patch does not include Zvamo, Zvlsseg, and Zvediv. Differential revision: https://reviews.llvm.org/D69987
-
- Jun 27, 2020
-
-
Roman Lebedev authored
-
Simon Pilgrim authored
These were missed in rG4cd19a6e
-
Simon Pilgrim authored
If we don't need the elements of the upper lanes, reduce the width of the X86ISD::VPERMIL2 node.
-
Simon Pilgrim authored
If we don't need the elements of the upper lanes, reduce the width of the X86ISD::VPERMILPV node.
-
mydeveloperday authored
-
Simon Pilgrim authored
-
mydeveloperday authored
Summary: https://bugs.llvm.org/show_bug.cgi?id=46254 Reviewed By: curdeius, jbcoe Differential Revision: https://reviews.llvm.org/D8201
-
Simon Pilgrim authored
-
Simon Pilgrim authored
reduceBuildVecExtToExtBuildVec was breaking a splat(zext(x)) pattern into buildvector(x, 0, x, 0, ..) resulting in much more complex insert+shuffle codegen. We already go to some lengths to avoid this in SimplifyDemandedVectorElts etc. when we encounter splat buildvectors. It should be OK to fold all splat(aext(x)) patterns - we might need to tighten this if we find a case where we mustn't introduce a buildvector(x, undef, x, undef, ..) but I can't find one. Fixes PR46461.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
The "using InsertPointTy" line is an unnecessary copy + paste from other builder tests.
-
David Zarzycki authored
This fixes a unit test. Otherwise here is the original commit: 1) Shared writable directories like /tmp are a security problem. 2) Systems provide dedicated cache directories these days anyway. 3) This also refines LLVM's cache_directory() on Darwin platforms to use the Darwin per-user cache directory. Reviewers: compnerd, aprantl, jakehehrlich, espindola, respindola, ilya-biryukov, pcc, sammccall Reviewed By: compnerd, sammccall Subscribers: hiraditya, llvm-commits, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D82362
-
Simon Pilgrim authored
This allows us to reduce the Twine.h include to a forward declaration.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Nikita Popov authored
I noticed that for some benchmarks we spend quite a bit of time inside AttributeList::hasAttrSomewhere(), mainly when checking for the "returned" attribute. Most of the time the attribute will not be present, in which case this function has to walk through the whole attribute list and check for the attribute at each index. This patch adds a cache of all "available somewhere" attributes inside AttributeListImpl. This makes the structure 12 bytes larger, but I don't think that's problematic, as attribute lists are uniqued. Compile-time in terms of instructions retired improves by 0.4% on average, but >1% for sqlite. Differential Revision: https://reviews.llvm.org/D81867
-
Simon Pilgrim authored
-
Roman Lebedev authored
Summary: The added assertion fails on the added test without the fix. Reduced from test-suite/MultiSource/Benchmarks/MiBench/office-ispell/correct.c In IR, getelementptr, obviously, takes pointer as it's base, and returns a pointer. When creating an SCEV expression, SCEV operands are sorted in hope that it increases folding potential, and at the same time SCEVAddExpr's type is the type of the last(!) operand. Which means, in some exceedingly rare cases, pointer operand may happen to end up not being the last operand, and as a result SCEV for GEP will suddenly have a non-pointer return type. We should ensure that does not happen. In the end, actually storing the `Type *`, at the cost of increasing memory footprint of `SCEVAddExpr`, appears to be the solution. We can't just store a 'is a pointer' bit and create pointer type on the fly since we don't have data layout in getType(). Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=46457 | PR46457 ]] Reviewers: efriedma, mkazantsev, reames, nikic Reviewed By: efriedma Subscribers: hiraditya, javed.absar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82633
-
Roman Lebedev authored
Summary: This is boringly straight-forward, each iteration we see if V is some expression that we can look into, and if it has a single pointer operand, then set V to that operand and repeat. Reviewers: efriedma, mkazantsev, reames, nikic Reviewed By: nikic Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82632
-
Melanie Blower authored
This reverts commit defd43a5. with correction to solve msan report To solve https://bugs.llvm.org/show_bug.cgi?id=46166 where the floating point settings in PCH files aren't compatible, rewrite FPFeatures to use a delta in the settings rather than absolute settings. With this patch, these floating point options can be benign. Reviewers: rjmccall Differential Revision: https://reviews.llvm.org/D81869
-
Fady Ghanim authored
Relating to buildbot errors to commit 82b8236c
-
Gui Andrade authored
These need special handling over the simple vector intrinsics as they behave more like a shuffle operation: taking the top half of the vector from one input, and the bottom half separately. Previously, these were being handled as though all bits of all operands were combined. Differential Revision: https://reviews.llvm.org/D82398
-
Gui Andrade authored
-
Craig Topper authored
Only 6 years behind gcc. https://gcc.gnu.org/legacy-ml/gcc-patches/2014-08/msg00231.html Found while working on improving how we define CPU features for clang and auditing for correctness.
-
Fady Ghanim authored
-
lh123 authored
-