- Jan 02, 2022
-
-
Kazu Hirata authored
Identified with readability-redundant-member-init.
-
- Jan 01, 2022
-
-
Kazu Hirata authored
-
Craig Topper authored
This matches what is done in ValueTracking.cpp Reviewed By: RKSimon, foad Differential Revision: https://reviews.llvm.org/D116423
-
Craig Topper authored
[RISCV][LegalizeIntegerTypes] Teach PromoteSetCCOperands not to sext i32 comparisons for RV64 if the promoted values are already zero extended. This is similar to what is done for targets that prefer zero extend where we avoid using a zero extend if the promoted values are sign extended. We'll also check for zero extended operands for ugt, ult, uge, and ule when the target prefers sign extend. This is different than preferring zero extend, where we only check for sign bits on equality comparisons. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D116421
-
- Dec 31, 2021
-
-
Craig Topper authored
[LegalizeIntegerTypes] Rename NewLHS/NewRHS arguments to DAGTypeLegalizer::PromoteSetCCOperands. NFC The 'New' only makes sense in the context of these being output arguments, but they are also used as inputs first. Drop the 'New' and just call them LHS/RHS. Factored out of D116421.
-
- Dec 30, 2021
-
-
Craig Topper authored
This patch adds isel support for STRICT_LRINT/LLRINT/LROUND/LLROUND. It also adds test cases for f32 and f64 constrained intrinsics that correspond to the intrinsics in float-intrinsics.ll and double-intrinsics.ll. Support for promoting the integer argument of STRICT_FPOWI was added. I've skipped adding tests for f16 intrinsics, since we don't have libcalls for them and we have inconsistent support for promoting them in LegalizeDAG. This will need to be examined more closely. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D116323
-
- Dec 29, 2021
-
-
modimo authored
D43002 introduced a test debug-info-objname.cpp that outputted the current compiler version into CodeView. Internally we appended a date to the patch version and overflowed the 16-bits allocated to that space. This change clamps the Frontend version outputted values to 16-bits like rGd1185fc081ead71a8bf239ff1814f5ff73084c15 did for the Backend version. Testing: ninja check-all newly added tests correctly clamps and no longer asserts when trying to output the field Reviewed By: aganea Differential Revision: https://reviews.llvm.org/D116243
-
- Dec 28, 2021
-
-
Craig Topper authored
getShiftAmountTy used to directly return the shift amount type from the target which could be too small for large illegal types. For example, X86 always returns i8. The code here detected this and used i32 instead if it won't fit. This behavior was added to getShiftAmountTy in D112469 so we no longer need this workaround.
-
Kazu Hirata authored
Identified with modernize-use-nullptr.
-
Kazu Hirata authored
Identified with readability-const-return-type.
-
- Dec 27, 2021
-
-
Petar Avramovic authored
-
- Dec 26, 2021
-
-
David Blaikie authored
Instead of hashing DIE offsets, hash DIE references the same as they would be when used outside of a loclist - that is, deep hash the type on first use, and hash the numbering on subsequent uses. This does produce different hashes for different type references, where it did not before (because we were hashing zero all the time - so it didn't matter what type was referenced, the hash would be identical). This also allows us to enforce that the DIE offset (& size) is not queried before it is used (which came up while investigating another bug recently).
-
- Dec 25, 2021
-
-
Kazu Hirata authored
Identified with readability-redundant-control-flow.
-
- Dec 24, 2021
-
-
Fangrui Song authored
-
David Blaikie authored
Causes invalid debug_gnu_pubnames (& I think non-gnu pubnames too) - visible as 0 values for the offset in gnu pubnames. More details on the original review in D115325. This reverts commit 78d15a11. This reverts commit 54586582.
-
- Dec 23, 2021
-
-
Kristina Bessonova authored
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches Try to revert D113741 once again. This also reverts 0ac75e82 (D114705) as it causes LLDB's lldb-api.lang/cpp/nsimport.TestCppNsImport.py test failure w/o D113741. This reverts commit f9607d45. Differential Revision: https://reviews.llvm.org/D116225
-
Simon Pilgrim authored
Fix issue in TargetLowering::expandROT where we only attempt to flip a rotation if the other direction has better support - this matches TargetLowering::expandFunnelShift This allows us to enable ISD::ROTR lowering on SSE targets, which particularly simplifies/improves codegen for splat amount and AVX2 per-element shifts.
-
Petar Avramovic authored
Artifact combiner is not able to access individual elements after using LCMTy style merge/unmerge, extract and insert to change vector number of elements (pad with undef or split to sub-vector instructions). Use unmerge to individual elements instead and then merge elements into requested types. Change argument lowering for vectors and moreElementsVector to use buildPadVectorWithUndefElements and buildDeleteTrailingVectorElements. FewerElementsVector had a few helpers that had different behavior, introduce new helper for most of the opcodes. FewerElementsVector helper is more flexible since it can create leftover instruction smaller then requested type (useful in case target wants to avoid pad with undef and use fewer registers). If target does not want leftover of different type it should call more elements first. Some helpers were performing more elements first to have split without leftover. Opcodes that used this helper use clampMaxNumElementsStrict (does more elements first) in LegalizerInfo to avoid test changes. Fixes failures caused by failing to combine artifacts created during more/fewer elements vector. Differential Revision: https://reviews.llvm.org/D114198
-
Muhammad Omair Javaid authored
Revert "Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches" This has broke following LLDB buildbots: https://lab.llvm.org/buildbot/#/builders/17/builds/14984 https://lab.llvm.org/buildbot/#/builders/96/builds/15928 https://lab.llvm.org/buildbot/#/builders/68/builds/23600 This reverts commit 62a6b9e9.
-
Shivam Gupta authored
When the source has a series of assignments, users reasonably want to have the debugger step through each one individually. Turn off the combine for adjacent stores so we get this behavior at -O0. Similar to D7181. Reviewed By: spatel, xgupta Differential Revision: https://reviews.llvm.org/D115808
-
David Blaikie authored
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches This patch causes invalid DWARF to be generated in some cases of LTO + Split DWARF - follow-up on the original review thread (D113741) contains further detail and test cases. This reverts commit 75b622a7. This reverts commit b6ccca21. This reverts commit 514d3744.
-
- Dec 22, 2021
-
-
Simon Pilgrim authored
Add callback to enable us to test target nodes if they are splat vectors Added some basic X86ISD::VBROADCAST + X86ISD::VBROADCAST_LOAD handling
-
Alexandre Ganea authored
Reland integrates build fixes & further review suggestions. Thanks to @zturner for the initial S_OBJNAME patch! Differential Revision: https://reviews.llvm.org/D43002
-
Alexandre Ganea authored
Also revert all subsequent fixes: - abd1cbf5 [Clang] Disable debug-info-objname.cpp test on Unix until I sort out the issue. - 00ec4412 [Clang] debug-info-objname.cpp test: explictly encode a x86 target when using %clang_cl to avoid falling back to a native CPU triple. - cd407f6e [Clang] Fix build by restricting debug-info-objname.cpp test to x86.
-
- Dec 21, 2021
-
-
Alexandre Ganea authored
Thanks to @zturner for the initial patch! Differential Revision: https://reviews.llvm.org/D43002
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D115868
-
Simon Pilgrim authored
This doesn't generate any nodes so should be usable by methods with const SelectionDAG &.
-
Kazu Hirata authored
-
Mircea Trofin authored
-
- Dec 20, 2021
-
-
Sami Tolvanen authored
With Control-Flow Integrity (CFI), the LowerTypeTests pass replaces function references with CFI jump table references, which is a problem for low-level code that needs the address of the actual function body. For example, in the Linux kernel, the code that sets up interrupt handlers needs to take the address of the interrupt handler function instead of the CFI jump table, as the jump table may not even be mapped into memory when an interrupt is triggered. This change adds the no_cfi constant type, which wraps function references in a value that LowerTypeTestsModule::replaceCfiUses does not replace. Link: https://github.com/ClangBuiltLinux/linux/issues/1353 Reviewed By: nickdesaulniers, pcc Differential Revision: https://reviews.llvm.org/D108478
-
Shivam Gupta authored
This reverts commit 731bde1e.
-
- Dec 19, 2021
-
-
Shivam Gupta authored
When the source has a series of assignments, users reasonably want to have the debugger step through each one individually. Turn off the combine for adjacent stores so we get this behavior at -O0. Similar to D7181. Differential Revision: https://reviews.llvm.org/D115808
-
Simon Pilgrim authored
Match order of most of the other integer opcode combines
-
Simon Pilgrim authored
Merge the node combines into a common DAGCombiner::visitFMinMax (like we do for IMINMAX). Move the constant folding into SelectionDAG::foldConstantFPMath. This allows us to fold the vecreduce-propagate-sd-flags.ll test as it reduces constants - so I've refactored it to take variables instead. Differential Revision: https://reviews.llvm.org/D115952
-
- Dec 18, 2021
-
-
Kazu Hirata authored
-
- Dec 17, 2021
-
-
Kazu Hirata authored
-
Sanjay Patel authored
We were using a function attribute to indicate a non-standard FP mode, but now we can use intrinsics for that job as shown in the new tests. Presumably the x86 asm could be improved for that IR with intrinsics, but I have not worked out exactly how to do that. Note that the transform to FTRUNC still requires a hacky check for "nsz" (because FMF are not applied to FP casts). This is a cleanup based on the clang change in D115804 / 8c7f2a4f . This is effectively a revert of 5a90285b + D46237 . Differential Revision: https://reviews.llvm.org/D115885
-
Kazu Hirata authored
This patch fixes: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:22617:11: error: unused variable 'Ops' [-Werror,-Wunused-variable]
-
Simon Pilgrim authored
Constant folding (scalar/vector) is now consistently handled before the SimplifyVBinOp calls.
-
Simon Pilgrim authored
Replace custom constant scalar/splat folding with FoldConstantArithmetic call and canonicalize commutative constant ops to the RHS before the SimplifyVBinOp call
-