- Aug 02, 2020
-
-
Craig Topper authored
Fixes part of PR46954
-
Craig Topper authored
This adds tests cases where the parity idiom of (and (ctpop X, 1)) has a truncate in the middle.
-
AK authored
Authored by: rjf (Ruijie Fang) Reviewed by: hiraditya,tejohnson,fhahn Differential Revision: https://reviews.llvm.org/D69384
-
AK authored
__assert_fail, abort, exit etc. are cold. TODO: outline throw Authored by: rjf (Ruijie Fang) Reviewed by: hiraditya,tejohnson,fhahn Differential Revision: https://reviews.llvm.org/D69257
-
Kazu Hirata authored
Use llvm::is_contained where appropriate (NFC) Reviewed By: kazu Differential Revision: https://reviews.llvm.org/D85083
-
Lang Hames authored
The -phony-externals option adds a generator which explicitly defines any otherwise unresolved externals as null. This transforms link-time unresolved-symbol errors into potential runtime null pointer accesses (if an unresolved external is actually accessed during execution). This option can be useful in -harness mode to avoid having to mock a large number of symbols that are not reachable at runtime (e.g. unused methods referenced by a class vtable).
-
Lang Hames authored
This prevents weak symbols from being immediately dead-stripped when not directly referenced from the test harneess, enabling use of weak symbols from the code under test.
-
Fangrui Song authored
Fixes PR46169
-
Evgenii Stepanov authored
Disable huge pages in the MSan shadow region when no_huge_pages_for_shadow == true (default). Differential Revision: https://reviews.llvm.org/D85061
-
Andrei Lebedev authored
-
Nikita Popov authored
As mentioned on D70376, LVI can currently cause performance issues when running under NewPM. The problem is that, unlike the legacy pass manager, NewPM will not immediately discard the LVI analysis if the following pass does not need it. This is a problem, because LVI has a high memory requirement, and mass invalidation of LVI values is very inefficient. LVI should only be alive during passes that actively interact with it. This patch addresses the issue by explicitly abandoning LVI after CVP, which gets us back to the LegacyPM behavior. Differential Revision: https://reviews.llvm.org/D84959
-
Craig Topper authored
[X86] Add assembler support for {disp8} and {disp32} to control the size of displacement used for memory operands. These prefixes should override the default behavior and force a larger immediate size. I don't believe gas issues any warning if you use {disp8} when a 32-bit displacement is already required. And this patch doesn't either. This completes the {disp8} and {disp32} support from PR46650. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D84793 -
Craig Topper authored
It's always safe to pick the earlier abs regardless of the nsw flag. We'll just lose it if it is on the outer abs but not the inner abs. Differential Revision: https://reviews.llvm.org/D85053
-
Craig Topper authored
Negating the input doesn't matter. I left a FIXME to copy the nsw flag if its present on the neg but not on the abs. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D85055
-
Florian Hahn authored
Looks like %s was accidentally dropped.
-
Florian Hahn authored
formLCSSAForInstructions is used by SCEVExpander, which tracks all inserted instructions including LCSSA phis using asserting value handles. This means cleanup needs to happen in the caller. Extend formLCSSAForInstructions to take an optional pointer to a vector. If this argument is non-nullptr, instead of directly deleting the phis, add them to the vector, so the caller can process them. This should address various PPC buildbot failures, including http://lab.llvm.org:8011/builders/clang-ppc64be-linux-lnt/builds/40567
-
Simon Pilgrim authored
Helps vpternlog folding on non-AVX512BW targets
-
zoecarver authored
Add shared_ptr tests where the element type and pointer type aren't 'convertible' but are 'compatible'. Responding to a comment from D81414. Differential Revision: https://reviews.llvm.org/D81532
-
Simon Pilgrim authored
Noticed while investigating combining from concatenated shuffle vectors, we weren't checking that PSHUFLW/PSHUFHW was legal - we were depending on lowering splitting to subvectors.
-
Florian Hahn authored
Use IRBuilder instead PHINode::Create. This should not impact the generated code, but IRBuilder provides a way to register callbacks for inserted instructions, which is convenient for some users. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D85037
-
- Aug 01, 2020
-
-
Sanjay Patel authored
-
Luofan Chen authored
The word "dependency graph" is a bit misleading. When there is an edge from node A to B (A -> B), it actually mean that B depends on A and when the state of A is updated, B should also be updated. So I update the comment to make the description clearer. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D85065
-
David Green authored
This adds sign/zero extending scalar loads/stores to the MVE instructions added in D77813, allowing us to create up more post-inc instructions. These are comparatively simple, compared to LDR/STR (which may be better turned into an LDRD/LDM), but still require some additions over MVE instructions. Because there are i12 and i8 variants of the offset loads/stores dealing with different signs, we may need to convert an i12 address to a i8 negative instruction. t2LDRBi12 can also be shrunk to a tLDRi under the right conditions, so we need to be careful with codesize too. Differential Revision: https://reviews.llvm.org/D78625
-
Benjamin Kramer authored
-
Sanjay Patel authored
abs() should be rare enough that using value tracking is not going to be a compile-time cost burden, so use it to reduce a variety of potential patterns. We do this in DAGCombiner too. Differential Revision: https://reviews.llvm.org/D85043
-
Sanjay Patel authored
-
Simon Pilgrim authored
Minor precursor fix for D66004, but helps the SSE41 tests as well as they run with -disable-peephole
-
Nathan James authored
-
Evgeny Leviant authored
Patch improves performance of verify-machineinstrs pass up to 10x. Differential revision: https://reviews.llvm.org/D84105
-
Nathan James authored
When checking for the style of a decl that isn't in the main file, the check will now search for the configuration that the included files uses to gather the style for its decls. This can be useful to silence warnings in header files that follow a different naming convention without using header-filter to silence all warnings(even from other checks) in the header file. Reviewed By: aaron.ballman, gribozavr2 Differential Revision: https://reviews.llvm.org/D84814
-
Craig Topper authored
Now we try to load and broadcast together for operand 1. Followed by load and broadcast for operand 1. Previously we tried load operand 1, load operand 1, broadcast operand 0, broadcast operand 1. Now we have a single helper that tries load and broadcast for one operand that we can just call twice.
-
Chen Zheng authored
querying getSCEV() for incomplete phis leads to wrong cache value in `ExprToIVMap`, because incomplete phis may be simplified to same value before get SCEV expression. Reviewed By: lebedev.ri, mkazantsev Differential Revision: https://reviews.llvm.org/D77560
-
Craig Topper authored
-
Justin Hibbits authored
SPE doesn't have a fsel instruction, so don't try to lower to it. This fixes a "Cannot select: tN: f64 = PPCISD::FSEL tX, tY, tZ" error. Reviewed By: #powerpc, lkail Differential Revision: https://reviews.llvm.org/D77773
-
Justin Hibbits authored
The patterns were incorrect copies from the FPU code, and are unnecessary, since there's no extended load for SPE. Just let LLVM itself do the work by marking it expand. Reviewed By: #powerpc, lkail Differential Revision: https://reviews.llvm.org/D78670
-
Kazushi (Jam) Marukawa authored
Change to expand all arguments and return values to i64 to follow ABI. Update regression tests also. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D84581
-
Nathan James authored
These methods abstract away Error handling when trying to read options that can't be parsed by logging the error automatically and returning None. Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D84812
-
Huihui Zhang authored
Refer to LangRef http://llvm.org/docs/LangRef.html#llvm-masked-load-intrinsics 'llvm.masked.load/store.*’ intrinsics are overloaded intrinsic, which allow the load/store data to be a vector of any integer, floating-point or pointer data type. Therefore, allow pointer data type when checking 'isLegalMaskedLoadStore()'. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D85045
-
Richard Smith authored
contains no packs. Fixes a regression from 740a164d.
-
Craig Topper authored
Rather than hardcoding immediate values for 12 different combinations in a nested pair of switches, we can perform the matched logic operation on 3 magic constants to calculate the immediate. Special thanks to this tweet https://twitter.com/rygorous/status/1187034321992871936 for making me realize I could do this.
-