- Jan 22, 2021
-
-
Kadir Cetinkaya authored
Adds minimal cmake configuration required to build and test clangd, while telling target names. Should be helpful for people unfamiliar with the LLVM repo. See https://github.com/clangd/clangd/issues/579 for a request. Differential Revision: https://reviews.llvm.org/D91186
-
David Green authored
Some of these new tests should be creating SSAT. They will be fixed in a followup.
-
Nikita Popov authored
When adding an enum attribute to an AttributeList, avoid going through an AttrBuilder and instead directly add the attribute to the correct set. Going through AttrBuilder is expensive, because it requires all string attributes to be reconstructed. This can be further improved by inserting the attribute at the right position and using the AttributeSetNode::getSorted() API. This recovers the small compile-time regression from D94633.
-
LLVM GN Syncbot authored
-
Sebastian Neubauer authored
Allow parsing generated mir with custom pseudo source value tokens. Also rename pseudo source values to have more meaningful names. Relands ba7dcd85, which had memory leaks. Differential Revision: https://reviews.llvm.org/D95215
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
David Sherwood authored
-
Lang Hames authored
-
Jay Foad authored
This speeds up setLastUser enough to give a 5% to 10% speed up on trivial invocations of opt and llc, as measured by: perf stat -r 100 opt -S -o /dev/null -O3 /dev/null perf stat -r 100 llc -march=amdgcn /dev/null -filetype null Don't dump last use information unless -debug-pass=Details to avoid printing lots of spam that will break some existing lit tests. Before this patch, dumping last use information was broken anyway, because it used InversedLastUser before it had been populated. Differential Revision: https://reviews.llvm.org/D92309
-
David Sherwood authored
I have removed an unnecessary assert in LoopVectorizationCostModel::getInstructionCost that prevented a cost being calculated for select instructions when using scalable vectors. In addition, I have changed AArch64TTIImpl::getCmpSelInstrCost to only do special cost calculations for fixed width vectors and fall back to the base version for scalable vectors. I have added a simple cost model test for cmps and selects: test/Analysis/CostModel/sve-cmpsel.ll and some simple tests that show we vectorize loops with cmp and select: test/Transforms/LoopVectorize/AArch64/sve-basic-vec.ll Differential Revision: https://reviews.llvm.org/D95039
-
Sven van Haastregt authored
Add a Doxygen class comment and clean up other Doxygen comments in this file while we're at it.
-
Christudasan Devadasan authored
During instruction selection, there is an inconsistency in choosing the initial soffset value. With certain early passes, this value is getting modified and that brought additional fixup during eliminateFrameIndex to work for all cases. This whole transformation looks trivial and can be handled better. This patch clearly defines the initial value for soffset and keeps it unchanged before eliminateFrameIndex. The initial value must be zero for MUBUF with a frame index. The non-frame index MUBUF forms that use a raw offset from SP will have the stack register for soffset. During frame elimination, the soffset remains zero for entry functions with zero dynamic allocas and no callsites, or else is updated to the appropriate frame/stack register. Also, did some code clean up and made all asserts around soffset stricter to match. Reviewed By: scott.linder Differential Revision: https://reviews.llvm.org/D95071
-
ShihPo Hung authored
1. Op2 type in vrgather.vx should be XLEN instead of SEW 2. Add double type in vrgather-rv32 cases. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D95207
-
Jan Svoboda authored
This patch introduces Clang-specific MarshallingInfoVisibility TableGen class. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D95147
-
Craig Topper authored
Noticed while I was touching other nearby code. I don't have a test where this matters because the targets I work on use zero or one boolean contents. And the tests cases I've seen this fire on happen before type legalization where the result type is MVT::i1 so the distinction doesn't matter.
-
Nathan Lanza authored
Allocation was removed from ilist in 2016 in the git commit b5da0053. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D93953
-
Douglas Yung authored
Commit be9f322e8dc530a56f03356aad31fa9031b27e26 moved the list of workers from slaves.py to workers.py, but the documentation in "How To Add A Builder" was never updated and now references a non-existing file. This fixes that. Reviewed By: gkistanova Differential Revision: https://reviews.llvm.org/D94886
-
Christudasan Devadasan authored
-
Craig Topper authored
[TargetLowering] Simplify some code in SimplifySetCC that tries to handle SIGN_EXTEND_INREG operand types that should never happen. NFCI There was code to handle the first operand being different than the result type. And code to handle first operand having the same type as the type to extend from. This should never happen for a correctly formed SIGN_EXTEND_INREG. I've replace the code with asserts. I also noticed we created the same APInt twice so I've reused it.
-
Cassie Jones authored
Implement widening for G_SADDO and G_SSUBO. Previously it was only implemented for G_UADDO and G_USUBO. Also add legalize-add/sub tests for narrow overflowing add/sub on AArch64. Differential Revision: https://reviews.llvm.org/D95034
-
Hanhan Wang authored
- Extend spirv::ConstantOp::getZero/One to handle float, vector of int, and vector of float. - Refactor ZeroExtendI1Pattern to use getZero/One methods. - Add one more test for lowering std.zexti which extends vector<4xi1> to vector<4xi64>. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D95120
-
Hanhan Wang authored
`linalg.pad_tensor` is an operation that pads the `source` tensor with given `low` and `high` padding config. Example 1: ```mlir %pad_value = ... : f32 %1 = linalg.pad_tensor %0 low[1, 2] high[2, 3] { ^bb0(%arg0 : index, %arg1 : index): linalg.yield %pad_value : f32 } : tensor<?x?xf32> to tensor<?x?xf32> ``` Example 2: ```mlir %pad_value = ... : f32 %1 = linalg.pad_tensor %arg0 low[2, %arg1, 3, 3] high[3, 3, %arg1, 2] { ^bb0(%arg2: index, %arg3: index, %arg4: index, %arg5: index): linalg.yield %pad_value : f32 } : tensor<1x2x2x?xf32> to tensor<6x?x?x?xf32> ``` Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D93704
-
Arthur Eubanks authored
-
Arthur Eubanks authored
We tend to assume that the AA pipeline is by default the default AA pipeline and it's confusing when it's empty instead. PR48779 Initially reverted due to BasicAA running analyses in an unspecified order (multiple function calls as parameters), fixed by fetching analyses before the call to construct BasicAA. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D95117
-
Lang Hames authored
Also switch to using little_<b> / ulittle_<b> types to write results for consistency with MachO.
-
Argyrios Kyrtzidis authored
[ASTReader] Allow controlling separately whether validation should be disabled for a PCH vs a module file This addresses an issue with how the PCH preable works, specifically: 1. When using a PCH/preamble the module hash changes and a different cache directory is used 2. When the preamble is used, PCH & PCM validation is disabled. Due to combination of #1 and #2, reparsing with preamble enabled can end up loading a stale module file before a header change and using it without updating it because validation is disabled and it doesn’t check that the header has changed and the module file is out-of-date. rdar://72611253 Differential Revision: https://reviews.llvm.org/D95159
-
Mircea Trofin authored
This patch sets the default for llvm tests, with the exception of tests under Reduce, because quite a few of them use 'FileCheck' as parameter to a tool, and including a flag as that parameter would complicate matters. The rest of the patch undo-es the lit.local.cfg changes we progressively introduced as temporary measure to avoid regressions under various directories. Differential Revision: https://reviews.llvm.org/D95111
-
Arthur Eubanks authored
Having a custom inliner doesn't really fit in with the new PM's pipeline. It's also extra technical debt. amdgpu-inline only does a couple of custom things compared to the normal inliner: 1) It disables inlining if the number of BBs in a function would exceed some limit 2) It increases the threshold if there are pointers to private arrays(?) These can all be handled as TTI inliner hooks. There already exists a hook for backends to multiply the inlining threshold. This way we can remove the custom amdgpu-inline pass. This caused inline-hint.ll to fail, and after some investigation, it looks like getInliningThresholdMultiplier() was previously getting applied twice in amdgpu-inline (https://reviews.llvm.org/D62707 fixed it not applying at all, so some later inliner change must have fixed something), so I had to change the threshold in the test. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D94153
-
Arthur Eubanks authored
This reverts commit be611431. Other/new-pm-lto-defaults.ll failing
-
Jacques Pienaar authored
Add factory to create streams for logging the reproducer. Allows for more general logging (beyond file) and logging the configuration/module separately (logged in order, configuration before module). Also enable querying filename of ToolOutputFile. Differential Revision: https://reviews.llvm.org/D94868
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Arthur Eubanks authored
We tend to assume that the AA pipeline is by default the default AA pipeline and it's confusing when it's empty instead. PR48779 Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D95117
-
Hsiangkai Wang authored
The DWARF numbers of vector registers are already defined in riscv-elf-psabi. The DWARF number for vector is start from 96. Correct the DWARF numbers of vector registers. Differential Revision: https://reviews.llvm.org/D94749
-
Craig Topper authored
These instructions produce 2*SEW result so the input can't have an LMUL=8 or the result would need a non-existant LMUL=16. So only create pseudos for LMUL up to 4. Differential Revision: https://reviews.llvm.org/D95189
-
Cassie Jones authored
The expansion for wide subtractions includes G_USUBO. Differential Revision: https://reviews.llvm.org/D95032
-
ShihPo Hung authored
Reviewed By: craig.topper, frasercrmck Differential Revision: https://reviews.llvm.org/D95113
-
ShihPo Hung authored
Add unordered indexed load: vluxei Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D95028
-