- Sep 25, 2021
-
-
Leonard Chan authored
This adds REQUIRES: shared_cxxabi to a bunch of tests that would fail if this weak reference in sanitizer common was undefined. This is necessary in cases where libc++abi.a is statically linked in. Because there is no strong reference to __cxa_demangle in compiler-rt, then if libc++abi is linked in via a static archive, then the linker will not extract the archive member that would define that weak symbol. This causes a handful of tests to fail because this leads to the symbolizer printing mangled symbols where tests expect them demangled. Technically, this feature is WAI since sanitizer runtimes shouldn't fail if this symbol isn't resolved, and linking statically means you wouldn't need to link in all of libc++abi. As a workaround, we can simply make it a requirement that these tests use shared libc++abis. Differential Revision: https://reviews.llvm.org/D109639
-
David Green authored
Also regenerated the file, whilst here.
-
Louis Dionne authored
-
David Blaikie authored
Based on feedback from Paul Robinson on 38c09ea2 that the 'mangled' mode is only useful as an LLVM-developer-internal tool in combination with llvm-dwarfdump --verify, so demote that to a frontend-only (not driver) option. The driver support is simply -g{no-,}simple-template-names to switch on simple template names, without the option to use the mangled template name scheme there.
-
Jay Foad authored
Call RemoveMachineInstrFromMaps before erasing instrs. repairIntervalsInRange will do this for you after erasing the instruction, but it's not safe to rely on it because assertions in SlotIndexes::removeMachineInstrFromMaps refer to fields in the erased instruction. This fixes asan buildbot failures caused by D110328.
-
Louis Dionne authored
It has been implemented in 59e26308.
-
Anirudh Prasad authored
- This patch adds in the GOFF mangling support to the LLVM data layout string. A corresponding additional line has been added into the data layout section in the language reference documentation. - Furthermore, this patch also sets the right data layout string for the z/OS target in the SystemZ backend. Reviewed By: uweigand, Kai, abhina.sreeskantharajan, MaskRay Differential Revision: https://reviews.llvm.org/D109362
-
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
-