- Mar 14, 2022
-
-
Nikita Popov authored
With opaque pointers, the bitcast might be a no-op, and this can end up trying to replace a value with itself, which is illegal.
-
Egor Zhdan authored
This change teaches the Sema logic for `__builtin_memcpy_inline` to implicitly convert arrays passed as arguments to pointers, similarly to regular `memcpy`. This code will no longer cause a compiler crash: ``` void f(char *p) { char s[1] = {0}; __builtin_memcpy_inline(p, s, 1); } ``` rdar://88147527 Differential Revision: https://reviews.llvm.org/D121475 -
Florian Hahn authored
The insertion point for the builder used during VPlan code generation is set during code generation. Setting the insert point here is dead code and can be removed.
-
Nikita Popov authored
If the call function type and function type don't match, we should consider the function live (there is effectively a bitcast sitting in between).
-
Nikita Popov authored
This is no longer implicitly guaranteed with opaque pointers.
-
Björn Schäpers authored
Fixes https://github.com/llvm/llvm-project/issues/54349 Differential Revision: https://reviews.llvm.org/D121559
-
Björn Schäpers authored
in TokenAnnotator::parseBrace. Left is misleading, because we have a loop and Left does not move. Also return early. Differential Revision: https://reviews.llvm.org/D121558
-
Björn Schäpers authored
Fixes https://github.com/llvm/llvm-project/issues/54350 Differential Revision: https://reviews.llvm.org/D121550
-
Björn Schäpers authored
in TokenAnnotator::parseParens(). Left is misleading since we have a loop and Left is not adjusted. Differential Revision: https://reviews.llvm.org/D121557
-
Benoit Jacob authored
Context: I needed this for https://github.com/google/iree/pull/8474 . I found that TSan instrumentation expects vector sizes to be <= 16, and in my project (IREE) we have tests with higher vector sizes. That left some test functions uninstrumented, resulting in crashes as instrumented code called into them. Differential Revision: https://reviews.llvm.org/D121182
-
Marek Kurdej authored
-
Simon Pilgrim authored
As noticed in D119654, by adding the masked intrinsics results together we can end up with the selects being canonicalized away from the intrinsic - this isn't what we want to test here so replace with a insertvalue chain into a aggregate instead to retain all the results.
-
gysit authored
The revision removes the linalg.fill operation and renames the OpDSL generated linalg.fill_tensor operation to replace it. After the change, all named structured operations are defined via OpDSL and there are no handwritten operations left. A side-effect of the change is that the pretty printed form changes from: ``` %1 = linalg.fill(%cst, %0) : f32, tensor<?x?xf32> -> tensor<?x?xf32> ``` changes to ``` %1 = linalg.fill ins(%cst : f32) outs(%0 : tensor<?x?xf32>) -> tensor<?x?xf32> ``` Additionally, the builder signature now takes input and output value ranges as it is the case for all other OpDSL operations: ``` rewriter.create<linalg::FillOp>(loc, val, output) ``` changes to ``` rewriter.create<linalg::FillOp>(loc, ValueRange{val}, ValueRange{output}) ``` All other changes remain minimal. In particular, the canonicalization patterns are the same and the `value()`, `output()`, and `result()` methods are now implemented by the FillOpInterface. Depends On D120726 Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D120728 -
Valentin Clement authored
Use the TODO macro in `flang/Lower/Todo.h` with the converter location. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121582
-
Kazushi (Jam) Marukawa authored
Support new intrinsics for following instrauctions. - VLDZ, VPCNT, VBRV - LCR, SCR, TSCR, FIDCR - FENCE Also clean the intrinsics implementation of a following instruction. - SVOB Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D121509
-
Simon Moll authored
and|add|or|xor|smax v256i32|64 isel and tests for vp and vector.reduce intrinsics Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D121469
-
Valentin Clement authored
Add a todo for assumed shape dummy argument with VALUE attribute since this is not implemented yet. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121581
-
Simon Moll authored
This adds support for v256.32|64 scatter|gather isel. vp.gather|scatter and regular gather|scatter intrinsics are both lowered to the internal VVP layer. Splitting these ops on v512.32 is the subject of future patches. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D121288
-
Diana Picus authored
Implement the GET_COMMAND intrinsic. Add 2 new parameters (sourceFile and line) so we can create a terminator for RUNTIME_CHECKs. Differential Revision: https://reviews.llvm.org/D118777
-
David Sherwood authored
The vectoriser sometimes generates predicated vector loops using the llvm.get.active.lane.mask intrinsic so it's important that we are able to calculate a valid cost for the call instruction. When SVE is enabled we are able to use a single whilelo instruction for some vector types - in such cases I've marked the cost as 1. For all other cases I've set the cost according to how the intrinsic will be expanded. Tests added here: Analysis/CostModel/AArch64/sve-intrinsics.ll Analysis/CostModel/ARM/active_lane_mask.ll Analysis/CostModel/RISCV/active_lane_mask.ll Differential Revision: https://reviews.llvm.org/D121109
-
Jean Perier authored
Add support for parsing and converting linkonce_odr in FIR. Differential Revision: https://reviews.llvm.org/D121471
-
Simon Moll authored
Kazushi Marukawa (kaz7) of NEC Solution Innovators will take over my role as a code owner for the Vector Engine target. Erich Focht (efocht) of NEC will assume the administrator role for the clang-ve-ninja buildbot. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D121453
-
gysit authored
Introduce an explicit `replaceOp` call to enable the tracking of the producer LinalgOp. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D121369
-
Mehdi Amini authored
This support "DEPENDS" and "EXTRA_INCLUDES", allowing in particular to inject include paths to a tablegen targets without forcing to go through the global INCLUDE_DIRECTORIES property. Differential Revision: https://reviews.llvm.org/D121568
-
Stanislav Gatev authored
Model `make_optional`, optional's default constructor, `emplace`, `reset`, and `operator bool` members. Reviewed-by: xazax.hun Differential Revision: https://reviews.llvm.org/D121378
-
Tobias Hieta authored
When using COMPILER_RT_USE_BUILTINS_LIBRARY=ON and clang-cl there where several places where it didn't work as expected. First -print-libgcc-file-name has to be prefixed with /clang: Then the regex that matched the builtins library was wrong because the builtins library is called clang_rt.builtins_<arch>.lib and the regex only matched libclang_rt.builtins_arch.a With this commit you can use a runtime build on Windows with this option enabled. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D120698
-
Tobias Hieta authored
This allows you to set a custom path to the ThinLTO cache so that it can be shared when building in several different build directories. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D121215
-
Kito Cheng authored
Fix test failure cause by D121332.
-
Patrick Holland authored
-
sstwcw authored
Reviewed By: curdeius, HazardyKnusperkeks, MyDeveloperDay Differential Revision: https://reviews.llvm.org/D119599
-
sstwcw authored
Previously the comments for configuration structs as a whole like `BraceWrappingFlags` did not go into the doc. Reviewed By: curdeius Differential Revision: https://reviews.llvm.org/D120361
-
sstwcw authored
For when we want to change a configuration option from an enum into a struct. The need arose when working on D119599. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D120363
-
Mehdi Amini authored
This is present since the beginning, but does not seem needed by any in-tree target right now. This seems like the kind of thing to populate by the caller if needed. Differential Revision: https://reviews.llvm.org/D121565
-
Patrick Holland authored
Differential Revision: https://reviews.llvm.org/D121508
-
Andrew Litteken authored
[IRSim] Make sure the first instruction of a block doesn't get missed if it is the first valid instruction in Module. If an instruction is first legal instruction in the module, and is the only legal instruction in its basic block, it will be ignored by the outliner due to a length check inherited from the older version of the outliner that was restricted to outlining within a single basic block. This removes that check, and updates any tests that broke because of it. Reviewer: paquette Differential Revision: https://reviews.llvm.org/D120786
-
Yeting Kuo authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D121447
-
Craig Topper authored
-
Luo, Yuanke authored
As noticed in D119654, by adding the masked intrinsics results together we can end up with the selects being canonicalized away from the intrinsic - this isn't what we want to test here so replace with a insertvalue chain into a aggregate instead to retain all the results. Differential Revision: https://reviews.llvm.org/D121563
-
Andrew Litteken authored
Musttail calls require extra handling to properly propagate the calling convention information and tail call information. The outliner does not currently do this, so we ignore call instructions that utilize the swifttailcc and tailcc calling convention as well as functions marked with the attribute musttail. Reviewers: paquette, aschwaighofer Differential Revision: https://reviews.llvm.org/D120733
-
Andrew Litteken authored
This reverts commit c7037c72. Pushed too soon
-