Joseph Huber [Wed, 2 Mar 2022 17:38:29 +0000 (12:38 -0500)]
[OpenMP] Handle sysroot option in offloading linker wrapper
Summary:
This patch correctly handles the `--sysroot=` option when passed to the
linker wrapper. This allows users to correctly find libraries that may
contain offloading code if using this option.
William S. Moses [Wed, 2 Mar 2022 17:40:21 +0000 (12:40 -0500)]
[MLIR] Use Datalayout defaults when importing LLVM
LLVM defines several default datalayouts for integer and floating point types that are not being considered when importing into MLIR. This patch remedies this.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D120832
Craig Topper [Wed, 2 Mar 2022 18:00:11 +0000 (10:00 -0800)]
Revert "[LegalizeTypes][VP] Add splitting and widening support for VP_FNEG."
This reverts commit
ac93f95861268c058d3f3bffd447a594a793c6b3.
Committed by accident.
Stephen Long [Wed, 2 Mar 2022 17:55:35 +0000 (09:55 -0800)]
[LoopPeel] Add EXPENSIVE_CHECKS ifdef guard around domtree verify call
The verify call was taking 50% of the compile time in our internal LLVM
fork when trying to unroll many loops.
Differential Revision: https://reviews.llvm.org/D113028
Craig Topper [Wed, 2 Mar 2022 17:47:24 +0000 (09:47 -0800)]
[SelectionDAG][RISCV] Emit a canonical sign bit test from ExpandIntRes_ABS.
Instead of emitting 0 > Hi, emit Hi < 0. If Hi needs to be expanded again
this will allow the special case for sign bit tests in ExpandIntOp_SETCC
to trigger.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D120761
Craig Topper [Wed, 2 Mar 2022 17:42:43 +0000 (09:42 -0800)]
[RISCV] Don't combine ROTR ((GREV x, 24), 16)->(GREV x, 8) on RV64.
This miscompile was introduced in D119527.
This was a special pattern for rotate+bswap on RV32. It doesn't
work for RV64 since the rotate needs to be half the bitwidth. The
equivalent pattern for RV64 is ROTR ((GREV x, 56), 32) so match
that instead.
This could be generalized further as noted in the new FIXME.
Reviewed By: Chenbing.Zheng
Differential Revision: https://reviews.llvm.org/D120686
Craig Topper [Wed, 2 Mar 2022 00:10:22 +0000 (16:10 -0800)]
[LegalizeTypes][VP] Add splitting and widening support for VP_FNEG.
Differential Revision: https://reviews.llvm.org/D120785
William S. Moses [Tue, 1 Mar 2022 22:02:14 +0000 (17:02 -0500)]
[MLIR][OpenMP] Place alloca scope within wsloop in scf.parallel to omp lowering
https://reviews.llvm.org/D120423 replaced the use of stacksave/restore with memref.alloca_scope, but kept the save/restore at the same location. This PR places the allocation scope within the wsloop, thus keeping the same allocation scope as the original scf.parallel (e.g. no longer over stack allocating).
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D120772
Philip Reames [Wed, 2 Mar 2022 17:42:00 +0000 (09:42 -0800)]
[slp] Add tests for cause of D118538 revert
Nikolas Klauser [Wed, 2 Mar 2022 17:40:39 +0000 (18:40 +0100)]
[libc++] Check clang-tidy version
Reviewed By: ldionne, #libc
Spies: libcxx-commits, arichardson
Differential Revision: https://reviews.llvm.org/D120087
Sander de Smalen [Wed, 2 Mar 2022 16:03:33 +0000 (16:03 +0000)]
[AArch64][SME] Don't infer -neon from +streaming-sve.
In Streaming SVE mode full NEON is not available, even though this is
implied from armv8-a. LLVM previously inferred that NEON needed to be
disabled when setting +streaming-sve, but there is no need to infer
this from +streaming-sve, because we can explicitly disable NEON using
LLVM's attribute mechanism. This is specifically relevant because
+streaming-sve is not a user-facing feature, but rather an LLVM internal
feature.
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D120809
Simon Pilgrim [Wed, 2 Mar 2022 17:29:11 +0000 (17:29 +0000)]
[X86] Enable v32i16 FSHL/FSHR support
Now that we've improved splat detection we no longer see regressions in the funnel-shift-by-splat-amount test cases
William S. Moses [Sat, 26 Feb 2022 19:40:51 +0000 (14:40 -0500)]
[MLIR][Arith] Canonicalize cmpi of extui/extsi
Canonicalize cmpi(eq, ext a, ext b) and cmpi(ne, ext a, ext b)
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D120620
Valentin Clement [Wed, 2 Mar 2022 17:26:13 +0000 (18:26 +0100)]
[flang] Handle module in lowering pass
This patch enables the lowering of basic modules and functions/subroutines
in modules.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D120819
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Jean Perier <jperier@nvidia.com>
Arthur O'Dwyer [Wed, 2 Mar 2022 17:15:19 +0000 (12:15 -0500)]
[libc++] Add missing std:: qualification to __synth_three_way.
This might be unobservable, since __synth_three_way is only ever
called as a result of using an (ADL) operator on std::pair or std::tuple.
Valentin Clement [Wed, 2 Mar 2022 17:02:41 +0000 (18:02 +0100)]
[flang] Lower inquire statement
This patch adds the lowering of the `inquire` statement.
This patch is part of the upstreaming effort from fir-dev branch.
Depends on D120822
Reviewed By: schweitz
Differential Revision: https://reviews.llvm.org/D120823
Co-authored-by: Jean Perier <jperier@nvidia.com>
Valentin Clement [Wed, 2 Mar 2022 16:58:38 +0000 (17:58 +0100)]
[flang] Lower basic IO file statements
This patches adds lowering for couple of basic io statements such as `flush`,
`endfile`, `backspace` and `rewind`
This patch is part of the upstreaming effort from fir-dev branch.
Depends on D120821
Reviewed By: schweitz
Differential Revision: https://reviews.llvm.org/D120822
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Jean Perier <jperier@nvidia.com>
William S. Moses [Mon, 28 Feb 2022 14:57:35 +0000 (09:57 -0500)]
[MLIR][Arith] Add constant folder for left shift
Add constant folder for left shift
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D120661
Akira Hatanaka [Wed, 2 Mar 2022 16:55:42 +0000 (08:55 -0800)]
[NFC][Clang][OpaquePtr] Remove the call to Address::deprecated in
CreatePointerBitCastOrAddrSpaceCast
Differential Revision: https://reviews.llvm.org/D120757
Valentin Clement [Wed, 2 Mar 2022 16:55:10 +0000 (17:55 +0100)]
[flang] Lower IO open and close statements
This patch adds the lowering of open and close statements
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: schweitz
Differential Revision: https://reviews.llvm.org/D120821
Co-authored-by: Jean Perier <jperier@nvidia.com>
Marek Kurdej [Wed, 2 Mar 2022 08:35:07 +0000 (09:35 +0100)]
[clang-format] Recognize "if consteval".
Fixes https://github.com/llvm/llvm-project/issues/54140.
Reviewed By: MyDeveloperDay, JohelEGP
Differential Revision: https://reviews.llvm.org/D120806
Daniel McIntosh [Sat, 22 Jan 2022 00:51:42 +0000 (19:51 -0500)]
[CodeGen] Use AdjustStackOffset for Callee Saved Registers in PEI::calculateFrameObjectOffsets
Also, changes how the CSR loop is indexed, which should avoid bugs like the one fixed by rG4a57bb5a3b74bdad9b0518009a7d7ac7ca2ac650
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D120668
Nikita Popov [Wed, 2 Mar 2022 16:32:10 +0000 (17:32 +0100)]
Revert "[RISCV] Add cost modelling for masked memory op"
This reverts commit
76f243b53b1c4bed5defe8ffac1fd739a39b0097.
The newly added test fails.
Simon Pilgrim [Wed, 2 Mar 2022 16:19:45 +0000 (16:19 +0000)]
[X86] Add XOP coverage for vector-popcnt tests
Florian Hahn [Wed, 2 Mar 2022 16:23:19 +0000 (16:23 +0000)]
[VPlan] Remove reliance on underlying instr for ScalarIVSteps (NFCI).
Instead of relying on underlying instructions, this patch updates
VPScalarIVStepsRecipe to only store the required type information.
This removes access to unrelated information, as well as avoiding issues
with the same underlying instruction being shared by multiple recipes.
This change should only change the debug output and not cause any
codegen changes, hence NFCI.
Jay Foad [Wed, 2 Mar 2022 15:18:30 +0000 (15:18 +0000)]
[AMDGPU] Fix deleting of move-immediate instructions after folding
SIInstrInfo::FoldImmediate tried to delete move-immediate instructions
after folding them into their only use. This did not work because it was
checking hasOneNonDBGUse after doing the fold, at which point there
should be no uses. This seems to have no effect on codegen, it just
means less stuff for DCE to clean up later.
Differential Revision: https://reviews.llvm.org/D120815
Simon Pilgrim [Wed, 2 Mar 2022 16:09:09 +0000 (16:09 +0000)]
[ObjectYAML] WasmWriter::writeSectionContent - use llvm::enumerate to fix 'side effect in assert' warning
Simon Pilgrim [Wed, 2 Mar 2022 15:58:52 +0000 (15:58 +0000)]
[clang] ExprEngine::VisitCXXNewExpr - remove superfluous nullptr tests
FD has already been dereferenced
Nikita Popov [Thu, 24 Feb 2022 09:09:49 +0000 (10:09 +0100)]
[MachineSink] Disable if there are any irreducible cycles
This is an alternative to D120330, which disables MachineSink for
functions with irreducible cycles entirely. This avoids both the
correctness problem, and ensures we don't perform non-profitable
sinks into cycles. At the same time, it may also disable
profitable sinks in the same function. This can be made more
precise by using MachineCycleInfo in the future.
Fixes https://github.com/llvm/llvm-project/issues/53990.
Differential Revision: https://reviews.llvm.org/D120800
Alex Zinenko [Wed, 2 Mar 2022 15:56:21 +0000 (16:56 +0100)]
[mlir] Ignore index data layout in translation to LLVM
It can be present, but is irrelevant for the translation.
Nikita Popov [Tue, 22 Feb 2022 16:53:14 +0000 (17:53 +0100)]
Reapply [InstCombine] Remove one-use limitation from X-Y==0 fold
This is a recommit without changes. I originally reverted this
due to a significant code-size regression on tramp3d-v4, however
further investigation showed that in the tramp3d-v4 case this
change enables additional optimizations (in particular more
jump threading), which happens to reduce the size of a function
just enough to be eligible for inlining at hot callsites, which
results in the code size increase. As such, this was just bad
luck.
-----
This one-use limitation is artificial, we do not increase
instruction count if we perform the fold with multiple uses. The
motivating case is shown in @sub_eq_zero_select, where the one-use
limitation causes us to miss a subsequent select fold.
I believe the backend is pretty good about reusing flag-producing
subs for cmps with same operands, so I think doing this is fine.
Differential Revision: https://reviews.llvm.org/D120337
Simon Pilgrim [Wed, 2 Mar 2022 15:23:33 +0000 (15:23 +0000)]
[DAG] isSplatValue - improve ISD::VECTOR_SHUFFLE splat detection
Currently we only check for splat shuffles, this extends it to see if the source operand is a splat across the demanded elts based upon the shuffle mask
Arthur O'Dwyer [Mon, 17 Jan 2022 16:04:01 +0000 (11:04 -0500)]
[libc++] Explicitly reject URNG types with signed result_types.
Fixes #48965.
Differential Revision: https://reviews.llvm.org/D120630
spupyrev [Tue, 1 Mar 2022 23:05:44 +0000 (15:05 -0800)]
speeding up ext-tsp for huge instances
Differential Revision: https://reviews.llvm.org/D120780
Alex Zinenko [Wed, 2 Mar 2022 15:16:14 +0000 (16:16 +0100)]
[mlir] more Bazel changes for
23aa5a744666
Chuanqi Xu [Wed, 2 Mar 2022 15:06:07 +0000 (23:06 +0800)]
[NFC] [C++20] [Modules] Simplify ActOnModuleImport by merging Path and Parition
Reviewed By: iains
Differential Revision: https://reviews.llvm.org/D120793
Momchil Velikov [Wed, 2 Mar 2022 14:52:02 +0000 (14:52 +0000)]
Revert "[AArch64] Async unwind - function epilogues"
This reverts commit
74319d67943a4fbef36e81f54273549ce4962f84.
It causes test failures that look like infinite loop in asan/hwasan
unwinding.
Florian Hahn [Wed, 2 Mar 2022 14:59:22 +0000 (14:59 +0000)]
[LV] Remove dead EntryVal argument from buildScalarSteps (NFC).
The EntryVal argument is not needed after recent refactoring. Remove it.
Alex Tsao [Tue, 25 Jan 2022 16:30:19 +0000 (00:30 +0800)]
[RISCV] Add cost modelling for masked memory op
The patch adds very basic cost model for masked memory op on scalable vector.
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D117884
Pavel Labath [Wed, 2 Mar 2022 14:44:22 +0000 (15:44 +0100)]
Revert "Remove a top-level "using namespace" from TargetTransformInfoImpl.h"
Causing failures on many bots.
This reverts commit
31efecfde988a55f70aea97fbc59681f28ef2652.
David Green [Wed, 2 Mar 2022 14:47:32 +0000 (14:47 +0000)]
[AArch64] Add some tests for the cost of extending an extract. NFC
Groverkss [Wed, 2 Mar 2022 14:31:32 +0000 (20:01 +0530)]
[MLIR][Presburger] Move functionality from IntegerPolyhedron to IntegerRelation
This patch moves all functionality from IntegerPolyhedron to IntegerRelation.
IntegerPolyhedron is now implemented as a relation with no domain. All existing
functionality is extended to work on relations.
This patch does not affect external users like FlatAffineConstraints as they
can still continue to use IntegerPolyhedron abstraction.
This patch is part of a series of patches to support relations in Presburger
library.
Reviewed By: arjunp
Differential Revision: https://reviews.llvm.org/D120652
Pavel Labath [Wed, 2 Mar 2022 14:38:20 +0000 (15:38 +0100)]
Remove a top-level "using namespace" from TargetTransformInfoImpl.h
Move it into the implementation of the function that needs it.
Avoids polluting the namespace of all files including the header.
Pavel Labath [Wed, 2 Mar 2022 14:29:12 +0000 (15:29 +0100)]
Remove "using namespace llvm" from ReleaseModeModelRunner.h
A using directive in a header pollutes the namespace of all files which
include that header. It seems this snuck in in D115764 by moving some
code from a cpp file.
Pavel Labath [Mon, 7 Feb 2022 15:21:57 +0000 (16:21 +0100)]
[lldb/Platform] Prepare decouple instance and plugin names
This patch changes the return value of Platform::GetName() to a
StringRef, and uses the opportunity (compile errors) to change some
callsites to use GetPluginName() instead. The two methods still remain
hardwired to return the same thing, but this will change once the ideas
in
<https://discourse.llvm.org/t/multiple-platforms-with-the-same-name/59594>
are implemented.
Differential Revision: https://reviews.llvm.org/D119146
Alex Zinenko [Tue, 1 Mar 2022 17:21:38 +0000 (18:21 +0100)]
[mlir] Add partial support for translating data layout
Add support for translating data layout specifications for integer and float
types between MLIR and LLVM IR. This is a first step towards removing the
string-based LLVM dialect data layout attribute on modules. The latter is still
available and will remain so until the first-class MLIR modeling can fully
replace it.
Depends On D120739
Reviewed By: wsmoses
Differential Revision: https://reviews.llvm.org/D120740
Alex Zinenko [Tue, 1 Mar 2022 17:21:07 +0000 (18:21 +0100)]
[mlir] Data layout for integer and float types
Add support for integer and float types into the data layout subsystem with
default logic similar to LLVM IR. Given the flexibility of the sybsystem, the
logic can be easily overwritten by operations if necessary. This provides the
connection necessary, e.g., for the GPU target where alignment requirements for
integers and floats differ from those provided by default (although still
compatible with the LLVM IR model). Previously, it was impossible to use
non-default alignment requirements for integer and float types, which could
lead to incorrect address and size calculations when targeting GPUs.
Depends On D120737
Reviewed By: wsmoses
Differential Revision: https://reviews.llvm.org/D120739
Alex Zinenko [Tue, 1 Mar 2022 17:20:32 +0000 (18:20 +0100)]
[mlir] support f80 and f128 in parseOptionalType
This seems to have been forgotten when the types were introduced.
Reviewed By: wsmoses
Differential Revision: https://reviews.llvm.org/D120737
Simon Pilgrim [Wed, 2 Mar 2022 13:32:18 +0000 (13:32 +0000)]
[X86] LowerShiftByScalarVariable - remove 32-bit vXi64 bitcast shift amount handling
This was handled generically (and better) by D120553
Florian Hahn [Wed, 2 Mar 2022 13:48:46 +0000 (13:48 +0000)]
[LV] Remove redundant check line from recurrence test.
The removed line matches the previous line, modulo the check prefix.
There is no way to disable sinking instructions as required due to
first-order recurrence and removing the line should be safe.
Saiyedul Islam [Wed, 2 Mar 2022 13:31:47 +0000 (13:31 +0000)]
[clang-offload-bundler] Fix typo in a test case
Intermediate file of one of the test was getting overwritten due
to name clash.
Nikita Popov [Wed, 2 Mar 2022 13:32:36 +0000 (14:32 +0100)]
[InstCombine] Add additional test for phi to switch cond fold (NFC)
This test exposes a bug in the edge dominance implementation.
Momchil Velikov [Wed, 2 Mar 2022 11:05:40 +0000 (11:05 +0000)]
[AArch64] Async unwind - function epilogues
Counterpart of https://reviews.llvm.org/D111411 this change makes the
unwind information instruction precise in function epilogues.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D112330
Simon Moll [Wed, 2 Mar 2022 10:06:05 +0000 (11:06 +0100)]
[VE] (masked) load|store v256.32|64 isel
Add `vvp_load|store` nodes. Lower to `vld`, `vst` where possible. Use
`vgt` for masked loads for now.
Reviewed By: kaz7
Differential Revision: https://reviews.llvm.org/D120413
Manas [Wed, 2 Mar 2022 12:12:08 +0000 (13:12 +0100)]
[clang][scan-build] Change mode of installation for scan-build.1
Currently, manpage for scan-build is installed as a program, with
permission of 755. This patch makes installation of scan-build.1 as
file, with 644 permission.
Patch by Manas.
Reviewed By: steakhal
Differential Revision: https://reviews.llvm.org/D120646
Kiran Chandramohan [Wed, 2 Mar 2022 11:22:07 +0000 (11:22 +0000)]
[Flang] NFC: Rearrange conversion patterns in Codegen.cpp
Minor rearrangment in the order of conversion patterns to identify
differences.
Reviewed By: clementval, schweitz
Differential Revision: https://reviews.llvm.org/D120721
Nikita Popov [Wed, 2 Mar 2022 11:48:54 +0000 (12:48 +0100)]
Revert "[InstCombine] Support switch in phi to cond fold"
This reverts commit
0817ce86b540f909eade6a8d7370e1b47e863a70.
Seeing some ppc64le stage2 failures, reverting to investigate.
Pavel Samolysov [Wed, 2 Mar 2022 11:05:46 +0000 (13:05 +0200)]
[Object] Skip section offset checking for /<XFGHASHMAP>/
Starting from Windows SDK for Windows 11 (10.0.22000.x), all the system
libraries (.lib files) contain a section with the '/<XFGHASHMAP>/' name.
This looks like the libraries are built with control flow guard enabled:
https://docs.microsoft.com/en-us/cpp/build/reference/guard-enable-control-flow-guard?view=msvc-170
To let the LLVM tools (llvm-ar, llvm-lib) work with these libraries,
this patch just skips the section offset check for sections with the
'/<XFGHASHMAP>/' name.
Closes: llvm/llvm-project#53814
Signed-off-by: Pavel Samolysov <pavel.samolysov@intel.com>
Reviewed By: jhenderson, thieta
Differential Revision: https://reviews.llvm.org/D120645
Simon Pilgrim [Wed, 2 Mar 2022 11:25:41 +0000 (11:25 +0000)]
[DAG] SelectionDAG::isSplatValue - add initial BITCAST handling
This patch adds support for recognising vector splats by peeking through bitcasts to vectors with smaller element types - if all the offset subelements are splats then the bitcasted vector is a splat as well.
We don't have great coverage for isSplatValue so I've made this pretty specific to the use case I'm trying to fix - regressions in some vXi64 vector shift by splat cases that 32-bit x86 doesn't recognise because the shift amount buildvector has been type legalised to v2Xi32.
We can add further support (floats, bitcast from larger element types, undef elements) when we have actual test coverage.
Differential Revision: https://reviews.llvm.org/D120553
Nikita Popov [Wed, 2 Mar 2022 09:54:57 +0000 (10:54 +0100)]
[InstCombine] Support switch in phi to cond fold
For conditional branches, we know the value is i1 0 or i1 1 along
the outgoing edges. For switches we can apply exactly the same
optimization, just with the known values determined by the switch
cases.
Jay Foad [Tue, 1 Mar 2022 16:07:43 +0000 (16:07 +0000)]
[AMDGPU] Make more use of madmk/fmamk instructions
In convertToThreeAddress handle VOP2 mac/fmac instructions with a
literal src0 operand, since these are prime candidates for
converting to madmk/fmamk.
Previously this would only happen if src0 (or src1) was a register
defined by a move-immediate instruction, but in many cases these
operands have already been folded because SIFoldOperands runs
before TwoAddressInstructionPass.
Differential Revision: https://reviews.llvm.org/D120736
Dawid Jurczak [Tue, 1 Mar 2022 16:24:13 +0000 (17:24 +0100)]
[NFC][Lexer] Remove getLangOpts function from Lexer
Given that there is only one external user of Lexer::getLangOpts
we can remove getter entirely without much pain.
Differential Revision: https://reviews.llvm.org/D120404
Florian Hahn [Wed, 2 Mar 2022 10:12:38 +0000 (10:12 +0000)]
[LV] Modernize test matching hardcoded induction phi name.
Nikita Popov [Wed, 2 Mar 2022 10:05:40 +0000 (11:05 +0100)]
[InstCombine] Add tests for phi to cond with switch (NFC)
Currently we only handle br but not switch in this fold.
Haojian Wu [Wed, 2 Mar 2022 09:18:25 +0000 (10:18 +0100)]
[pseudo] fix some comment nits, NFC.
Simon Moll [Wed, 2 Mar 2022 09:16:07 +0000 (10:16 +0100)]
[VP] vp.sitofp cast intrinsic and docs
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D119922
Simon Moll [Wed, 2 Mar 2022 09:15:22 +0000 (10:15 +0100)]
[VP] Fix vp.fptosi LangRef example
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D120068
Haojian Wu [Tue, 1 Mar 2022 14:57:13 +0000 (15:57 +0100)]
[pseudo] Add a print-grammar option in the tool
This is helpful for debugging purposes.
Differential Revision: https://reviews.llvm.org/D120724
LLVM GN Syncbot [Wed, 2 Mar 2022 08:58:54 +0000 (08:58 +0000)]
[gn build] Port
ae60884dfe16
Stanislav Gatev [Tue, 1 Mar 2022 11:19:00 +0000 (11:19 +0000)]
[clang][dataflow] Add flow condition constraints to Environment
This is part of the implementation of the dataflow analysis framework.
See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D120711
Haojian Wu [Tue, 1 Mar 2022 14:49:21 +0000 (15:49 +0100)]
[pseudo] Fix an out-of-bound error in LRTable::find.
The linear scan should not escape the TargetedStates range.
Differential Revision: https://reviews.llvm.org/D120723
Martin Storsjö [Mon, 28 Feb 2022 10:25:22 +0000 (12:25 +0200)]
[Object] [COFF] Improve error messages
This aids debugging when working with possibly broken files,
instead of just flat out erroring out without telling what's wrong.
Differential Revision: https://reviews.llvm.org/D120679
Martin Storsjö [Tue, 1 Mar 2022 20:41:49 +0000 (22:41 +0200)]
[libcxx] [test] Make filesystem tests not rely on libc++ internals
As part of https://reviews.llvm.org/D119036
(
506cf6dc048835c598b654e43ed8f723a42e39ba), `-DNOMINMAX` was
dropped from the Windows CI configurations, replaced with a
block with `_LIBCPP_PUSH_MACROS`, `#include <__undef_macros>`
and `_LIBCPP_POP_MACROS` (and
`ADDITIONAL_COMPILE_FLAGS: -DNOMINMAX` left in two tests).
However, this workaround breaks the running the libc++ tests
against a different C++ standard library than libc++, as those
macros and that header are libc++ internals.
Therefore, reinstate `-DNOMINMAX` for clang-cl configurations
and remove the libc++ specific bits in filesystem_test_helper.h.
Differential Revision: https://reviews.llvm.org/D120478
Iain Sandoe [Tue, 1 Mar 2022 20:34:13 +0000 (20:34 +0000)]
[C++20][Modules] Improve efficiency of isModulePartition method.
The original implementation of this used the presence of a ":" in the module
name as the key, but since we now generate modules with the correct kind, we
can just test that.
Differential Revision: https://reviews.llvm.org/D120764
Saiyedul Islam [Tue, 1 Mar 2022 06:31:57 +0000 (06:31 +0000)]
[clang-offload-bundler] HIP and OpenMP comaptibility for linking heterogeneous archive library
`hip-openmp-compatible` flag treats hip and hipv4 offload kinds
as compatible with openmp offload kind while extracting code objects
from a heterogenous archive library. Vice versa is also considered
compatible if hip code was compiled with -fgpu-rdc.
This flag only relaxes compatibility criteria on `OffloadKind`,
rest of the components like `Triple` and `GPUArhc` still needs to
be compatible.
Reviewed By: yaxunl
Differential Revision: https://reviews.llvm.org/D120697
Shao-Ce SUN [Tue, 1 Mar 2022 05:19:17 +0000 (13:19 +0800)]
[RISCV] add the MC layer support of Zfinx extension
This patch added the MC layer support of Zfinx extension.
Authored-by: StephenFan
Co-Authored-by: Shao-Ce Sun
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D93298
LLVM GN Syncbot [Wed, 2 Mar 2022 06:10:52 +0000 (06:10 +0000)]
[gn build] Port
65588a0776ae
Xiang1 Zhang [Wed, 2 Mar 2022 06:10:11 +0000 (14:10 +0800)]
Revert "TLS loads opimization (hoist)"
Revert for more reviews
This reverts commit
30e612ebdfb0f243eb63d93487790a53c26ae873.
Mircea Trofin [Tue, 15 Feb 2022 19:54:38 +0000 (11:54 -0800)]
[nfc][codegen] Move RegisterBank[Info].h under CodeGen
This wraps up from D119053. The 2 headers are moved as described,
fixed file headers and include guards, updated all files where the old
paths were detected (simple grep through the repo), and `clang-format`-ed it all.
Differential Revision: https://reviews.llvm.org/D119876
Shraiysh Vaishay [Wed, 2 Mar 2022 05:23:53 +0000 (10:53 +0530)]
[mlir][OpenMP] Added assemblyFormat for atomic and critical operations
This patch adds assemblyFormat for `omp.critical.declare`, `omp.atomic.read`,
`omp.atomic.write`, `omp.atomic.update` and `omp.atomic.capture`.
Also removing those clauses from `parseClauses` that aren't needed
anymore, thanks to the new assemblyFormats.
Reviewed By: NimishMishra, rriddle
Differential Revision: https://reviews.llvm.org/D120248
Abinav Puthan Purayil [Fri, 25 Feb 2022 05:21:44 +0000 (10:51 +0530)]
[AMDGPU] Select no-return atomic ops in BUFInstructions.td
This change adds the selection of no-return buffer_* instructions in
tblgen. The motivation for this is to get the no-return atomic isel
working without relying on post-isel hooks so that GlobalISel can start
selecting them (once GlobalISelEmitter allows no return atomic patterns
like how DAGISel does).
This change handles the selection of no-return mubuf_atomic_cmpswap in
tblgen without changing the extract_subreg generation for the return
variant. This handling was done by the post-isel hook.
Differential Revision: https://reviews.llvm.org/D120538
Hongtao Yu [Wed, 2 Mar 2022 02:43:53 +0000 (18:43 -0800)]
[llvm-profgen] Generating probe-based non-CS profile.
I'm bring up the support of pseudo-probe-based non-CS profile generation. The approach is quite similar to generating dwarf-based non-CS profile. The main difference is for a given linear instruction range, instead of each disassembled instruction, pseudo probes that are covered by the range are processed. The pseudo probe extraction code is shared with CS probe profile generation.
I'm seeing 0.7% performance win for one of our internal large benchmark compared to using non-CS dwarf-based profile, and 0.5% win for another large benchmark when combined with profi.
Reviewed By: wenlei
Differential Revision: https://reviews.llvm.org/D120335
Hongtao Yu [Sun, 27 Feb 2022 19:40:11 +0000 (11:40 -0800)]
[CSSPGO][PriorityInliner] Do not use block weight to drive callsite inlining.
The priority-based inliner currenlty uses block count combined with callee entry count to drive callsite inlining. This doesn't work well with LTO where postlink inlining is driven by prelink-annotated block count which could be based on the merge of all context profiles. I'm fixing it by using callee profile entry count only which should be context-sensitive.
I'm seeing 0.2% perf improvment for one of our internal large benchmarks with probe-based non-CS profile.
Reviewed By: wenlei
Differential Revision: https://reviews.llvm.org/D120784
LLVM GN Syncbot [Wed, 2 Mar 2022 02:38:00 +0000 (02:38 +0000)]
[gn build] Port
30e612ebdfb0
Xiang1 Zhang [Fri, 25 Feb 2022 00:38:00 +0000 (08:38 +0800)]
TLS loads opimization (hoist)
Reviewed By: Wang Pheobe, Topper Craig
Differential Revision: https://reviews.llvm.org/D120000
Maksim Panchenko [Wed, 2 Mar 2022 01:52:47 +0000 (17:52 -0800)]
[BOLT][test] Fix function size in test case
Zhihao Yuan [Wed, 2 Mar 2022 01:33:43 +0000 (19:33 -0600)]
[AST] Print NTTP args as string-literals when possible
C++20 non-type template parameter prints `MyType<{{116, 104, 105, 115}}>` when the code is as simple as `MyType<"this">`. This patch prints `MyType<{"this"}>`, with one layer of braces preserved for the intermediate structural type to trigger CTAD.
`StringLiteral` handles this case, but `StringLiteral` inside `APValue` code looks like a circular dependency. The proposed patch implements a cheap strategy to emit string literals in diagnostic messages only when they are readable and fall back to integer sequences.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D115031
Arthur Eubanks [Tue, 1 Mar 2022 23:51:32 +0000 (15:51 -0800)]
Revert "[SLP] Schedule only sub-graph of vectorizable instructions"
This reverts commit
0539a26d91a1b7c74022fa9cf33bd7faca87544d.
Causes a miscompile, see comments on D118538.
Required updating bottom-to-top-reorder.ll.
Arthur Eubanks [Tue, 1 Mar 2022 23:51:26 +0000 (15:51 -0800)]
Revert "[SLP] Remove SchedulingPriority from ScheduleData [NFC]"
This reverts commit
a3e9b32c00959ad5c73189d8378d019fbe80ade5.
Required for reverting D118538.
Lang Hames [Wed, 2 Mar 2022 00:43:39 +0000 (16:43 -0800)]
[examples][BuildingAJIT] Use the right layer when adding code in Chapter 3.
We were incorrectly using the OptimizeLayer and bypassing the COD layer.
Lang Hames [Tue, 1 Mar 2022 23:52:19 +0000 (15:52 -0800)]
[ORC] Set ResolverBlockAddr in EPCIndirectionUtils::writeResolverBlock.
Without this, EPCIndirectionUtils::getResolverBlockAddr (and lazy compilation
via EPC) won't work.
No test case: lli is still using LocalLazyCallThroughManager. I'll revisit this
soon when I look at adding lazy compilation support to the ORC runtime.
Aart Bik [Tue, 1 Mar 2022 23:47:16 +0000 (15:47 -0800)]
[mlir][sparse][pytaco] added test with various sparse annotations
This also found a bug in the new toMLIR code (missing permutation)
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D120783
Arthur Eubanks [Wed, 2 Mar 2022 00:09:48 +0000 (16:09 -0800)]
[gn build] Add -fsanitize=fuzzer to link flags in fuzzer targets when llvm_use_sanitize_coverage
Nico Weber [Tue, 1 Mar 2022 23:50:22 +0000 (18:50 -0500)]
[gn build] (manually) port
15ab7bc3af3c (TestingSupportTests)
Craig Topper [Tue, 1 Mar 2022 23:41:54 +0000 (15:41 -0800)]
[LegalizeTypes] Remove incomplete StrictFP support from SplitVecRes_UnaryOp. NFC
There is no handling of Chain operands in this function so it can't
work. There's a separate splitting function for all strict fp nodes.
Bixia Zheng [Tue, 1 Mar 2022 22:44:43 +0000 (14:44 -0800)]
[mlir][sparse][taco] Support tensor dimension storage ordering and more general
sparsity values.
Previously, we can't properly handle input tensors with a dimension
ordering that is different from the natural ordering or with a mixed of
compressed and dense dimensions. This change fixes the problems by
passing the dimension ordering and sparsity values to the runtime
routine.
Modify an existing test to test the situation.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D120777
David Green [Tue, 1 Mar 2022 23:31:02 +0000 (23:31 +0000)]
[AArch64] Add simple arithmetic cost model test. NFC
Max Kudryavtsev [Tue, 1 Mar 2022 23:22:14 +0000 (15:22 -0800)]
[MLIR] [Arith] [NFC] Remove switch statement default label due to warning
We are getting compiler warning because default label is excessive. Removing it for now.
[[ http://lab.llvm.org:8011/#/builders/61/builds/22782/steps/5/logs/warnings__2_ | view on buildbot ]]
```
/vol/worker/mlir-nvidia/mlir-nvidia/llvm.src/mlir/lib/Dialect/Arithmetic/IR/ArithmeticOps.cpp:1597:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
```
Related to: [[ https://reviews.llvm.org/D117257 | D117257 ]]
Reviewed By: stella.stamenova
Differential Revision: https://reviews.llvm.org/D120730
Sam Clegg [Tue, 1 Mar 2022 00:32:02 +0000 (16:32 -0800)]
[lld][WebAssembly] Improve error reporting for bad ar archive members
Show the name of of the archive in the error message as well as the name
of the object within it.
Differential Revision: https://reviews.llvm.org/D120689
Benjamin Kramer [Tue, 1 Mar 2022 23:20:08 +0000 (00:20 +0100)]
[bazel] Add a missing dependency after
1f971e23f089