- Apr 07, 2020
-
-
Louis Dionne authored
The LitConfig is shared across the whole test suite. However, since enabling recursive expansion can be a breaking change for some test suites, it's important to confine the setting to test suites that enable it explicitly. Note that other issues were raised with the way recursiveExpansionLimit operates. However, this commit simply moves the setting to the right place -- the mechanism by which it works can be improved independently. Differential Revision: https://reviews.llvm.org/D77415
-
LLVM GN Syncbot authored
-
- Apr 06, 2020
-
-
Konstantin Pyzhov authored
-
- Apr 07, 2020
-
-
Paula Toth authored
Summary: This check makes sure all llvm-libc implementations falls within the `__llvm_libc` namespace. Reviewers: alexfh, aaron.ballman, hokein, njames93 Reviewed By: aaron.ballman Subscribers: Eugene.Zelenko, libc-commits, mgorny, xazax.hun, MaskRay, cfe-commits, sivachandra Tags: #clang-tools-extra, #clang Differential Revision: https://reviews.llvm.org/D76818
-
Kirill Naumov authored
The patch introduces the system to distinctively store the information needed for the Control Flow Graph as well as the instrumentary needed for the follow-up changes: BlockFrequencyInfo and BranchProbabilityInfo. The patch is a part of sequence of three patches, related to graphs Heat Coloring. Reviewers: rcorcs, apilipenko, davidxl, sfertile, fedor.sergeev, eraman, bollu Differential Revision: https://reviews.llvm.org/D76820
-
Reid Kleckner authored
Saves ~400 related LLVM ADT. llvm/ADT/Error.h takes 90ms to parse. $ diff -u <(sort thedeps-before.txt) <(sort thedeps-after.txt) \ | grep '^[-+] ' | sort | uniq -c | sort -nr 403 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/Error.h 403 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm-c/Error.h 397 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/Format.h 397 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/Debug.h 377 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/ADT/StringExtras.h 158 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm-c/ExternC.h 138 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/ErrorOr.h 13 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/raw_ostream.h 13 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/ADT/SmallString.h 5 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/ADT/Twine.h -
Jean-Michel Gorius authored
-
Louis Dionne authored
The new libc++ test format doesn't automatically do this (cause it would be the wrong place to do it).
-
Artem Dergachev authored
Constructors and delete operators cannot return a boolean value. Therefore they cannot possibly follow the NS/CFError-related coding conventions. Patch by Valeriy Savchenko! Differential Revision: https://reviews.llvm.org/D77551
-
Artem Dergachev authored
Detect script locations in a more straightforward way: we don't need to search for them because we know exactly where they are anyway. Fix a file path escaping issue in exploded-graph-rewriter with Windows backslashes in the path. 'REQUIRES: shell' remains in scan-build tests for now, so that to observe the buildbot reaction on removing it in a cleaner experiment. Patch by Denys Petrov! Differential Revision: https://reviews.llvm.org/D76768
-
Reid Kleckner authored
Saves only 36 includes of ASTContext.h and related headers. There are two deps on ASTContext.h: - C++ method overrides iterator types (TinyPtrVector) - getting LangOptions For #1, duplicate the iterator type, which is TinyPtrVector<>::const_iterator. For #2, add an out-of-line accessor to get the language options. Getting the ASTContext from a Decl is already an out of line method that loops over the parent DeclContexts, so if it is ever performance critical, the proper fix is to pass the context (or LangOpts) into the predicate in question. Other changes are just header fixups.
-
Yaxun (Sam) Liu authored
Move function emitDeferredDiags from Sema to DeferredDiagsEmitter since it is only used by DeferredDiagsEmitter. Also skip visited functions to avoid exponential compile time. Differential Revision: https://reviews.llvm.org/D77028
-
- Apr 06, 2020
-
-
Konstantin Pyzhov authored
Reviewers: sameerds, dstuttard Differential Revision: https://reviews.llvm.org/D77228
-
- Apr 07, 2020
-
-
Matt Morehouse authored
-
Matt Morehouse authored
This reverts commit 68d73dfa.
-
Matt Morehouse authored
This reverts commit 98bb7fdb.
-
Fangrui Song authored
So that constant expressions like the following are permitted: and w0, w0, #~(0xfe<<24) and w1, w1, #~(0xff<<24) The behavior matches GNU as (opcodes/aarch64-opc.c:aarch64_logical_immediate_p). Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D75885
-
Florian Hahn authored
This should fix http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan/builds/18569
-
Amy Huang authored
Summary: In constructor type homing mode sometimes complete debug info for constexpr types was missing, because there was not a constructor emitted. This change makes constructor type homing ignore constexpr types. Reviewers: rnk, dblaikie Subscribers: aprantl, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77432
-
Fangrui Song authored
Fixes https://bugs.llvm.org/show_bug.cgi?id=45391 The LTO code generator happens after version script scanning and may create references which will fetch some lazy symbols. Currently a version script does not assign VER_NDX_LOCAL to lazy symbols and such symbols will be made global after they are fetched. Change findByVersion and findAllByVersion to work on lazy symbols. For unfetched lazy symbols, we should keep them non-local (D35263). Check isDefined() in computeBinding() as a compensation. This patch fixes a companion bug that --dynamic-list does not export libcall fetched symbols. Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D77280
-
Matt Morehouse authored
-
Matt Morehouse authored
-
Louis Dionne authored
-
Nikita Popov authored
When entering a basic block, RDA inserts reaching definitions coming from predecessor blocks (which will be negative numbers) in a rather peculiar way. If you have incoming reaching definitions -4, -3, -2, -1, it will insert those. If you have incoming reaching definitions -1, -2, -3, -4, it will insert -1, -1, -1, -1, as the max is taken at each step. That's probably not what was intended... However, RDA only actually cares about the most recent reaching definition from a predecessor (to calculate clearance), so this ends up working fine as far as behavior is concerned. It does waste memory on unnecessary reaching definitions though. This patch changes the implementation to first compute the most recent reaching definition in one loop, and then insert only that one in a separate loop. Differential Revision: https://reviews.llvm.org/D77508
-
Sanjay Patel authored
Shows bugs for div/rem/fdiv and possibly others.
-
Nikita Popov authored
At the end of a basic block, RDA adjusts all the reaching defs it found to be relative to the end of the basic block, rather than the start of it. However, it also does this to registers which don't have a reaching def, indicated by ReachingDefDefaultVal. This means that code checking against ReachingDefDefaultVal will not skip them, and may insert them into the reaching definition list. This is ultimately harmless, but causes unnecessary work and is logically not right. Differential Revision: https://reviews.llvm.org/D77506
-
Alexey Bataev authored
IR. Fixed a crash because of the not quite correct casting of the value of iterations.
-
Kazuaki Ishizaki authored
Differential Revision: https://reviews.llvm.org/D77460
-
Scott Linder authored
Summary: The only guarantee there seems to be in the clang-format packaging is that an executable called `clang-format` is in the PATH. Use the in-tree `clang-format-diff.py` to avoid assuming anything else. Also remove dead code for SVN repo and switch to `git diff-index` which is the git plumbing equivalent of `git diff` in this case. Reviewers: starsid, mehdi_amini, vitalybuka, fhahn, kadircet Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77428
-
- Apr 06, 2020
-
-
Jonathan Roelofs authored
-
-
Sanjay Patel authored
The cmyk test is based on the known regression that resulted from: rGf2fbdf76 This improves on the equivalent signed min/max change: rG867f0c3c The underlying icmp equivalence is: ~X pred ~Y --> Y pred X For an icmp with constant, canonicalization results in a swapped pred: ~X < C --> X > ~C
-
BoYao Zhang authored
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Jay Foad authored
-
Louis Dionne authored
We had a workaround because GCC 5 does not evaluate static assertions that are dependent on template parameters. This commit removes the workaround and marks the corresponding tests as unsupported with GCC 5. This has the benefit of bringing the new and the old test formats closer without having to carry a workaround for an old compiler in the new test format.
-
Gabor Marton authored
Summary: Currently we match the summary signature based on the arguments in the CallExpr. There are a few problems with this approach. 1) Variadic arguments are handled badly. Consider the below code: int foo(void *stream, const char *format, ...); void test_arg_constraint_on_variadic_fun() { foo(0, "%d%d", 1, 2); // CallExpr } Here the call expression holds 4 arguments, whereas the function declaration has only 2 `ParmVarDecl`s. So there is no way to create a summary that matches the call expression, because the discrepancy in the number of arguments causes a mismatch. 2) The call expression does not handle the `restrict` type qualifier. In C99, fwrite's signature is the following: size_t fwrite(const void *restrict, size_t, size_t, FILE *restrict); However, in a call expression, like below, the type of the argument does not have the restrict qualifier. void test_fread_fwrite(FILE *fp, int *buf) { size_t x = fwrite(buf, sizeof(int), 10, fp); } This can result in an unmatches signature, so the summary is not applied. The solution is to match the summary against the referened callee `FunctionDecl` that we can query from the `CallExpr`. Further patches will continue with additional refactoring where I am going to do a lookup during the checker initialization and the signature match will happen there. That way, we will not check the signature during every call, rather we will compare only two `FunctionDecl` pointers. Reviewers: NoQ, Szelethus, gamesh411, baloghadamsoftware Subscribers: whisperity, xazax.hun, kristof.beyls, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, Charusso, steakhal, danielkiss, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77410 -
Louis Dionne authored
Otherwise, we're missing some flags like the flags that are used by sanitizer builds and the 32-bit builds. In the long term, I think it would be better to have only %{compile_flags} and %{link_flags}, but for the benefit of adopting the new format by default, I think it's OK to add %{flags} to it. -
Louis Dionne authored
That test requires std::optional. We never noticed that because our test format was skipping Objective-C++ tests altogether.
-