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
Peter Klausler [Thu, 17 Feb 2022 00:41:53 +0000 (16:41 -0800)]
[flang] Extension: don't require commas between most edit descriptors in formats
The standard explicitly allows a comma to be omitted between a 'P'
edit descriptor and a following numeric edit descriptor (e.g., 1PE10.1),
and before and after a '/' edit descriptor, but otherwise requires them
between edit descriptors. Most implementations, however, only require
commas where they prevent ambiguity, and accept things like 1XI10.
This extension is already assumed by the static FORMAT checker in
semantics. Patch the runtime to behave accordingly.
Differential Revision: https://reviews.llvm.org/D120747
Benjamin Kramer [Tue, 1 Mar 2022 23:07:56 +0000 (00:07 +0100)]
[bazel] Build fixes for
23aa5a744666
Craig Topper [Tue, 1 Mar 2022 23:07:38 +0000 (15:07 -0800)]
[RISCV] Remove accidental negate from recently added i64 abs test. NFC
I copied the tests from neg-abs.ll and thought I removed all the
negations.
Stephane Moore [Tue, 1 Mar 2022 23:02:00 +0000 (15:02 -0800)]
[lldb] Hyphenate Objective-C exception breakpoint labels ✍️
Objective-C is officially hyphenated:
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html#//apple_ref/doc/uid/TP30001163
Reviewed By: mwyman, clayborg
Differential Revision: https://reviews.llvm.org/D113616
Siva Chandra Reddy [Tue, 1 Mar 2022 22:53:46 +0000 (22:53 +0000)]
[libc][NFC] Add a static assert for futex size.
rkayaith [Tue, 1 Mar 2022 22:51:25 +0000 (14:51 -0800)]
[mlir] Add option to control python search priming
This adds an option to configure the CMake python search priming
behaviour that was introduced in D118148. In some environments the
priming would cause the "real" search to fail. The default behaviour is
unchanged, i.e. the search will be primed.
Reviewed By: stellaraccident
Differential Revision: https://reviews.llvm.org/D120765
Florian Mayer [Fri, 18 Feb 2022 00:51:05 +0000 (16:51 -0800)]
[HWASAN] Add test for optnone function.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D120102
Florian Mayer [Wed, 23 Feb 2022 22:32:19 +0000 (14:32 -0800)]
[HWASAN] erase lifetime intrinsics if tag is outside.
Reviewed By: eugenis
Differential Revision: https://reviews.llvm.org/D120437
Peter Klausler [Wed, 16 Feb 2022 22:55:19 +0000 (14:55 -0800)]
[flang] Allow data transfer stmt control list errors to be caught
The runtime crashes on several fundamental I/O data transfer statement
control list errors, like list I/O on a direct-access unit, or
input from a write-only unit, &c. These errors should not be fatal
when ERR= or IOSTAT= are present.
This patch creates a new ErroneousIoStatementState class and
uses it for the state of an I/O statement that is doomed to fail
from these errors. If there is no ERR= label or IOSTAT= variable,
the error will be raised at the end of the statement. Data transfer
operations along the way will be no-op failures.
Differential Revision: https://reviews.llvm.org/D120745
Valentin Clement [Tue, 1 Mar 2022 22:25:27 +0000 (23:25 +0100)]
[flang] Add test for allocatable on the caller side
This patch adds test for allocatable on the caller side.
Lowering for missing features is added as well.
This patch is part of the upstreaming effort from fir-dev branch.
Depends on D120746
Reviewed By: PeteSteinfeld, schweitz
Differential Revision: https://reviews.llvm.org/D120748
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Jean Perier <jperier@nvidia.com>
Zequan Wu [Tue, 1 Mar 2022 22:24:13 +0000 (14:24 -0800)]
[PDB] add missing char8_t for 5c9e20d
Joseph Huber [Tue, 1 Mar 2022 21:33:26 +0000 (16:33 -0500)]
[OpenMP][NFC] Add an option to print the module before in OpenMPOpt
Previously there was a debug flag to print the module after
optimizations. Sometimes we wanted to print the module before
optimizations so this is being split into two flags.
`-openmp-opt-print-module` is now `-openmp-opt-print-module-after`.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D120768
River Riddle [Tue, 1 Mar 2022 22:00:26 +0000 (14:00 -0800)]
[mlir][NFC] Remove several dead references to the old standard dialect
Valentin Clement [Tue, 1 Mar 2022 21:57:58 +0000 (22:57 +0100)]
[flang] Add test for allocatable on the callee side
This patch adds couple of tests for allocatable
on the callee side. Lowering for some missing underlying features
is added as well.
This patch is part of the upstreaming effort from fir-dev branch.
Depends on D120744
Reviewed By: PeteSteinfeld, schweitz
Differential Revision: https://reviews.llvm.org/D120746
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
River Riddle [Tue, 1 Mar 2022 21:47:00 +0000 (13:47 -0800)]
[mlir][NFC] Rename the old Standard dialect test directory to Func
The remanants of Standard was renamed to Func, but the test directory
remained named as Standard. In adidition to fixing the name, this commit
also moves the tests for operations not in the Func dialect to the proper
parent dialect test directory.
Duncan P. N. Exon Smith [Tue, 1 Mar 2022 00:47:29 +0000 (16:47 -0800)]
Testing: Make TempFile safe to move; test Temp{Dir,File,Link}
Default the moves and delete the copies for TempFile, matching TempDir
and TempLink, and add tests for all of them to confirm that the
destructor is not harmful after it has been moved from.
Differential Revision: https://reviews.llvm.org/D120691
Martin Storsjö [Thu, 24 Feb 2022 10:38:26 +0000 (12:38 +0200)]
[libcxx] [test] Place output from newconfig tests under a 'test' subdir
Previously, all the output from the tests were placed directly in
the build directory. The tests produce a couple directories named
`__config_{exec,cache,src}__` which are easy to distinguish, but
the output from the individual tests are placed in subdirectories
named `std` or `libcxx`. Especially the build output from libcxx
tests ends up conflated in the same directories as are used for
building libcxx with cmake.
Differential Revision: https://reviews.llvm.org/D120479
Zequan Wu [Tue, 1 Mar 2022 01:22:56 +0000 (17:22 -0800)]
[PDB] Add char8_t type
Differential Revision: https://reviews.llvm.org/D120690
Valentin Clement [Tue, 1 Mar 2022 21:28:16 +0000 (22:28 +0100)]
[flang] Handle dynamic array lowering
This patch enables dynamic array lowering
and use the funcationality inside some IO tests.
This patch is part of the upstreaming effort from fir-dev branch.
Depends on D120743
Reviewed By: PeteSteinfeld, schweitz
Differential Revision: https://reviews.llvm.org/D120744
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
Krystian Kuzniarek [Sun, 27 Feb 2022 09:30:49 +0000 (10:30 +0100)]
[clang-format][docs] Fix a bad comment
Follow up to
8f310d1967c20d348c617af3a30999031c71fee0.
Differential Revision: https://reviews.llvm.org/D120618
Björn Schäpers [Thu, 24 Feb 2022 14:14:49 +0000 (15:14 +0100)]
[clang-format] Fix BreakBeforeBinaryOperators with TemplateCloser on the lhs
In the presence of pp branches we parse the token stream multiple times.
Thus the token already has the type set. It's best just not to assert on
any type in the parser.
Fixes https://github.com/llvm/llvm-project/issues/54019
Differential Revision: https://reviews.llvm.org/D120621
Björn Schäpers [Thu, 24 Feb 2022 14:14:49 +0000 (15:14 +0100)]
[clang-format] Fix requires related crash
In the presence of pp branches we parse the token stream multiple times.
Thus the token already has the type set. It's best just not to assert on
any type in the parser.
Fixes https://github.com/llvm/llvm-project/issues/54019
Differential Revision: https://reviews.llvm.org/D120512
Björn Schäpers [Thu, 24 Feb 2022 07:57:03 +0000 (08:57 +0100)]
[clang-format] Allow to set token types final
We have a little problem. TokenAnnotator::resetTokenMetadata() resets
the type, except for a (growing) whitelist. This is because the
TokenAnnotator visits some tokens multiple times. E.g. trying to
identify if a < is an operator less or a template opener. And in some
runs, which are bascially "reverted" the types are reset.
On the other hand, if the parser does already know the type, it should
be able to set it, without it being reset. So we introduce the ability
to set a type and make that final.
Differential Revision: https://reviews.llvm.org/D120511
David Tenty [Mon, 7 Feb 2022 23:22:35 +0000 (18:22 -0500)]
[libc++][AIX] Use C++ overloads from libc++'s math.h
AIX's system header provides these C++ overloads for compatibility with
older XL C++ implementations, but they can be disabled by defining
__LIBC_NO_CPP_MATH_OVERLOADS__ since AIX 7.2 TL 5 SP 3.
Since D109078 landed clang will define this macro when using libc++ on
AIX and we already run the lit tests with it too. This change will
enable the overloads in libc++'s math.h and we'll continue to require
the compiler to define the macro going forward.
Reviewed By: ldionne, jsji, EricWF
Differential Revision: https://reviews.llvm.org/D102172
co-authored-by: Jason Liu <jasonliu.development@gmail.com>
Cameron McInally [Tue, 1 Mar 2022 20:05:41 +0000 (12:05 -0800)]
[SVE] Update patterns to commute FMLS multiplication operands
Use PatFrags to commute the multiplication operands of an AArch64ISD::FMA_PRED
node, allowing unpredicated FMLS instructions to match.
Reviewed by: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D120570
Valentin Clement [Tue, 1 Mar 2022 20:47:40 +0000 (21:47 +0100)]
[flang] Lower basic IO statement
This patch enables the lowering of the print, read and write
IO statements.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: PeteSteinfeld, schweitz
Differential Revision: https://reviews.llvm.org/D120743
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
Co-authored-by: Kiran Chandramohan <kiran.chandramohan@arm.com>
Peter Klausler [Fri, 18 Feb 2022 20:25:58 +0000 (12:25 -0800)]
[flang] Check constraint C711 correctly
An assumed-type actual argument that corresponds to an assumed-rank dummy
argument shall be assumed-shape or assumed-rank.
Differential Revision: https://reviews.llvm.org/D120750
River Riddle [Mon, 28 Feb 2022 22:25:39 +0000 (14:25 -0800)]
[mlir] Trim a huge number of unnecessary dependencies on the Func dialect
The Func has a large number of legacy dependencies carried over from the old
Standard dialect, which was pervasive and contained a large number of varied
operations. With the split of the standard dialect and its demise, a lot of lingering
dead dependencies have survived to the Func dialect. This commit removes a
large majority of then, greatly reducing the dependence surface area of the
Func dialect.
River Riddle [Sat, 26 Feb 2022 22:49:54 +0000 (14:49 -0800)]
[mlir] Rename the Standard dialect to the Func dialect
The last remaining operations in the standard dialect all revolve around
FuncOp/function related constructs. This patch simply handles the initial
renaming (which by itself is already huge), but there are a large number
of cleanups unlocked/necessary afterwards:
* Removing a bunch of unnecessary dependencies on Func
* Cleaning up the From/ToStandard conversion passes
* Preparing for the move of FuncOp to the Func dialect
See the discussion at https://discourse.llvm.org/t/standard-dialect-the-final-chapter/6061
Differential Revision: https://reviews.llvm.org/D120624
Brian Cain [Fri, 25 Feb 2022 03:59:18 +0000 (19:59 -0800)]
[libcxx] Make test case fmt specifiers more portable
These printf()s fail to compile like so on hexagon:
.../tools/llvm-top/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp:94:23: error: format specifies type 'unsigned int' but the argument has type 'unsigned long' [-Werror,-Wformat]
printf("%u ", elem);
~~ ^~~~
%lu
.../tools/llvm-top/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp:569:56: error: format specifies type 'unsigned int' but the argument has type 'uint32_t' (aka 'unsigned long') [-Werror,-Wformat]
fprintf(stderr, "%s failed for 0x%08X\n", msg, bits);
~~~~ ^~~~
%08lX
.../tools/llvm-top/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp:1096:43: error: format specifies type 'unsigned int' but the argument has type 'unsigned long' [-Werror,-Wformat]
printf("Randomized test cases: %u\n", PrefixesToTest * Fractions);
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
%lu
Differential Revision: https://reviews.llvm.org/D120532
Craig Topper [Tue, 1 Mar 2022 19:50:43 +0000 (11:50 -0800)]
[RISCV] Add more test case for absolute value. NFC
This adds tests for i8 through i128 with intrinsic and select forms.
Covering rv32 and rv64 with the base ISA, Zbb, and Zbt. Some
Zbb tests already covered part of this, but not all.
FIXMEs have been added for some obviously suboptimal codegen.
serge-sans-paille [Tue, 1 Mar 2022 13:28:22 +0000 (14:28 +0100)]
Cleanup includes: TransformsUtils
Estimation on the impact on preprocessor output:
before:
1065307662
after:
1064800684
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D120741
serge-sans-paille [Tue, 1 Mar 2022 19:59:08 +0000 (20:59 +0100)]
Add missing include under EXPENSIVE_CHECK
This is a followup to
344f8ec3048b6eeef94569800acb012f794ad372
It should fix
https://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-expensive/21961/console
rdzhabarov [Tue, 1 Mar 2022 19:44:12 +0000 (19:44 +0000)]
[mlir] Fix unused var warning in the IR/MemRefOps.cpp
Fix unused var compiler warning.
Reviewed By: Mogball
Differential Revision: https://reviews.llvm.org/D120759
Craig Topper [Tue, 1 Mar 2022 19:36:34 +0000 (11:36 -0800)]
[RISCV] Fix the indentation of 'ret' in rv*zb*-intrinsic.ll tests. NFC
Many of these test cases had a single space before 'ret' while
every other instruction had two space indentation. I did not audit
any other tests for this problem.
Arthur O'Dwyer [Wed, 9 Feb 2022 22:30:46 +0000 (17:30 -0500)]
[libc++] Add `explicit` to a bunch of internal detail ctors.
Notably the following ctors remain non-explicit because they
are used as implicit conversions in too many places:
* __debug_less(_Compare&)
* __map_iterator(_TreeIterator)
* __map_const_iterator(_TreeIterator)
* __hash_map_iterator(_HashIterator)
* __hash_map_const_iterator(_HashIterator)
Differential Revision: https://reviews.llvm.org/D119894
Fangrui Song [Tue, 1 Mar 2022 19:36:25 +0000 (11:36 -0800)]
Fix -DLLVM_ENABLE_EXPENSIVE_CHECKS=on build after D120659
Martin Storsjö [Thu, 10 Feb 2022 09:56:44 +0000 (09:56 +0000)]
[libcxx] [test] Fix the put_double, put_long_double tests for clang-cl
These tests are hit hard by a bug that is fixed in a newer version
of UCRT. Add a test for the specific bug, and XFAIL the tests if
that bug is present (as it is in CI).
Split out hex formatting of floats to separate test files, that
are excluded with `XFAIL: msvc`. (Based on reading the C standard for
printf formatting, it seems like this isn't necessarily a proper bug
in printf, but just a case of differing optional behaviour.)
Differential Revision: https://reviews.llvm.org/D120022
Martin Storsjö [Thu, 24 Feb 2022 11:14:21 +0000 (13:14 +0200)]
[libcxx] [test] Add a 'win32-' prefix to the 'broken-utf8-wchar-ctype' feature
This was suggested in the review of https://reviews.llvm.org/D120022.
Also indent the code for the compilation test one step compared
to the surrounding expression.
Differential Revision: https://reviews.llvm.org/D120469
Mircea Trofin [Tue, 1 Mar 2022 19:28:51 +0000 (11:28 -0800)]
Fix build breaks on ml-* bots introduced by include cleanups
Mark de Wever [Fri, 11 Feb 2022 18:34:33 +0000 (19:34 +0100)]
[libc++] Remove _LIBCPP_HAS_NO_STRONG_ENUMS.
All supported compilers have implemented this feature.
Therefore use the language version instead of the feature macro.
Reviewed By: #libc, philnik, ldionne, Quuxplusone
Differential Revision: https://reviews.llvm.org/D119865
Aart Bik [Tue, 1 Mar 2022 19:21:50 +0000 (11:21 -0800)]
[mlir][sparse] fix compile-time warning
Reviewed By: bixia
Differential Revision: https://reviews.llvm.org/D120756
Arthur O'Dwyer [Tue, 1 Mar 2022 19:25:09 +0000 (14:25 -0500)]
[libc++] Remove extraneous space in module.modulemap. NFC.
Arthur O'Dwyer [Mon, 14 Feb 2022 04:28:19 +0000 (23:28 -0500)]
[libc++] [test] Improve the tests for std::{begin,end}(valarray).
Incidentally, this removes some unqualified ADL calls to `begin` and `end`.
Differential Revision: https://reviews.llvm.org/D119687
Nicolas Miller [Tue, 1 Mar 2022 18:34:02 +0000 (10:34 -0800)]
[NVPTX] Add ex2.approx.f16/f16x2 support
NOTE: this is a follow-up commit with the missing clang-side changes.
This patch adds builtins and intrinsics for the f16 and f16x2 variants of the ex2
instruction.
These two variants were added in PTX7.0, and are supported by sm_75 and above.
Note that this isn't wired with the exp2 llvm intrinsic because the ex2
instruction is only available in its approx variant.
Running ptxas on the assembly generated by the test f16-ex2.ll works as
expected.
Differential Revision: https://reviews.llvm.org/D119157