- Jun 03, 2021
-
-
Peter Steinfeld authored
It's possible to specify defined input/output procedures either as a type-bound procedure of a derived type or as a defined-io-generic-spec. This means that you can specify the same procedure in both mechanisms, which does not cause problems. Alternatively, you can specify two different procedures to be the defined input/output procedure for the same derived type. This is an error. This change catches this error. The situation is slightly complicated by parameterized derived types. Types with the same value for a KIND parameter are treated as the same type while types with different KIND parameters are treated as different types. I implemented this check by adding a vector to keep track of which defined input/output procedures had been seen for which derived types along with the kind of procedure (read vs write and formatted vs unformatted). I also added tests for non-parameterized types and types parameterized by KIND and LEN type parameters. I also removed an erroneous check from the code that creates runtime type information. Differential Revision: https://reviews.llvm.org/D103560
-
Hamza Mahfooz authored
This patch makes it so, floating-point instructions created in LowerMatrixIntrinsics retain fast-math flags from instructions that are higher up the chain. Fixes https://bugs.llvm.org/show_bug.cgi?id=49738 Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D103233
-
Valeriy Savchenko authored
The majority of all `addVisitor` callers follow the same pattern: addVisitor(std::make_unique<SomeVisitor>(arg1, arg2, ...)); This patches introduces additional overload for `addVisitor` to simplify that pattern: addVisitor<SomeVisitor>(arg1, arg2, ...); Differential Revision: https://reviews.llvm.org/D103457
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in LinalgOps.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103506
-
Louis Dionne authored
Since D100581, Clang started flagging this variable which is set but never read. Based on comparing this function with __match_at_start_posix_nosubs (which is very similar), I am pretty confident that `__j` was simply left behind as an oversight in Howard's 6afe8b0a. Also workaround some unused variable warnings in the <random> tests. It's pretty lame that we're not asserting the skew and kurtosis of the binomial and negative binomial distributions, but that should be tackled separately. Differential Revision: https://reviews.llvm.org/D103533
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Loops.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103453
-
Nicolas Agostini authored
Introduces a test pass that rewrites PadTensorOps with static shapes as a sequence of: ``` linalg.init_tensor // to create output linalg.fill // to initialize with padding value linalg.generic // to copy the original contents to the padded tensor ``` The pass can be triggered with: - `--test-linalg-transform-patterns="test-transform-pad-tensor"` Differential Revision: https://reviews.llvm.org/D102804
-
James Henderson authored
In such cases, the executables are not in the llvm_tools_dir directory, so we need to look in the other search locations. Previously, they were found via the PATH, but this was disabled by default in commit rGa1e6565. Depends on D103154. Reviewed By: thopre Differential Revision: https://reviews.llvm.org/D103156
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in DropUnitDims.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103448
-
Martin Storsjö authored
Make sure that comdat symbols also have a non-null dummy SectionChunk associated. This requires moving around an existing FIXME regarding comdats in LTO. Differential Revision: https://reviews.llvm.org/D103012
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Bufferize.cpp, Detensorize.cpp, and Interchange.cpp. The patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103530
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in TestLinalgElementwiseFusion.cpp, TestLinalgFusionTransforms.cpp, and Transforms.cpp. The patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103528
-
David Green authored
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Promotion.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103450
-
Muhammad Omair Javaid authored
TestDataFormatterStdUniquePtr.py fails on lldb arm/aarch64 linux buildbot but not reproducible on test machine. Skipping for now.
-
Muhammad Omair Javaid authored
TestDataFormatterStdUniquePtr.py fails on lldb arm/aarch64 linux buildbot but not reproducible on test machine. Skipping for now.
-
Fraser Cormack authored
This patch addresses an issue in which fixed-length (VLS) vector RVV code could fail to reserve an emergency spill slot for their frame index elimination. This is because we were previously only reserving a spill slot when there were `scalable-vector` frame indices being used. However, fixed-length codegen uses regular-type frame indices if it needs to spill. This patch does the fairly brute-force method of checking ahead of time whether the function contains any RVV spill instructions, in which case it reserves one slot. Note that the second RVV slot is still only reserved for `scalable-vector` frame indices. This unfortunately causes quite a bit of churn in existing tests, where we chop and change stack offsets for spill slots. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D103269
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Generalization.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103531
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D103548
-
Fraser Cormack authored
The `DAGTypeLegalizer::WidenVSELECTMask` function is not (yet) ready for scalable vector types, and has numerous places in which it tries to grab either the fixed size or number of elements of its types. I believe that it should be possible to update this method to properly account for scalable-vector types, but we don't have test cases for that; RISC-V bails out early on as it has legal i1 vector masks. As such, this patch just prevents it from crashing. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D103536
-
Raphael Isemann authored
-
Yi Kong authored
This allows overriding -fvisibility-inlines-hidden. Differential Revision: https://reviews.llvm.org/D103537
-
David Spickett authored
These legacy CPUs are known to clang but not llvm. Their use was ignored by llvm and it would print a warning saying it did not recognise them. However because some of them are default CPUs for their architecture, you would get those warnings even if you didn't choose a cpu explicitly. (now those architectures will default to a "generic" CPU) Information is thin on the ground for these older chips so this is the best I could find: https://en.wikichip.org/wiki/acorn/microarchitectures/arm2 https://en.wikichip.org/wiki/acorn/microarchitectures/arm3 https://en.wikichip.org/wiki/arm_holdings/microarchitectures/arm6 https://en.wikichip.org/wiki/arm_holdings/microarchitectures/arm7 Final part of fixing https://bugs.llvm.org/show_bug.cgi?id=50454. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D103028
-
Fraser Cormack authored
The attached tests check for the regression in DAGCombiner's `visitVSELECT`, which may call this method. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D103534
-
Dmitry Polukhin authored
Summary: suggestPathToFileForDiagnostics is actively used in clangd for converting an absolute path to a header file to a header name as it should be spelled in the sources. Current approach converts absolute path to relative path. This diff implements missing logic that makes a reverse lookup from the relative path to the key in the header map that should be used in the sources. Prerequisite diff: https://reviews.llvm.org/D103229 Test Plan: check-clang Reviewers: dexonsmith, bruno, rsmith Subscribers: cfe-commits Tasks: Tags: #clang Differential Revision: https://reviews.llvm.org/D103142
-
Petr Hosek authored
This reverts commit b5dd421a which broke Fuchsia downstream builders.
-
Chia-hung Duan authored
Move the core reducer algorithm into a library so that it'll be easier for porting to different projects. Depends On D101046 Reviewed By: jpienaar, rriddle Differential Revision: https://reviews.llvm.org/D101607
-
Vitaly Buka authored
releasePagesToOS may shrink RSS below the value stored on start.
-
Arthur Eubanks authored
Calls must properly match argument ABI attributes with the callee. Found via D103412. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D103414
-
Michael Kruse authored
Clang's version string can be customized using CLANG_VENDOR which the test did not consider. Change the test to accept any version string.
-
Zhaomo Yang authored
Warnings can be found here: https://lab.llvm.org/buildbot/#/builders/76/builds/2640 Reviewed By: ymandel Differential Revision: https://reviews.llvm.org/D103565
-
Eli Friedman authored
(See https://reviews.llvm.org/D60358 for the transform that breaks this case.)
-
Nathan Ridge authored
Differential Revision: https://reviews.llvm.org/D101741
-
James Y Knight authored
It was writing files to the source dir after 316da543.
-
Amy Huang authored
incorrect std::string use. (Also remove redundant call to RemoveFileOnSignal.) Clang writes object files by first writing to a .tmp file and then renaming to the final .obj name. On Windows, if a compile is killed partway through the .tmp files don't get deleted. Currently it seems like RemoveFileOnSignal takes care of deleting the tmp files on Linux, but on Windows we need to call setDeleteDisposition on tmp files so that they are deleted when closed. This patch switches to using TempFile to create the .tmp files we write when creating object files, since it uses setDeleteDisposition on Windows. This change applies to both Linux and Windows for consistency. Differential Revision: https://reviews.llvm.org/D102876 This reverts commit 20797b12.
-
Fangrui Song authored
The linkage/visibility of `__profn_*` variables are derived from the profiled functions. extern_weak => linkonce available_externally => linkonce_odr internal => private extern => private _ => unchanged The linkage/visibility of `__profc_*`/`__profd_*` variables are derived from `__profn_*` with linkage/visibility wrestling for Windows. The changes can be folded to the following without changing semantics. ``` if (TT.isOSBinFormatCOFF() && !NeedComdat) { Linkage = GlobalValue::InternalLinkage; Visibility = GlobalValue::DefaultVisibility; } ``` That said, I think we can just delete the code block. An extern/internal function will now use private `__profc_*`/`__profd_*` variables, instead of internal ones. This saves some symbol table entries. A non-comdat {linkonce,weak}_odr function will now use hidden external `__profc_*`/`__profd_*` variables instead of internal ones. There is potential object file size increase because such symbols need `/INCLUDE:` directives. However such non-comdat functions are rare (note that non-comdat weak definitions don't prevent duplicate definition error). The behavior changes match ELF. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D103355
-
Fangrui Song authored
-
Fangrui Song authored
-
Fangrui Song authored
-
Dave Lee authored
Coro-split functions with an active suspend point have their scope line set to the line of the suspend point. However for compiler generated functions, this results in debug info with unconventional results: a file named `<compiler-generated>` with a non-zero line number. The convention for `<compiler-generated>` is that the line number is zero. This change propagates the scope line only for non-compiler generated functions. Differential Revision: https://reviews.llvm.org/D102412
-