- Sep 25, 2021
-
-
River Riddle authored
This commits updates the remaining usages of the ArrayRef<Value> based matchAndRewrite/rewrite methods in favor of the new OpAdaptor overload. Differential Revision: https://reviews.llvm.org/D110360
-
River Riddle authored
This has been a TODO for a long time, and it brings about many advantages (namely nice accessors, and less fragile code). The existing overloads that accept ArrayRef are now treated as deprecated and will be removed in a followup (after a small grace period). Most of the upstream MLIR usages have been fixed by this commit, the rest will be handled in a followup. Differential Revision: https://reviews.llvm.org/D110293
-
Mark de Wever authored
Changes the style as requested by @ldionne in D103368. Reviewed By: ldionne, #libc, Quuxplusone Differential Revision: https://reviews.llvm.org/D109835
-
Stanislav Mekhanoshin authored
Reverted due to two distcint performance regression reports. This reverts commit 92c1fd19.
-
Erich Keane authored
-
Erich Keane authored
Also regenerated cxx_dr_status.html
-
Louis Dionne authored
-
Simon Pilgrim authored
[ConstantFold] ConstantFoldGetElementPtr - use APInt::isNegative() instead of getSExtValue() to support big ints Fixes fuzz test: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39197
-
Simon Pilgrim authored
-
Albion Fung authored
This test case tests doubles inserted into vector ints, and help make apparent the optimizations a future patch will make.
-
liuke authored
At most one variant member of a union may have a default member initializer. The case of anonymous records with multiple levels of nesting like the following also needs to meet this rule. The original logic is to horizontally obtain all the member variables in a record that need to be initialized and then filter to the variables that need to be fixed. Obviously, it is impossible to correctly initialize the desired variables according to the nesting relationship. See Example 3 in class.union union U { U() {} int x; // int x{}; union { int k; // int k{}; <== wrong fix }; union { int z; // int z{}; <== wrong fix int y; }; }; -
Erich Keane authored
cxx_dr_status.html I noticed that these two DRs are currently working correctly, so I added a pair of lit tests that check the AST (which is most useful for CWG1779, since 'dependent' is really only observable in an ast dump) to make sure __func__ works correctly in dependent cases, and in lambda operator(). Also noticed that CWG1762, mostly an 'example' change, works correctly, so added a test so that it gets marked 'done' as well. Additionally, I regenerated cxx_dr_status.html, updating it for Clang 13's release, based on the cwg_status.html from August 12, 2021. Differential Revision: https://reviews.llvm.org/D109956
-
Victor Huang authored
This patch marks splat immediate instructions XXSPLTIW and XXSPLTIDP as rematerializable to prevent MachineLICM from moving them out of loops. Reviewed By: lei, amy Differential revision: https://reviews.llvm.org/D108823
-
Hans Wennborg authored
It seems the crashes we saw wasn't caused by this (see comments on the review). > This is basically D108837 but for jump threading. Free instructions > should be ignored for the threading decision. JumpThreading already > skips some free instructions (like pointer bitcasts), but does not > skip various free intrinsics -- in fact, it currently gives them a > fairly large cost of 2. > > Differential Revision: https://reviews.llvm.org/D110290 This reverts commit 4604695d.
-
Valentin Clement authored
This reverts commit 3593ae43.
-
Stanislav Mekhanoshin authored
With architected flat scratch it becomes readonly. We must always reserve SGPR pair for it even if we do not use scratch at all since an attempt to write to SGPRs mapped to FLAT_SCRATCH results in memory violation. This is not needed since GFX10 with architected flat scratch though since special SGPRs are not carving space from normal SGPRs. Differential Revision: https://reviews.llvm.org/D110376
-
Alex Zinenko authored
Initially, the padding transformation and the related operation were only used to guarantee static shapes of subtensors in tiled operations. The transformation would not insert the padding operation if the shapes were already static, and the overall code generation would actively remove such "noop" pads. However, this transformation can be also used to pack data into smaller tensors and marshall them into faster memory, regardless of the size mismatches. In context of expert-driven transformation, we should assume that, if padding is requested, a potentially padded tensor must be always created. Update the transformation accordingly. To do this, introduce an optional `packing` attribute to the `pad_tensor` op that serves as an indication that the padding is an intentional choice (as opposed to side effect of type normalization) and should be left alone by cleanups. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D110425
-
Quinn Pham authored
This patch adds range checking for some Power10 altivec builtins. Range checking is done in SemaChecking. Reviewed By: #powerpc, lei, Conanap Differential Revision: https://reviews.llvm.org/D109780
-
Florian Hahn authored
This reverts the revert commit df56fc6e. This version of the patch adjusts the location where the EarliestEscapes cache is cleared when an instruction gets removed. The earliest escaping instruction does not have to be a memory instruction. It could be a ptrtoint instruction like in the added test @earliest_escape_ptrtoint, which subsequently gets removed. We need to invalidate the EarliestEscape entry referring to the ptrtoint when deleting it. This fixes the crash mentioned in https://bugs.chromium.org/p/chromium/issues/detail?id=1252762#c6
-
- Sep 24, 2021
-
-
Fraser Cormack authored
-
Dmitry Vyukov authored
MacOS buildbots failed: stress.cpp:57:7: error: use of undeclared identifier 'pipe2' https://green.lab.llvm.org/green//job/clang-stage1-RA/24209/consoleFull#-3468768778254eaf0-7326-4999-85b0-388101f2d404 Fix the test to not use pipe2. Differential Revision: https://reviews.llvm.org/D110423
-
Simon Pilgrim authored
As suggested on D108522, if we're sign extending a v4i16 source before multiplying as a v4i32, then we can replace that with a zero extension and rely on the implicit sign-extension of PMADDWD.
-
Mark de Wever authored
This enforces libcxx and its benchmarks are compiled by a C++20 capable compiler. Based on review comments in D103413. Differential Revision: https://reviews.llvm.org/D110338
-
Sanjay Patel authored
This is motivated by the examples and discussion in: https://llvm.org/PR51245 ...and related bugs. By using vector compares and vector logic, we can convert 2 'set' instructions into 1 'movd' or 'movmsk' and generally improve throughput/reduce instructions. Unfortunately, we don't have a complete vector compare ISA before AVX, so I left SSE-only out of this patch. Ie, we'd need extra logic ops to simulate the missing predicates for SSE 'cmpp*', so it's not as clearly a win. Differential Revision: https://reviews.llvm.org/D110342
-
Sanjay Patel authored
-
Louis Dionne authored
-
Kazu Hirata authored
-
Igor Kudrin authored
Refactor handleArgs() to use that method. Differential Revision: https://reviews.llvm.org/D110350
-
Paul Robinson authored
-
Sanjay Patel authored
This reverts commit bb9333c3. This exposes another existing bug that causes an infinite loop as shown in D110170 ...so reverting while I look at another fix.
-
Dmitry Vyukov authored
The stress test does various assorted things (memory accesses, function calls, atomic operations, thread creation/join, intercepted libc calls) in multiple threads just to stress various parts of the runtime. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110416
-
Hans Wennborg authored
It caused compiler crashes, see comment on the code review for repro. > This is basically D108837 but for jump threading. Free instructions > should be ignored for the threading decision. JumpThreading already > skips some free instructions (like pointer bitcasts), but does not > skip various free intrinsics -- in fact, it currently gives them a > fairly large cost of 2. > > Differential Revision: https://reviews.llvm.org/D110290 This reverts commit 1e3c6fc7.
-
Dmitry Vyukov authored
Add a test for __tsan_flush_memory() and for background flushing of the runtime memory. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110409
-
Nico Weber authored
This reverts commit 5ce89279. Makes clang crash, see comments on https://reviews.llvm.org/D109844
-
Frederic Cambus authored
In build_symbolizer.sh we can safely remove the -eu argument from the shebang (which is an unportable construct), as the scripts sets **-e** and **-u** already. Differential Revision: https://reviews.llvm.org/D110039
-
Cullen Rhodes authored
Identified in D109359. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D109598
-
Michał Górny authored
Refactor Socket::DecodeHostAndPort() to use LLVM API over redundant LLDB API. In particular, this means llvm::Regex, llvm::Error return type and llvm::to_integer(). While at it, change the port type from int32_t to uint16_t. The method never returns any value outside this range, and using the correct type allows us to rely on getAsInteger()'s implicit overflow check. Differential Revision: https://reviews.llvm.org/D110391
-
David Sherwood authored
There are several places in the code that are currently broken where we assume an Instruction is always a member of a BasicBlock that lives in a Function. This is a problem specifically when attempting to get the vscale_range attribute. This patch adds checks that an Instruction's parent also has a parent! I've added a test for a function-less @llvm.vscale intrinsic call here: unittests/Analysis/ValueTrackingTest.cpp
-
Valentin Clement authored
Add support to create unique name for namelist group and be able to deconstruct them. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110331 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Michał Górny authored
This reverts commit a6daf992. It causes buildbot regressions, I'll investigate.
-