Vladislav Dzhidzhoev [Mon, 15 Aug 2022 18:51:13 +0000 (21:51 +0300)]
[AArch64][GlobalISel][Legalizer] Legalize G_SHUFFLE_VECTOR with different lengths
Legalize G_SHUFFLE_VECTOR having destination vector length greater than
source vector length by reshaping source vectors.
Partial implementation of SelectionDAGBuilder::visitShuffleVector.
Differential Revision: https://reviews.llvm.org/
D132190
Manuel Brito [Thu, 15 Dec 2022 11:54:52 +0000 (11:54 +0000)]
[Clang][CodeGen] Use poison instead of undef in CodeGen for ARM Builtins [NFC]
Differential Revision: https://reviews.llvm.org/
D140090
Simon Pilgrim [Thu, 15 Dec 2022 11:53:59 +0000 (11:53 +0000)]
[PowerPC] Fix MSVC "switch statement contains 'default' but no 'case' labels" warning. NFC.
Benjamin Maxwell [Thu, 15 Dec 2022 11:29:34 +0000 (11:29 +0000)]
Revert "[TargetLowering] Teach DemandedBits about VSCALE"
This reverts commit
c165b0553a96394b9bbf3984782703cdae99821d.
Matthias Springer [Thu, 15 Dec 2022 10:44:47 +0000 (11:44 +0100)]
[mlir][linalg][NFC] Split populateFoldUnitExtentDimsViaReshapesPatterns
MoveInitOperandsToInput is put into a separate populate... function because it can interfere with certain transformations.
Differential Revision: https://reviews.llvm.org/
D140091
Valentin Clement [Thu, 15 Dec 2022 11:02:11 +0000 (12:02 +0100)]
[flang] Fix associating entity when selector is an array, pointer or allocatable
In SELECT TYPE, within the block following TYPE IS, the associating entity is not polymorphic.
It has the type named in the type guard and other properties taken from the
selector. Within the block following a CLASS IS type guard statement, the
associating entity is polymorphic and has the declared type named in the type
guard statement.
This patch makes sure the associating entity matches the selector if it is
an array, a pointer or an allocatable.
Reviewed By: jeanPerier
Differential Revision: https://reviews.llvm.org/
D140017
Luke Lau [Thu, 15 Dec 2022 10:18:06 +0000 (10:18 +0000)]
[WebAssembly] Use ComplexPattern on remaining memory instructions
This continues the refactoring work of selecting offset + address
operands with the AddrOpsN pattern, previously called LoadOpsN.
This is not an NFC, since constant addresses are now folded into the
offset in more places for v128.storeN_lane.
Differential Revision: https://reviews.llvm.org/
D139950
Jean Perier [Thu, 15 Dec 2022 10:13:54 +0000 (11:13 +0100)]
[flang][NFC] add builder to simplify fir.shape creation
Differential Revision: https://reviews.llvm.org/
D140031
Jean Perier [Thu, 15 Dec 2022 10:12:29 +0000 (11:12 +0100)]
[flang] Add hlfir.apply definition
hlfir.apply allows retrieving element values from an array expression
value. See https://github.com/llvm/llvm-project/blob/main/flang/docs/HighLevelFIR.md
for more detail.
Differential Revision: https://reviews.llvm.org/
D140023
Jean Perier [Thu, 15 Dec 2022 10:09:57 +0000 (11:09 +0100)]
[flang] Add hlfir.elemental and hlfir.yield_element definition
hlfir.elemental is the operation that will allow representing all
Fortran elemental expressions and more as functions of the indices.
See https://github.com/llvm/llvm-project/blob/main/flang/docs/HighLevelFIR.md for
more details about it.
Also add hlfir.yield_elemement which is the hlfir.elemental region terminator.
Differential Revision: https://reviews.llvm.org/
D140015
Anton Sidorenko [Wed, 30 Nov 2022 14:57:33 +0000 (17:57 +0300)]
[RISCV] Allow conversion of fp divisions to fp multiplications by the reciprocal
If the divisor is repeated at least twice, we will convert the FDIVs to the
calculation of the reciprocal and FMULs.
We perform the transformation only under fast-math mode. FDIVs must have
'arcp' flag.
Differential Revision: https://reviews.llvm.org/
D140024
Anton Sidorenko [Wed, 30 Nov 2022 13:57:20 +0000 (16:57 +0300)]
[RISCV] Precommit test for
D140024
Simple test to check converson of repeated fp divisors.
Fangrui Song [Thu, 15 Dec 2022 09:34:31 +0000 (09:34 +0000)]
YAMLParser: llvm::Optional => std::optional
Quentin Colombet [Mon, 12 Dec 2022 14:37:30 +0000 (14:37 +0000)]
[mlir][test] Add expand-strided-metadata to lower-to-llvm
This patch adds the `ExpandStridedMetadataPass` to the LowerToLLVM named
pipeline.
This is required now that "complex" memref operations, like subviews,
need to be expanded before being lowered.
Differential Revision: https://reviews.llvm.org/
D139841
YunQiang Su [Thu, 15 Dec 2022 09:04:36 +0000 (09:04 +0000)]
MIPS: fix build from IR files, nan2008 and FpAbi
When we use llc or lld to compiler IR files, the features +nan2008 and +fpxx/+fp64 are not used.
Thus wrong format files are produced.
In IR files, the attributes are only set for function while not the whole compile units.
So we output `.nan 2008` and `.module fp=xx/64` before every function.
`isFPXXDefault`: for o32, the FPXX should always be the default, no matter about the vendors.
Of course some distributions with FP64 default enabled should be listed explicit.
Let's add them in future if we know about one.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/
D138179
Nikita Popov [Thu, 15 Dec 2022 08:59:15 +0000 (09:59 +0100)]
[SCEV] Convert some tests to opaque pointers (NFC)
Nikita Popov [Thu, 15 Dec 2022 08:54:44 +0000 (09:54 +0100)]
[CostModel] Convert some tests to opaque pointers (NFC)
These required some manual fixup.
Nikita Popov [Thu, 15 Dec 2022 08:52:14 +0000 (09:52 +0100)]
[CostModel] Convert test to opaque pointers (NFC)
Replace GEP index from 0 to 1 so it is not a trivial GEP.
Nikita Popov [Thu, 15 Dec 2022 08:48:57 +0000 (09:48 +0100)]
[CostModel] Convert some tests to opaque pointers (NFC)
Nikita Popov [Thu, 15 Dec 2022 08:47:53 +0000 (09:47 +0100)]
[AliasSet] Convert tests to opaque pointers (NFC)
gonglingqin [Thu, 15 Dec 2022 07:41:37 +0000 (15:41 +0800)]
[LoongArch] Undef the macro after using it. NFC.
Uday Bondhugula [Wed, 14 Dec 2022 18:24:31 +0000 (23:54 +0530)]
[MLIR] NFC. Split out code from hasNoInterveningEffect
The `hasNoInterveningEffect` utility is too long with too deeply nested
logic. Split out a part into a helper. NFC.
Reviewed By: springerm
Differential Revision: https://reviews.llvm.org/
D139795
Chuanqi Xu [Thu, 15 Dec 2022 07:22:44 +0000 (15:22 +0800)]
[NFC] [C++20] [Modules] Add merge-records test for C++20 Modules
Merging declarations and checking ODR violations are a big part in the
implementation of modules. Currently, the implementation of C++20
Modules share a big part with the Clang modules and the ObjC modules for
the clang's serializer/deserailizer.
This is good. We saved a lot of time by this. And a lot of C++20
Modules's codes can run due to reuse it. However, the bad side is that
we lack a lot of tests about merging declarations and ODR checks for
C++20 Modules. It is not stable on the long run. So the patch tries to
add a test for it. This should be a long-term goal for C++20 modules.
(To add the test we shoudl add).
esmeyi [Thu, 15 Dec 2022 06:56:53 +0000 (01:56 -0500)]
[XCOFF] adjust the Fixedvalue for R_RBR relocations.
Summary: Currently we get a wrong fixed value for R_RBR relocations when -ffunction-sections enabled. This patch fixes this.
Reviewed By: DiggerLin, shchenz
Differential Revision: https://reviews.llvm.org/
D138982
Sameer Sahasrabuddhe [Thu, 15 Dec 2022 05:52:46 +0000 (11:22 +0530)]
[AAPointerInfo] handle multiple offsets in PHI
Previously reverted in
12696d302d146ffe616eecab3feceba9d29be2db
The arguments to a PHI may represent a recurrence by eventually using the output
of the PHI itself. This is now handled by checking for cycles in the control
flow. If a PHI is not in a recurrence, it is now able to report multiple offsets
instead of conservatively reporting unknown.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/
D138991
luxufan [Thu, 15 Dec 2022 05:52:07 +0000 (13:52 +0800)]
[LoopFusion][NFC] Regenerate test checks
Kazu Hirata [Thu, 15 Dec 2022 05:50:34 +0000 (21:50 -0800)]
Don't include StringSwitch (NFC)
These files do not use llvm::StringSwitch.
Akira Hatanaka [Thu, 15 Dec 2022 05:28:02 +0000 (21:28 -0800)]
Return early if FileID is invalid. NFC
Kazu Hirata [Thu, 15 Dec 2022 05:16:22 +0000 (21:16 -0800)]
Don't include Optional.h
These files no longer use llvm::Optional.
Sameer Sahasrabuddhe [Thu, 15 Dec 2022 04:44:39 +0000 (10:14 +0530)]
Revert "[AAPointerInfo] handle multiple offsets in PHI"
This reverts commit
88db516af69619d4326edea37e52fc7321c33bb5.
Michael Buch [Thu, 15 Dec 2022 04:01:21 +0000 (04:01 +0000)]
[lldb][Test] TestRerunAndExpr.py: explicitly delete a.out before rebuilding it
This applies the same fix as in `
ad3870d6552305d2d6bd6aa2faca6f0644052d9a`
for `TestRerunAndExpr.py` to this test.
D138724
Sameer Sahasrabuddhe [Fri, 25 Nov 2022 08:04:57 +0000 (13:34 +0530)]
[AAPointerInfo] handle multiple offsets in PHI
The arguments to a PHI may represent a recurrence by eventually using the output
of the PHI itself. This is now handled by checking for cycles in the control
flow. If a PHI is not in a recurrence, it is now able to report multiple offsets
instead of conservatively reporting unknown.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/
D138991
Quinn Dawkins [Thu, 15 Dec 2022 03:04:27 +0000 (03:04 +0000)]
[mlir][gpu][spirv] Verify elementwise op type as mulf when converting to spirv.MatrixTimesScalar
Conversion from gpu.subgroup_mma_constant_matrix to spirv.MatrixTimesScalar didn't check that the op type was a multiplication and thus would incorrectly convert other elementwise scalar operations.
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/
D140081
Michael Buch [Thu, 15 Dec 2022 02:47:44 +0000 (02:47 +0000)]
[llvm][test] Split DW_AT_default_value check out of clang/test/
Followup to
D139953 to fix build failure on machines not
configured for x86.
Differential Revision: https://reviews.llvm.org/
D140084
Kazu Hirata [Thu, 15 Dec 2022 02:36:49 +0000 (18:36 -0800)]
[lldb] Use llvm::transformOptional (NFC)
This is part of an effort to migrate from llvm::Optional to
std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
Shubham Sandeep Rastogi [Thu, 15 Dec 2022 02:31:11 +0000 (18:31 -0800)]
Revert "Remove the dependency between lib/DebugInfoDWARF and MC."
This reverts commit
7dde94251e1c9e4634f5d51d41f2d4a191258fb3.
Because of test failures:
lldb-shell :: SymbolFile/DWARF/x86/DW_AT_loclists_base.s
lldb-shell :: SymbolFile/DWARF/x86/debug_loc.s
lldb-shell :: SymbolFile/DWARF/x86/debug_loc_and_loclists.s
lldb-shell :: SymbolFile/DWARF/x86/debug_loclists-dwo.s
lldb-shell :: SymbolFile/DWARF/x86/debug_loclists-dwp.s
lldb-shell :: SymbolFile/DWARF/x86/dwp.s
lldb-shell :: SymbolFile/DWARF/x86/unused-inlined-params.test
lldb-shell :: SymbolFile/NativePDB/inline_sites.test
lldb-shell :: SymbolFile/NativePDB/local-variables-registers.s
lldb-shell :: SymbolFile/NativePDB/nested-blocks-same-address.s
Kazu Hirata [Thu, 15 Dec 2022 02:32:09 +0000 (18:32 -0800)]
[mlir] Use llvm::transformOptional (NFC)
This is part of an effort to migrate from llvm::Optional to
std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
Kazu Hirata [Thu, 15 Dec 2022 02:27:39 +0000 (18:27 -0800)]
[clang-tidy] Use llvm::transformOptional (NFC)
This is part of an effort to migrate from llvm::Optional to
std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
Kazu Hirata [Thu, 15 Dec 2022 02:19:25 +0000 (18:19 -0800)]
[clang] Use llvm::transformOptional (NFC)
This is part of an effort to migrate from llvm::Optional to
std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
Shubham Sandeep Rastogi [Thu, 6 Oct 2022 19:15:07 +0000 (12:15 -0700)]
Remove the dependency between lib/DebugInfoDWARF and MC.
Differential Revision: https://reviews.llvm.org/
D134817
Vasileios Porpodas [Tue, 13 Dec 2022 23:13:22 +0000 (15:13 -0800)]
[NFC] Cleanup: Remove unnecessary use of Function::getBasicBlockList()
LLVM GN Syncbot [Thu, 15 Dec 2022 01:19:28 +0000 (01:19 +0000)]
[gn build] Port
3ec6c997c67d
Nikolas Klauser [Sat, 1 Oct 2022 19:25:13 +0000 (21:25 +0200)]
[libc++] Implement P1169R4 (static operator())
Reviewed By: ldionne, huixie90, #libc
Spies: EricWF, libcxx-commits, royjacobson
Differential Revision: https://reviews.llvm.org/
D135016
Shubham Sandeep Rastogi [Thu, 15 Dec 2022 00:44:21 +0000 (16:44 -0800)]
Emit unwind information in the .debug_frame section when the .cfi_sections .debug_frame directive is used.
Differential Revision: https://reviews.llvm.org/
D139663
Shubham Sandeep Rastogi [Thu, 15 Dec 2022 00:41:00 +0000 (16:41 -0800)]
Revert "Emit unwind information in the .debug_frame section when the .cfi_sections .debug_frame directive is used."
This reverts commit
28edf3349bd1d595270c17ec73e49999175f1212.
This is because:
The Buildbot has detected a failed build on builder llvm-clang-x86_64-sie-ubuntu-fast while building llvm.
Full details are available at:
https://lab.llvm.org/buildbot#builders/139/builds/32856
Worker for this Build: sie-linux-worker
Blamelist:
Shubham Sandeep Rastogi <srastogi22@apple.com>
BUILD FAILED: 40459 expected passes 83 expected failures 26251 unsupported tests 1 unexpected failures (failure)
Step 6 (test-build-unified-tree-check-all) failure: 40459 expected passes 83 expected failures 26251 unsupported tests 1 unexpected failures (failure)
******************** TEST 'LLVM :: DebugInfo/debugframeinfo.s' FAILED ********************
Script:
--
: 'RUN: at line 1'; /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-darwin22.1.0 /home/buildbot/buildbot-root/llvm-project/llvm/test/DebugInfo/debugframeinfo.s -o /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/test/DebugInfo/Output/debugframeinfo.s.tmp.o
: 'RUN: at line 2'; /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/llvm-dwarfdump -debug-frame /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/test/DebugInfo/Output/debugframeinfo.s.tmp.o | /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/FileCheck /home/buildbot/buildbot-root/llvm-project/llvm/test/DebugInfo/debugframeinfo.s
--
Exit Code: 1
Command Output (stderr):
--
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/bin/llvm-mc: error: unable to get target for 'arm64-apple-darwin22.1.0', see --version and --triple.
Shubham Sandeep Rastogi [Thu, 8 Dec 2022 18:55:52 +0000 (10:55 -0800)]
Emit unwind information in the .debug_frame section when the .cfi_sections .debug_frame directive is used.
Differential Revision: https://reviews.llvm.org/
D139663
Jakub Kuderski [Thu, 15 Dec 2022 00:32:40 +0000 (19:32 -0500)]
[mlir][arith][spirv] Account for possible type conversion failures
Check results of all type conversions in `--convert-arith-to-spirv`.
Fixes: https://github.com/llvm/llvm-project/issues/59496
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/
D140033
Vasileios Porpodas [Wed, 14 Dec 2022 01:04:01 +0000 (17:04 -0800)]
[IR] Adds Function::erase() for erasing a range of basic blocks
This is part of a series of patches that aim at making Function::getBasicBlockList() private.
Differential Revision: https://reviews.llvm.org/
D140064
Kirill Stoimenov [Wed, 14 Dec 2022 23:47:25 +0000 (23:47 +0000)]
[HWASAN] Added dtls_ member variable which is needed by __lsan::GetThreadRangesLocked.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/
D140065
Craig Topper [Wed, 14 Dec 2022 23:58:02 +0000 (15:58 -0800)]
[RISCV] Remove Group<m_riscv_Features_Group> from mcmodel_EQ_medlow/mcmodel_EQ_medany. NFCI
As far as I can tell m_riscv_Features_Group is for options that
can be passed to cc1's -target-feature. These mcmodel aliases aren't
that.
I think they get treated as aliases and disappear before we get
to processing m_riscv_Features_Group so it didn't cause any problems.
I've left them in m_Group to match mcmodel_EQ.
Vasileios Porpodas [Tue, 13 Dec 2022 23:49:48 +0000 (15:49 -0800)]
[NFC] Cleanup: Replace Function::getBasicBlockList().splice() with Function::splice()
This is part of a series of patches that aim at making Function::getBasicBlockList() private.
Differential Revision: https://reviews.llvm.org/
D139984
Slava Zakharin [Wed, 14 Dec 2022 18:22:00 +0000 (10:22 -0800)]
[flang] Lower exponentiation without using pgmath.
Exponentiation is lowered to either math::FPowI or Fortran runtime
call (in case of --math-runtime=precise).
MathToFuncs convertor will convert math::FPowI operations with
exponent width >32 to calls of outlined implementations and otherwise
will leave the operation to MathToLLVM convertor.
Reviewed By: jeanPerier
Differential Revision: https://reviews.llvm.org/
D139806
Nitin John Raj [Wed, 14 Dec 2022 22:03:43 +0000 (14:03 -0800)]
[RISCV][CodeGen][SelectionDAG] Recursively check hasAllNBitUsers for logical machine opcodes
We don’t have W versions of AND/OR/XOR/ANDN/ORN/XNOR so we should recursively check their users. We should limit the recursion to SelectionDAG::MaxRecursionDepth levels.
We need to add a Depth argument, all existing callers should pass 0 to the Depth. The new recursive calls should increment it by 1. At the top of the function we should give up and return false if Depth >= SelectionDAG::MaxRecursionDepth.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/
D139462
bixia1 [Wed, 14 Dec 2022 22:13:13 +0000 (14:13 -0800)]
[mlir][sparse] Make the remaining integration tests run with vectorization.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/
D140057
bixia1 [Tue, 13 Dec 2022 18:41:12 +0000 (10:41 -0800)]
[mlir][sparse] Add another call to ConvertVectorToLLVMPass, to lower the vector operations added by ConvertMathToLLVMPass.
Run sparse_tanh with vectorization.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/
D139958
Vasileios Porpodas [Wed, 14 Dec 2022 21:29:10 +0000 (13:29 -0800)]
[NFC] Fixes ModuleMaker example build failure caused by
c143b77b30fc23f70aac94be66e412651771c0fc
Differential Revision: https://reviews.llvm.org/
D140052
Kazu Hirata [Wed, 14 Dec 2022 22:51:05 +0000 (14:51 -0800)]
[Support] Add llvm::transformOptional
llvm::Optional<T> has transform, which is equivalent to
std::optional<T>::transform. The problem is that
std::optional<T>::transform won't be available until C++23, implying
that we probably cannot use it in our codebase untli 2028 or so. We
certainly don't want to keep llvm::Optional just for transform.
This patch adds llvm::transformOptional to STLForwardCompat.h so that
we can use transform during the migration to std::optional and beyond.
I've shamelessly borrowed the implementation and test from
llvm/include/llvm/ADT/Optional.h and
llvm/unittests/ADT/OptionalTest.cpp respectively.
This is part of an effort to migrate from llvm::Optional to
std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
Differential Revision: https://reviews.llvm.org/
D139779
Hanhan Wang [Tue, 13 Dec 2022 23:35:18 +0000 (15:35 -0800)]
[mlir][tensor] Move tiling tensor.pad op tests from Linalg/ to Tensor/
Reviewed By: nicolasvasilache, springerm
Differential Revision: https://reviews.llvm.org/
D139978
Florian Hahn [Wed, 14 Dec 2022 22:47:05 +0000 (22:47 +0000)]
[LV] Add extra test for
D139927.
Koakuma [Wed, 14 Dec 2022 22:35:04 +0000 (17:35 -0500)]
[SPARC][clang] Add SPARC target feature flags
This adds some SPARC feature flags to clang, for those that we have in common with GCC:
-m[no-]fpu
-m[no-]fsmuld
-m[no-]popc
-m[no-]vis
-m[no-]vis2
-m[no-]vis3
-m[hard/soft]-quad-float
All have the same meanings as GCC's options (https://gcc.gnu.org/onlinedocs/gcc/SPARC-Options.html).
This fixes, among other things, the -mno-fpu part of bug #40792
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/
D139768
Michael Buch [Tue, 13 Dec 2022 17:46:04 +0000 (17:46 +0000)]
[llvm][DebugInfo] Backport DW_AT_default_value for template args
**Summary**
Starting with DWARFv5, DW_AT_default_value can be used to indicate
that a template argument has a default value. With this patch LLVM
will emit the this attribute earlier versions of DWARF, unless
compiling with -gstrict-dwarf.
Differential Revision: https://reviews.llvm.org/
D139953
Michael Buch [Tue, 13 Dec 2022 17:40:02 +0000 (17:40 +0000)]
[clang][DebugInfo] Attach DW_AT_default_value to template arg metadata regardless of DwarfVersion
**Summary**
Starting with DWARFv5, DW_AT_default_value can be used to indicate
that a template argument has a default value. With this patch Clang
will attach the attribute to the debug metadata regardless of version.
In a follow-up patch we will change llvm to emit this attribute in
earlier versions of DWARF, unless compiling with -gstrict-dwarf.
**Details**
* Previously the DwarfVersion check in CGDebugInfo was inconsistent:
For non-type template arguments we attached the attribute to the debug
metadata in DWARFv5 only. Whereas for type template arguments we didn't
have such a version restriction. With this patch we attach the attribute
regardless of DWARF version (and instead offload the check to the AsmPrinter
in a future patch).
wren romano [Wed, 14 Dec 2022 20:58:50 +0000 (12:58 -0800)]
[mlir][sparse] Moving/renaming genBuffer to allocaBuffer
This allows allocaBuffer to be used outside of SparseTensorConversion.cpp, which will be helpful for a some future commits.
Reviewed By: aartbik, Peiming
Differential Revision: https://reviews.llvm.org/
D140047
Peiming Liu [Tue, 13 Dec 2022 19:49:43 +0000 (19:49 +0000)]
[mlir][sparse] introduce sparse_tensor::StorageSpecifierType and related operations on it
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/
D139961
Vasileios Porpodas [Wed, 14 Dec 2022 22:03:47 +0000 (14:03 -0800)]
[NFC] Fixes BrainF example build failure caused by
c143b77b30fc23f70aac94be66e412651771c0fc
Vasileios Porpodas [Wed, 14 Dec 2022 21:45:26 +0000 (13:45 -0800)]
[docs] Updates ProgrammersManual to reflect the change that BasicBlock::getInstList() is private.
Differential Revision: https://reviews.llvm.org/
D140054
Gulfem Savrun Yeniceri [Wed, 14 Dec 2022 21:45:50 +0000 (21:45 +0000)]
Revert "[profile] Add binary ids into indexed profiles"
This reverts commit
7734053fd98e7d5ddc749808ce38134686425fb7
because it broke powerpc64 bot:
https://lab.llvm.org/buildbot#builders/231/builds/6229
Matt Arsenault [Wed, 14 Dec 2022 21:47:16 +0000 (16:47 -0500)]
AMDGPU: Update test
Hendrik Greving [Wed, 14 Dec 2022 00:53:05 +0000 (16:53 -0800)]
[EarlyIfConversion] Add target hook to allow for multiple ifcvt iterations.
Adds a target hook canPredicatePredicatedInstr(const MachineInstr&) that
assumes an instruction is already predicated and returns true if it can
be predicated again, used by the early if-conversion pass in order to
iterate multiple times on architectures supporting predicate logic.
No test added since there is no upstream target that can take advantage.
Differential Revision: https://reviews.llvm.org/
D139981
Mark de Wever [Wed, 14 Dec 2022 19:10:23 +0000 (20:10 +0100)]
[NFC][libc++][format] Uses qualified calls.
Changes all unqualified calls to __throw_format_error to use a qualified
call.
Reviewed By: #libc, philnik
Differential Revision: https://reviews.llvm.org/
D140038
Aart Bik [Wed, 14 Dec 2022 01:17:45 +0000 (17:17 -0800)]
[mlir][sparse][simd] only accept proper unit stride subscripts
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/
D139983
Joshua Batista [Tue, 13 Dec 2022 00:09:22 +0000 (16:09 -0800)]
[HLSL] Add trunc library function
Reviewed By: python3kgae
Differential Revision: https://reviews.llvm.org/
D139742
Craig Topper [Wed, 14 Dec 2022 20:38:41 +0000 (12:38 -0800)]
[RISCV] Add missing signext attribute to test. NFC
The other operands in this function had it and every other test
in the file has it. So I assume this was a mistake.
Gulfem Savrun Yeniceri [Thu, 13 Oct 2022 00:50:10 +0000 (00:50 +0000)]
[profile] Add binary ids into indexed profiles
This patch adds support for including binary ids in an indexed profile.
It adds a new field into the header that points to the offset of the
binary id section. The binary id section consists of a size of the
section, and a list of binary ids (if they are present) that consist
of two parts: length and data.
This patch guarantees that indexed profile is backwards compatible
after adding binary ids.
Differential Revision: https://reviews.llvm.org/
D135929
Matt Arsenault [Sun, 11 Dec 2022 20:23:26 +0000 (15:23 -0500)]
InstCombine: Add baseline tests for folds of is.fpclass with fneg/fabs
Vasileios Porpodas [Wed, 14 Dec 2022 19:50:06 +0000 (11:50 -0800)]
[NFC] Fix warnings in EXPENSIVE_CHECKS build
Matt Arsenault [Fri, 9 Dec 2022 17:12:39 +0000 (12:12 -0500)]
llvm-reduce: Fix invalid reductions with llvm.used
Fixes issue 59413.
Craig Topper [Wed, 14 Dec 2022 19:42:59 +0000 (11:42 -0800)]
[RISCV] Add IsSignExtendingOpW to the Zknh SHA256 instructions.
On RV64 these instructions produce a 32-bit value and sign extend
to 64-bits.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/
D140036
Simon Pilgrim [Wed, 14 Dec 2022 19:47:52 +0000 (19:47 +0000)]
[GVN] GVNPass::ValueTable::lookupOrAdd - merge isa<> and cast<> into single dyn_cast<>. NFCI.
Avoid calling separate isa<> and cast<> if we can - dyn_cast<> can more efficiently check for a safe cast and give the casted pointer.
Dani Ferreira Franco Moura [Wed, 14 Dec 2022 19:27:03 +0000 (20:27 +0100)]
[clang][dataflow] Remove old diagnoser API
This is a clean up following the revision
D139868 (https://reviews.llvm.org/
D139868).
Reviewed By: gribozavr2, ymandel
Differential Revision: https://reviews.llvm.org/
D140037
Simon Pilgrim [Wed, 14 Dec 2022 19:42:37 +0000 (19:42 +0000)]
[GVN] hasUsersIn - merge isa<> and cast<> into single dyn_cast<> and convert for-range loop to any_of() test. NFCI.
Avoid running isa<> and cast<> if we can - dyn_cast<> can more efficiently check for a safe cast and give the casted pointer.
Wiktor Garbacz [Wed, 14 Dec 2022 17:56:13 +0000 (09:56 -0800)]
TSAN: (Re)Mark shadow memory nondumpable after a reset
Shadow memory was not marked as non-dumpable after a reset resulting in process taking a very long time to generate a coredump.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/
D139425
Vasileios Porpodas [Wed, 14 Dec 2022 19:13:12 +0000 (11:13 -0800)]
Fixes EXPENSIVE_CHECKS build failure caused by
7b684119abc7d94bad47ec0b97b35598fac412d3
Matt Arsenault [Wed, 14 Dec 2022 19:09:09 +0000 (14:09 -0500)]
Support: Try to fix msan error in sys::Wait
Quentin Colombet [Thu, 8 Dec 2022 11:45:19 +0000 (11:45 +0000)]
[mlir][SparseTensor] Add a few tests for sparse vectorization
These tests covers mulf, ori, and subi.
NFC
Differential Revision: https://reviews.llvm.org/
D139625
Philip Reames [Wed, 14 Dec 2022 15:27:53 +0000 (07:27 -0800)]
[RISCV] Avoid generate large LMUL vmv.s.x or fvmv.s.f
This is a follow up to patch discussion on
D139656. As noted there, M2/M4/M8 versions of these instructions don't actually exist, and using them results in overly constrained register allocation.
In that review, we'd talked about moving towards a variant of the instructions which ignored LMUL. I decided to see what happened if we just stopped generating the high LMUL variants, and the results are surprisingly neutral. I only see one minor thing which looks like a real regression among all the churn. I think this is worth doing now to loosen register allocation constraints, and avoid digging our hole around these instructions deeper while thinking about the right model change.
Differential Revision: https://reviews.llvm.org/
D140027
Vasileios Porpodas [Tue, 13 Dec 2022 21:22:04 +0000 (13:22 -0800)]
[IR] Adds Function::splice() member functions
This is part of a series of patches that aim at making Function::getBasicBlockList() private.
Differential Revision: https://reviews.llvm.org/
D139982
Fangrui Song [Wed, 14 Dec 2022 18:44:30 +0000 (18:44 +0000)]
[FileCheck] llvm::Optional => std::optional
Don't touch FileCheck.cpp:698 StringSwitch<Optional<binop_eval_t>>(FuncName).
MSVC and older GCC may report errors:
error C2664: 'llvm::StringSwitch<std::optional<llvm::binop_eval_t>,T> &llvm::StringSwitch<T,T>::Case(llvm::StringLiteral,T)': cannot convert argument 2 from 'overloaded-function' to 'T'
with
[
T=std::optional<llvm::binop_eval_t>
]
llvm/lib/FileCheck/FileCheck.cpp:699:44: error: no matching function for call to ‘llvm::StringSwitch<std::optional<llvm::Expected<llvm::ExpressionValue> (*)(const llvm::ExpressionValue&, const llvm::ExpressionValue&)> >::Case(const char [4], <unresolved overloaded function type>)’
.Case("add", operator+)
^
Sam McCall [Wed, 14 Dec 2022 16:26:14 +0000 (17:26 +0100)]
[CodeComplete] Provide designated-init completions in (const) reference context
Differential Revision: https://reviews.llvm.org/
D140029
Craig Topper [Wed, 14 Dec 2022 18:30:59 +0000 (10:30 -0800)]
[RISCV] Add a bit to TSFlags to mark SignExtendingOpW instructions for SExtWRemoval.
Instead of switching on the opcode in SExtWRemoval, we can use a
bit in TSFlags. This reduces the amount of code that needs to be
generated to implement the switch. The opcodes are scattered throughout
the opcode enum, so the switch isn't very densely packed.
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/
D139965
Kazu Hirata [Wed, 14 Dec 2022 18:34:34 +0000 (10:34 -0800)]
[ADT] Remove Optional<T>::create
The last use of Optional<T>::create was removed on December 10, 2022
in commit
1cb7fba3e57d6c31f05c7a2bda1634da49dd1d18.
Differential Revision: https://reviews.llvm.org/
D139775
Dominic Chen [Sat, 10 Dec 2022 01:15:47 +0000 (17:15 -0800)]
[scudo] Reland: Fix and enable more warnings for standalone build
Differential Revision: https://reviews.llvm.org/
D122761
Owen Pan [Wed, 14 Dec 2022 07:37:58 +0000 (23:37 -0800)]
[clang-format][NFC] Don't run any passes if Environment::make fails
Differential Revision: https://reviews.llvm.org/
D139999
Krzysztof Parzyszek [Wed, 14 Dec 2022 17:32:34 +0000 (09:32 -0800)]
[Hexagon] Handle rounding beyond low 32 bits
Vasileios Porpodas [Mon, 28 Nov 2022 22:59:35 +0000 (14:59 -0800)]
[NFC] Cleanup: BasicBlock::getInstList() and BasicBlock::getSublistAccess() are now private
We now have an adequate set of API functions, including BasicBlock::splice(),
BasicBlock::erase(), Instruction::insertAt() etc. that we shouldn't need access
to the underlying instruction list.
Differential Revision: https://reviews.llvm.org/
D139905
Slava Zakharin [Wed, 14 Dec 2022 05:45:07 +0000 (21:45 -0800)]
[mlir][math] Added math::FPowI conversion to LLVM dialect.
The operations are converted into LLVM::PowIOp.
Reviewed By: Mogball
Differential Revision: https://reviews.llvm.org/
D129812
Johannes Doerfert [Wed, 14 Dec 2022 18:10:01 +0000 (10:10 -0800)]
[Attributor][FIX] Allow negative offsets for ranges
In https://reviews.llvm.org/
D136745 we introduced the "pre-condition"
that offsets should not be -1 or -2. This can easily break. The new
special values are INT32_MAX and INT32_MIN, which we might want to
replace with std::optional or flags instead.
Matt Arsenault [Thu, 8 Dec 2022 15:53:17 +0000 (10:53 -0500)]
Attributes: Add function getter to parse integer string attributes
The most common case for string attributes parses them as integers. We
don't have a convenient way to do this, and as a result we have
inconsistent missing attribute and invalid attribute handling
scattered around. We also have inconsistent radix usage to
getAsInteger; some places use the default 0 and others use base 10.
Update a few of the uses, but there are quite a lot of these.
Douglas Yung [Wed, 14 Dec 2022 18:05:01 +0000 (10:05 -0800)]
Revert "[FileCheck] llvm::Optional => std::optional"
This reverts commit
13fd37c931c26ec07613dcad67b5ab2a593cd416.
This change is causing bot failures on some Windows and older GCC bots:
- https://lab.llvm.org/buildbot/#/builders/123/builds/14678
- https://lab.llvm.org/buildbot/#/builders/216/builds/14436
- https://lab.llvm.org/staging/#/builders/235/builds/993
Florian Hahn [Wed, 14 Dec 2022 17:55:30 +0000 (17:55 +0000)]
[VPlan] Sink non-uniform recieps for scalar plans.
In scalar plans, replicate recipes will only generate a single value per
UF, independent of whether they are uniform or not. So don't consider
uniformity for plans with scalar VFs only.
This allows us to handle a few additional cases in VPlan sinking instead
of non-VPlan sinkScalarOperands.
Depends on
D133762.
Reviewed By: Ayal
Differential Revision: https://reviews.llvm.org/
D134218