Sylvestre Ledru [Sat, 5 Nov 2022 21:35:54 +0000 (22:35 +0100)]
Add support of the next Ubuntu (Ubuntu 23.04 - Lunar Lobster)
LLVM GN Syncbot [Sat, 5 Nov 2022 20:26:22 +0000 (20:26 +0000)]
[gn build] Port
59ef4b3686e4
Nikolas Klauser [Thu, 22 Sep 2022 19:53:13 +0000 (21:53 +0200)]
[libc++] Split __allocator_destructor out of shared_ptr.h
Reviewed By: ldionne, huixie90, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D134479
Nikolas Klauser [Wed, 2 Nov 2022 19:27:42 +0000 (20:27 +0100)]
[libc++] Granularize <concept> includes
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D137283
Simon Pilgrim [Sat, 5 Nov 2022 19:06:55 +0000 (19:06 +0000)]
[X86] Replace unnecessary int2float and float2double overrides with better base class defs
Broadwell/Haswell were completely overriding the class defs - we can remove those overrides entirely by just choosing better class defs (plus a fix for missing mmx folded load).
Michał Górny [Mon, 31 Oct 2022 14:28:32 +0000 (15:28 +0100)]
[flang] Add one missing "llvm_" prefix to gtest_main
The `target_link_libraries()` call operates on `gtest_main` rather than
`llvm_gtest_main`. I think it was missed while prefixing all the tools
in
38151a08c21e0cdacd52af03e4bdff258f0bac6f.
Differential Revision: https://reviews.llvm.org/D137080
Simon Pilgrim [Sat, 5 Nov 2022 17:28:23 +0000 (17:28 +0000)]
[MCA][X86] Add more avx512 cvt instructions test coverage
Amaury Séchet [Sat, 5 Nov 2022 16:44:42 +0000 (16:44 +0000)]
[NFC] Refactor DAGCombiner::foldSelectOfConstants to reduce nesting 2.0
Florian Hahn [Sat, 5 Nov 2022 16:55:09 +0000 (16:55 +0000)]
[SimpleLoopUnswitch] Forget block & loop dispos during trivial unswitch.
Unswitching adjusts the CFG in ways that may invalidate cached loop
dispositions. Clear all cached block and loop dispositions during
trivial unswitching. The same is already done for non-trivial
unswitching.
Fixes #58751.
Amaury Séchet [Sat, 5 Nov 2022 16:11:13 +0000 (16:11 +0000)]
[NFC] Refactor DAGCombiner::foldSelectOfConstants to reduce nesting
Simon Pilgrim [Sat, 5 Nov 2022 15:45:45 +0000 (15:45 +0000)]
[X86] Cleanup WriteCvtSD2SS/WriteCvtPD2PS overrides
The WriteCvtSD2SS/WriteCvtPD2PS* classes were mostly unused as the models were needlessly overriding all instructions - in some cases the folded pattern overrides were entirely missing (but I've confirmed they just have an additional Port23 use)
There were a couple of typos (confirmed with Agner/uops.info) - Skylake/Icelake uses Port5+Port01 for XMM/YMM, Skylake uses Port5+Port05 for ZMM but Icelake uses Port5+Port0
Nikolas Klauser [Tue, 1 Nov 2022 19:06:11 +0000 (20:06 +0100)]
[libc++] Add [[nodiscard]] extensions to ranges algorithms
This mirrors what we have done in the classic algorithms
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D137186
Simon Pilgrim [Sat, 5 Nov 2022 14:35:41 +0000 (14:35 +0000)]
[X86] Fix cvtss2si64/cvttss2si64 typo in SkylakeClient
SS2SI64 conversions use Port0/Port01/Port5 (with/without truncation), but SS2SI32 only uses Port0/Port01 like SD2SI32/SD2SI64
Valentin Clement [Sat, 5 Nov 2022 14:10:40 +0000 (15:10 +0100)]
[flang] Fix controlSuccessor chain for select type construct
Represent the select type statement + type guard statement
the same way the select case statement and case statement are represented.
controlSuccessor was not correctly attributed to the next type guard stmt.
Reviewed By: PeteSteinfeld, vdonaldson
Differential Revision: https://reviews.llvm.org/D137460
Simon Pilgrim [Sat, 5 Nov 2022 13:57:07 +0000 (13:57 +0000)]
[X86] Fix override for CVTPD2PS/CVTPD2DQ/CVTTPD2DQ AVX variants
These were lost when they were converted from instregex to instrs
Simon Pilgrim [Sat, 5 Nov 2022 12:41:45 +0000 (12:41 +0000)]
[X86] Add SchedWriteVecTruncate scheduler per-width wrapper
Replaces hard coded uses of WriteVPMOV256 for all the vector truncations instructions
We still need to work out how to fix folded stores (see Issue #36236)
Simon Pilgrim [Sat, 5 Nov 2022 11:31:53 +0000 (11:31 +0000)]
[X86] Add missing ReadAfterFold attributes from CVTSD2SSrm/CVTSS2SDrm to match the AVX + _Int equivalents
This was never added in D52886, probably because the defs were already missing the old ReadAfterLd attribute, but they do exhibit the same behaviour of reading the dst reg after the load.
Simon Pilgrim [Sat, 5 Nov 2022 11:19:36 +0000 (11:19 +0000)]
[X86] Remove SandyBridge CVTSS2SIrm/CVTSD2SIrm overrides
Just use the default WriteCvtSS2I/WriteCvtSD2I folded variants (already used by the VCVTSS2SI/VCVTSD2SI AVX variants).
Confirmed with agner and uops.info - there should be no difference between the SSE/AVX1 variants in folded load latency
Simon Pilgrim [Sat, 5 Nov 2022 11:27:46 +0000 (11:27 +0000)]
[X86] Replace unnecessary int2double overrides with a better WriteCvtI2PD def
Broadwell, Haswell and SkylakeClient were completely overriding the WriteCvtI2PD defs - we can remove those overrides entirely by replacing the unused WriteCvtI2PD values
There's plenty more of these in the scheduler models - I'm looking at improving warnings in llvm-tblgen to catch them all
Ivan Butygin [Fri, 4 Nov 2022 22:26:02 +0000 (23:26 +0100)]
[mlir] Add `populateFunctionOpInterfaceTypeConversionPattern` version which operates on any `FunctionOpInterface`
Exisitng version is always limited to some specific op.
Differential Revision: https://reviews.llvm.org/D137469
Siva Chandra Reddy [Sat, 5 Nov 2022 07:58:16 +0000 (00:58 -0700)]
[libc][docs] Add a build and test document.
Siva Chandra Reddy [Sat, 5 Nov 2022 07:21:09 +0000 (00:21 -0700)]
[libc][docs] Fix typos.
Siva Chandra Reddy [Fri, 4 Nov 2022 19:53:24 +0000 (12:53 -0700)]
[libc][docs] Move links to internal developer guides out of the main side bar.
The links are all now from a "Developer Guides" page which is linked from the
main side bar.
Uday Bondhugula [Sat, 5 Nov 2022 05:38:21 +0000 (11:08 +0530)]
MLIR. NFC. Remove trailing whitespaces in MemRefOps.td
Remove trailing whitespaces in MemRefOps.td. NFC.
Med Ismail Bennani [Sat, 5 Nov 2022 04:58:51 +0000 (21:58 -0700)]
[lldb/crashlog] Standardize file path key in the ScriptedProcess Dictionary
This patch replaces the backing file path key to "file_path" to keep it
consistent.
rdar://
101652618
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Med Ismail Bennani [Sat, 5 Nov 2022 04:57:31 +0000 (21:57 -0700)]
[lldb/test] Fix StructuredDataTest::GetDescriptionEmpty warning (NFC)
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Med Ismail Bennani [Fri, 4 Nov 2022 21:49:52 +0000 (14:49 -0700)]
[lldb/crashlog] Fix frame parser regex for when there is no source info
It can happen that the originator of a crash report doesn't have access
to certain images. When that's the case, ReportCrash won't show the
source info in the crash report stack frames, but only the stack address
and image name.
This patch fixes a bug in the crashlog stackframe parser regular
expression to optionally match the source info group.
rdar://
101934135
Differential Revision: https://reviews.llvm.org/D137466
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
chenglin.bi [Sat, 5 Nov 2022 04:58:14 +0000 (12:58 +0800)]
[InstCombine] fold `sub + and` pattern with specific const value
`C1 - ((C3 - X) & C2) --> (X & C2) + (C1 - (C2 & C3))`
when:
(C3 - ((C2 & C3) - 1)) is pow2 &&
((C2 + C3) & ((C2 & C3) - 1)) == ((C2 & C3) - 1) &&
C2 is negative pow2 || (C3 - X) is nuw
https://alive2.llvm.org/ce/z/HXQJV-
Fix: #58523
Reviewed By: spatel
Differential Revision: https://reviews.llvm.org/D136582
Tue Ly [Fri, 4 Nov 2022 18:22:35 +0000 (14:22 -0400)]
[libc] Add add_with_carry to builtin wrapper.
Add add_with_carry to builtin wrapper to be used by UInt class.
Reviewed By: orex
Differential Revision: https://reviews.llvm.org/D137453
River Riddle [Sat, 5 Nov 2022 01:53:50 +0000 (18:53 -0700)]
[mlir] Attempt to fix windows build after D137374
River Riddle [Fri, 4 Nov 2022 02:12:53 +0000 (19:12 -0700)]
[mlir:LLVM] Fix translation of DISubRangeAttr to LLVM
We were missing DISubRangeAttr in the type switch. This
also updates a few of the range parameters to be optional.
River Riddle [Thu, 3 Nov 2022 23:06:59 +0000 (16:06 -0700)]
[mlir] Infer SubElementInterface implementations using the storage KeyTy
The KeyTy of attribute/type storage classes provide enough information for
automatically implementing the necessary sub element interface methods. This
removes the need for derived classes to do it themselves, which is both much
nicer and easier to handle certain invariants (e.g. null handling). In cases where
explicitly handling for parameter types is necessary, they can provide an implementation
of `AttrTypeSubElementHandler` to opt-in to support.
This tickles a few things alias wise, which annoyingly messes with tests that hard
code specific affine map numbers.
Differential Revision: https://reviews.llvm.org/D137374
Quentin Colombet [Thu, 3 Nov 2022 19:14:52 +0000 (19:14 +0000)]
[mlir][MemRef] Fix the lowering of extract_strided_metadata
The first result of the extract_strided_metadata operation is a MemRef,
not a naked pointer.
This patch fixes the lowering of this operation in MemRefToLLVM so that
we properly materialize the full MemRef structure and not just the base,
naked, pointer.
Differential Revision: https://reviews.llvm.org/D137364
Craig Topper [Sat, 5 Nov 2022 00:49:08 +0000 (17:49 -0700)]
[RISCV] Add isel pattern for (and X, 0xffffffff << C) with Zba.
We can use SRLI by C to clear LSBs followed by a SLLI_UW.
Craig Topper [Sat, 5 Nov 2022 00:26:16 +0000 (17:26 -0700)]
[RISCV] Remove duplicate SDNodeXForm. NFC
Jennifer Yu [Sat, 5 Nov 2022 00:15:14 +0000 (17:15 -0700)]
Back out test that failed.
But I can not reproduce the problem on my local machine. My local machine run:
222 0x5a6780
222 0x7fffbef9400e
222 0x5a677e 0x5a6780 0x7fffbef936c8
222 0x376f8e 0x376f90 0x7fffbef94008
222 0x281f20
222 0x7fffbef9400e
PASSED
Matthew Voss [Sat, 5 Nov 2022 00:08:54 +0000 (17:08 -0700)]
[llvm-profdata] Check for all duplicate entries in MemOpSize table
Previously, we only checked for duplicate zero entries when merging a
MemOPSize table (see D92074), but a user recently provided a reproducer
demonstrating that other entries can also be duplicated. As demonstrated
by the test in this patch, PGOMemOPSizeOpt can potentially generate
invalid IR for non-zero, non-consecutive duplicate entries. This seems
to be a rare case, since the duplicate entry is often below the
threshold, but possible. This patch extends the existing warning to
check for any duplicate values in the table, both in the optimization
and in llvm-profdata.
Differential Revision: https://reviews.llvm.org/D136211
Craig Topper [Fri, 4 Nov 2022 19:59:55 +0000 (12:59 -0700)]
[RISCV] Rename isAllUsesReadW to hasAllWUsers in RISCVSExtWRemoval. NFC
Peiming Liu [Fri, 4 Nov 2022 19:35:29 +0000 (19:35 +0000)]
[mlir][sparse] fix sparse tensor rewriting patterns that do not propagate sparse tensor SSA properly.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D137468
David Blaikie [Fri, 4 Nov 2022 23:35:05 +0000 (23:35 +0000)]
Peiming Liu [Fri, 4 Nov 2022 17:52:21 +0000 (17:52 +0000)]
[mlir][sparse] extend foreach operation to accept reduction arguments.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D137463
Matt Arsenault [Thu, 3 Nov 2022 21:05:37 +0000 (14:05 -0700)]
R600: Remove broken atomicrmw patterns
inc/dec are not add/sub of 1.
Mircea Trofin [Fri, 4 Nov 2022 23:05:10 +0000 (16:05 -0700)]
[MLGO][NFC] Use std::map instead of DenseMap to avoid use after free
In `MLInlineAdvisor::getAdviceImpl`, we call `getCachedFPI` twice, once
for the caller, once for the callee, so the second may invalidate the
reference obtained by the first because the underlying implementation of
the cache is a `DenseMap`. `std::map` doesn't have that problem.
Ryan Prichard [Fri, 4 Nov 2022 22:51:44 +0000 (15:51 -0700)]
[libc++abi] Use std::nullptr_t instead of declaring it manually
Sometimes libc++'s stddef.h wrapper gets included, which defines
::nullptr_t. This test is compiled with -Wshadow -Werror, so shadowing
::nullptr_t with a nullptr_t in main is an error. Include cstddef,
which is guaranteed to define std::nullptr_t in C++11 and forward.
Reviewed By: ldionne, #libc_abi
Differential Revision: https://reviews.llvm.org/D137127
Matt Arsenault [Mon, 17 Oct 2022 04:35:07 +0000 (21:35 -0700)]
AMDGPU: Fold undef rcp to qnan
This matches the behavior in instcombine, and for fdiv.
Matt Arsenault [Fri, 4 Nov 2022 22:49:15 +0000 (15:49 -0700)]
AMDGPU: Fix test failure
Peiming Liu [Tue, 18 Oct 2022 16:41:03 +0000 (16:41 +0000)]
[mlir][sparse] support Parallel for/reduction.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D135927
George Hu [Fri, 4 Nov 2022 22:37:18 +0000 (15:37 -0700)]
Revert "[lldb-vscode] Send Statistics Dump in terminated event"
This reverts commit
e3ccbae309273900a42e30b606c15c873d57f1ea.
There is a bug which is failing the test running on mac.
Jennifer Yu [Wed, 2 Nov 2022 22:43:26 +0000 (15:43 -0700)]
Remove redundant loads.
It is caused by regenerate captured var value when processing the
has_device_addr, the captured var value has been generated in
GenerateOpenMPCapturedVars and passed as Arg in generateInfoForCapture.
The fix just use Arg instead regenerated just same as is_device_ptr
Matt Arsenault [Tue, 25 Oct 2022 05:41:41 +0000 (22:41 -0700)]
AMDGPU: Fix assert when trying to overextend liverange
This was trying to add segments beyond the new and use,
so skip additional segments.
This would hit (S < E && "Cannot create empty or backwards segment").
Wanyi Ye [Fri, 4 Nov 2022 19:01:00 +0000 (12:01 -0700)]
Fix test TestVSCode_terminatedEvent.py
This test is broken due to the flaky encoding of top-level JSON key 'memory'
When I run locally (linux) the test passed. However, it failed the build bot: https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/48111/
I will find a way to repro before I can actually fix this issue correctly.
https://reviews.llvm.org/D137455
Jakub Kuderski [Fri, 4 Nov 2022 21:37:18 +0000 (17:37 -0400)]
[mlir][spirv] Fold noop `BitcastsOp`s
This allows for bitcast conversion to roundtrip.
Fixes: https://github.com/llvm/llvm-project/issues/58801
Reviewed By: antiagainst, Hardcode84, mravishankar
Differential Revision: https://reviews.llvm.org/D137459
Xiang Li [Fri, 4 Nov 2022 19:37:07 +0000 (12:37 -0700)]
[CMake] Only set LLVM_DEFAULT_TARGET_TRIPLE to LLVM_HOST_TRIPLE when native target is enabled
This is for case when native target like X86 is not in LLVM_TARGETS_TO_BUILD.
Right now LLVM_DEFAULT_TARGET_TRIPLE is set to LLVM_HOST_TRIPLE even when native target is not enabled,
As a result, many lit tests will fail because default_triple is set for lit test but not enabled when build LLVM.
Reviewed By: smeenai
Differential Revision: https://reviews.llvm.org/D134972
Corentin Jabot [Fri, 4 Nov 2022 21:09:58 +0000 (22:09 +0100)]
Hanhan Wang [Fri, 4 Nov 2022 20:58:59 +0000 (13:58 -0700)]
[mlir][tiling] Relax tiling to accept generating multiple operations.
Some operations need to generate multiple operations when implementing
the tiling interface. Here is a sound example in IREE, see
https://github.com/iree-org/iree/pull/10905 for more details.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D137300
Renaud-K [Wed, 2 Nov 2022 22:39:58 +0000 (15:39 -0700)]
Alias Analysis infra in Flang
Differential revision: https://reviews.llvm.org/D136889
Rafael Auler [Sat, 29 Oct 2022 01:34:48 +0000 (18:34 -0700)]
[BOLT] Always move JTs in jump-table=move
We should always move jump tables when requested. Previously,
we were not moving jump tables of non-simple functions in relocation
mode. That caused a bug detailed in the attached test case: in PIC
jump tables, we force jump tables to be moved, but if they are not
moved because the function is not simple, we could incorrectly update
original entries in .rodata, corrupting it under special circumstances
(see testcase).
Reviewed By: #bolt, maksfb
Differential Revision: https://reviews.llvm.org/D137357
Rafael Auler [Fri, 4 Nov 2022 20:08:31 +0000 (13:08 -0700)]
[BOLT][Hugify] Fix apple builds
Fix placement of ifdefs in hugify.cpp after D129107 landed.
Mike Rice [Thu, 3 Nov 2022 15:50:08 +0000 (08:50 -0700)]
Some uses of the preprocessor can result in multiple target regions on the
same line. Cases such as those in the associated lit tests, can now be
supported.
This adds a 'Count' field to TargetRegionEntryInfo to differentiate
regions with the same source position.
The OffloadEntriesInfoManager routines are updated to maintain a count of
regions seen at a location. The registration of regions proceeds that same as
before, but now the next available count is always determined and used in the
offload entry.
Fixes: https://github.com/llvm/llvm-project/issues/52707
Differential Revision: https://reviews.llvm.org/D134816
Hanhan Wang [Thu, 3 Nov 2022 01:09:46 +0000 (18:09 -0700)]
[mlir] Move the assertion to a valid place.
The defining Op may live in an unlinked block so its parent Op may be
null. Only assert it when the parent Op is not null.
Reviewed By: mravishankar
Differential Revision: https://reviews.llvm.org/D137306
Jakub Kuderski [Fri, 4 Nov 2022 19:10:58 +0000 (15:10 -0400)]
[mlir][arith][spirv] Remove duplicate test cases
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D137166
Jakub Kuderski [Fri, 4 Nov 2022 19:10:18 +0000 (15:10 -0400)]
[mlir][spirv] Do not truncate i/f64 -> i/f32 in SPIRVConversion
This truncation can be unexpected and break program behavior.
Dedicated emulation passes should be used instead.
Also rename pass options to "emulate-lt-32-bit-scalar-types".
Fixes: https://github.com/llvm/llvm-project/issues/57917
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/D137115
Florian Hahn [Fri, 4 Nov 2022 18:42:06 +0000 (18:42 +0000)]
[IndVars] Forget SCEV for replaced PHI.
Additional SCEV verification highlighted a case where the cached loop
dispositions where incorrect after simplifying a phi node in IndVars.
Fix it by invalidating the phi before replacing it.
Fixes #58750
Shilei Tian [Fri, 4 Nov 2022 18:10:54 +0000 (14:10 -0400)]
[LLVM][AMDGPU] Specialize 32-bit atomic fadd instruction for generic address space
The 32-bit floating-point atomic add instructions on AMDGPUs does not support a
"flat" or "generic" address space. So, if the address space cannot be determined
statically, the AMDGPU backend will fall back to a CAS loop (which does support
"flat" addressing). Instead, this patch emits runtime address-space checks to
allow native FP atomic add instructions for global and LDS memory (and non-atomic
FP add instructions for private/scratch memory).
In order to do that, this patch introduces a new interface function
`emitExpandAtomicRMW`. It is expected to be called when a common atomic expand
doesn't work for a specific target, such as the case we discussed here.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D129690
Benjamin Kramer [Fri, 4 Nov 2022 18:06:44 +0000 (19:06 +0100)]
[bazel] Port
589764a38264
Benjamin Kramer [Fri, 4 Nov 2022 17:58:43 +0000 (18:58 +0100)]
Fix format specifier warning in EmulateInstructionRISCV more
Yes, the portable macro is still the only way to do this.
Slava Zakharin [Wed, 2 Nov 2022 01:27:04 +0000 (18:27 -0700)]
[mlir][math] Simplify pow(x, 0.75) into sqrt(sqrt(x)) * sqrt(x).
Trivial simplification for CPU2017/503.bwaves resulting in 3.89%
speed-up on icelake.
Differential Revision: https://reviews.llvm.org/D137351
Jonas Devlieghere [Fri, 4 Nov 2022 17:46:21 +0000 (10:46 -0700)]
[lldb] Fix format specifier warning in EmulateInstructionRISCV
Fixes warning: format specifies type 'unsigned long' but the argument
has type 'lldb::addr_t' (aka 'unsigned long long') [-Wformat]
Slava Zakharin [Fri, 4 Nov 2022 16:52:47 +0000 (09:52 -0700)]
[mlir][math] Initial support for fastmath flag attributes for Math dialect.
Added arith::FastMathAttr and ArithFastMathInterface support for Math dialect
floating point operations.
This change-set creates ArithCommon conversion utils that currently
provide classes and methods to aid with arith::FastMathAttr conversion
into LLVM::FastmathFlags. These utils are used in ArithToLLVM and
MathToLLVM convertors, but may eventually be used by other converters
that need to convert fast math attributes.
Since Math dialect operations use arith::FastMathAttr, MathOps.td now
has to include enum and attributes definitions from Arith dialect.
To minimize the amount of TD code included from Arith dialect,
I moved FastMathAttr definition into ArithBase.td.
Differential Revision: https://reviews.llvm.org/D136312
Tom Eccles [Wed, 19 Oct 2022 10:51:31 +0000 (10:51 +0000)]
[flang] add -f[no-]reciprocal-math
Only add the option processing and store the result. No attributes are
added to FIR yet.
Differential Revision: https://reviews.llvm.org/D137330
Tom Eccles [Wed, 19 Oct 2022 10:33:12 +0000 (10:33 +0000)]
[flang] Add -f[no-]associative-math and -mreassociate
Only add the option processing and store the result. No attributes are
added to FIR yet.
Clang only forwards -mreassociate
if (AssociativeMath && !SignedZeros && !TrappingMath)
Flang doesn't have -f[no-]trapping-math, so this part of the condition
has been omitted. !TrappingMath is the default.
Differential Revision: https://reviews.llvm.org/D137329
Tom Eccles [Tue, 18 Oct 2022 17:59:03 +0000 (17:59 +0000)]
[flang] Add -f[no-]signed-zeros
Only add the option processing and store the result. No attributes are
added to FIR yet.
Differential Revision: https://reviews.llvm.org/D137328
Tom Eccles [Tue, 18 Oct 2022 16:14:52 +0000 (16:14 +0000)]
[flang] Add -f[no-]approx-func
Only add the option processing and store the result. No attributes are
added to FIR yet.
Differential Revision: https://reviews.llvm.org/D137326
Tom Eccles [Mon, 17 Oct 2022 17:45:15 +0000 (17:45 +0000)]
[flang] Add -f[no-]honor-nans and -menable-no-nans
Only add the option processing and store the result. No attributes are
added to FIR yet.
Differential Revision: https://reviews.llvm.org/D137325
Zequan Wu [Wed, 2 Nov 2022 21:25:48 +0000 (14:25 -0700)]
[Test] Fix CHECK typo.
Differential Revision: https://reviews.llvm.org/D137287
Philip Reames [Fri, 4 Nov 2022 16:59:40 +0000 (09:59 -0700)]
[RISCV] Define custom-N opcodes
Differential Revision: https://reviews.llvm.org/D137355
Nicolas Vasilache [Thu, 3 Nov 2022 22:09:48 +0000 (15:09 -0700)]
[mlir][Transform] NFC - Add custom builders for some useful transforms.
Differential Revision: https://reviews.llvm.org/D137443
Shilei Tian [Fri, 4 Nov 2022 16:40:45 +0000 (12:40 -0400)]
[RFC][OpenMP][Doc] No backward compatible for libomptarget and plugins
Now we state that backward compatibility is not guaranteed in the document.
Reviewed By: JonChesterfield, dreachem
Differential Revision: https://reviews.llvm.org/D133277
Thomas Raoux [Fri, 4 Nov 2022 04:23:32 +0000 (04:23 +0000)]
[mlir][linalg] Fix neutral element value for minf/maxf
The neutral element got minf/maxf should be respectively +inf and -inf.
Bug reported by @Hardcode84.
Differential Revision: https://reviews.llvm.org/D137385
Hubert Tong [Fri, 4 Nov 2022 16:26:53 +0000 (12:26 -0400)]
[Driver][AIX] Change UNSUPPORTED to XFAIL system-aix
Update https://reviews.llvm.org/rGc14df228ff3c to check the host versus
the target thereby allowing XFAIL to be used in case the issue is
resolved in the future.
rkayaith [Thu, 20 Oct 2022 04:27:09 +0000 (00:27 -0400)]
[mlir][python] Allow adding to existing pass manager
This adds a `PassManager.add` method which adds pipeline elements to the
pass manager. This allows for progressively building up a pipeline from
python without string manipulation.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D137344
Nikita Popov [Fri, 4 Nov 2022 15:57:42 +0000 (16:57 +0100)]
[LVI] Improve debug message (NFC)
Nikolas Klauser [Sat, 29 Oct 2022 19:04:35 +0000 (21:04 +0200)]
[libc++] inline more functions into basic_string
This removes a lot of boilerplate.
Reviewed By: ldionne, #libc, EricWF
Spies: EricWF, libcxx-commits
Differential Revision: https://reviews.llvm.org/D137025
Benjamin Maxwell [Fri, 4 Nov 2022 11:52:38 +0000 (11:52 +0000)]
Precommit test for redundant mvn instructions
Corentin Jabot [Fri, 4 Nov 2022 14:45:06 +0000 (15:45 +0100)]
[clang] Remove an incorrect assert
Compound statements can appear in default arguments
but should not be visited in ImmediateCallVisitor as they are
not subexpressions
Karthik Senthil [Fri, 4 Nov 2022 14:33:45 +0000 (10:33 -0400)]
[LV][IVDescriptors] Fix recurrence identity element for FMin and FMax reductions
For a min and max reduction idioms, the identity (i.e. neutral) element
should be datatype's highest and lowest possible values respectively.
Current implementation in IVDescriptors incorrectly returns -Inf for FMin
reduction and +Inf for FMax reduction. This patch fixes this bug which
was causing incorrect reduction computation results in loops vectorized
by LV.
Differential Revision: https://reviews.llvm.org/D137220
Sanjay Patel [Wed, 2 Nov 2022 21:10:20 +0000 (17:10 -0400)]
[VectorCombine] move load safety checks to helper function; NFC
These checks can be re-used with other potential transforms
such as a load of a subvector-insert.
Corentin Jabot [Fri, 4 Nov 2022 14:37:18 +0000 (15:37 +0100)]
[clang] Fix assert in SemaEXpr.cpp
David Truby [Tue, 1 Nov 2022 14:12:14 +0000 (14:12 +0000)]
[flang][RFC] Proposal for complex number lowering through MLIR
This design document proposes lowering FIR complex number operations
through the MLIR complex dialect.
Differential Revision: https://reviews.llvm.org/D134364
Peixin Qiao [Fri, 4 Nov 2022 14:19:38 +0000 (22:19 +0800)]
[flang][RFC] Change the interface for non-BIND(C) CPTR type with VALUE attribute
When the `type(c_ptr/c_funptr)` argument has value attribute in non-BIND(C)
procedure, it is passed by VALUE in gfortran. ifort does not do this. Be
consistent with gfortran.
Fix #58756.
Reviewed By: PeteSteinfeld, jeanPerier
Differential Revision: https://reviews.llvm.org/D137237
Peixin Qiao [Fri, 4 Nov 2022 14:15:58 +0000 (22:15 +0800)]
[flang] Fix function result rewrite
When the function result is `type(c_ptr/c_funptr)`, and the function has
or does not have BIND(C) attribute, the function result is not taken as
the first argument of the function call in other compilers such as
gfortran and ifort. Fix it to be consistent with gfortran/ifort by
changing the abstract result type check.
Fix #58739.
Reviewed By: PeteSteinfeld, jeanPerier
Differential Revision: https://reviews.llvm.org/D137236
Valentin Clement [Fri, 4 Nov 2022 13:59:37 +0000 (14:59 +0100)]
[flang] Update fir.select_type op to fit design document
Update the already existing fir.select_type operation to
reflect decisions made in the polymorphic entities design document.
The verifier is updated to check that the select is polymorphic.
The case attributes name are changed and some tests are added.
Reviewed By: jeanPerier
Differential Revision: https://reviews.llvm.org/D137403
Corentin Jabot [Sun, 23 Oct 2022 15:32:58 +0000 (17:32 +0200)]
Implement CWG2631
Implement https://cplusplus.github.io/CWG/issues/2631.html.
Immediate calls in default arguments and defaults members
are not evaluated.
Instead, we evaluate them when constructing a
`CXXDefaultArgExpr`/`BuildCXXDefaultInitExpr`.
The immediate calls are executed by doing a
transform on the initializing expression.
Note that lambdas are not considering subexpressions so
we do not need to transform them.
As a result of this patch, unused default member
initializers are not considered odr-used, and
errors about members binding to local variables
in an outer scope only surface at the point
where a constructor is defined.
Reviewed By: aaron.ballman, #clang-language-wg
Differential Revision: https://reviews.llvm.org/D136554
Juan Manuel MARTINEZ CAAMAÑO [Fri, 4 Nov 2022 13:28:26 +0000 (13:28 +0000)]
[StructurizeCFG][DebugInfo] Avoid use-after-free
Reviewed By: dstuttard
Differential Revision: https://reviews.llvm.org/D137408
Alex Gatea [Fri, 4 Nov 2022 13:28:17 +0000 (14:28 +0100)]
[GVN] Patch for invalid GVN replacement
If PRE is performed as part of the main GVN pass (to PRE GEP
operands before processing loads), and it is performed across a
backedge, we will end up adding the new instruction to the leader
table of a block that has not yet been processed. When it will be
processed, GVN will incorrectly assume that the value is already
available, even though it is only available at the end of the
block.
Avoid this by not performing PRE across backedges.
Fixes https://github.com/llvm/llvm-project/issues/58418.
Differential Revision: https://reviews.llvm.org/D136095
Alexey Moksyakov [Mon, 27 Jun 2022 12:37:53 +0000 (12:37 +0000)]
adds huge pages support of PIE/no-PIE binaries
This patch adds the huge pages support (-hugify) for PIE/no-PIE
binaries. Also returned functionality to support the kernels < 5.10
where there is a problem in a dynamic loader with the alignment of
pages addresses.
Differential Revision: https://reviews.llvm.org/D129107
Michał Górny [Fri, 4 Nov 2022 08:19:22 +0000 (09:19 +0100)]
[llvm-debuginfo-analyzer] Fix format string-type mismatch in LVScope
Fix mismatch between `%d`/`%x` format strings and `uint64_t` type.
This fixes incorrect printing of "Scope Sizes" on 32-bit platforms
where this leads to `llvm::print()` misreading vararg.
Fixes #58758
Differential Revision: https://reviews.llvm.org/D137400
Serge Pavlov [Fri, 4 Nov 2022 11:30:17 +0000 (18:30 +0700)]
[Driver] Do not run test on AIX
Differential Revision: https://reviews.llvm.org/D136090
Oleg Shyshkov [Fri, 4 Nov 2022 11:06:31 +0000 (12:06 +0100)]
[mlir][linalg] Add BroadcastOp to Linalg structured ops.
[[RFC] Primitive Ops: add BroadcastOp to Linalg](https://discourse.llvm.org/t/rfc-primitive-ops-add-broadcastop-to-linalg/66313?u=olegshyshkov)
Differential Revision: https://reviews.llvm.org/D137331
Christudasan Devadasan [Wed, 2 Nov 2022 13:38:02 +0000 (19:08 +0530)]
[AMDGPU] Skip stack-arg dbg objects while fixing the dead frame indices
Both SGPR->VGPR and VGPR->AGPR spilling code give a fixup to the
spill frame indices referred in debug instructions so that they
can be entirely removed. We should skip the stack argument debug
objects while looking inside the bitvector with FI as the index
that tracks the spill indices being processed. The stack args will
have negative indices and would crash while accessing the bitvector.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D137277