- Apr 02, 2020
-
-
Johannes Doerfert authored
While D68850 allowed functions to be deleted I accidentally saved some version of the function to be used once a suitable prefix was found. This turned out to be problematic when the occasionally deleted function is also occasionally modified. The test case is adjusted to resemble the case in which the problem was found. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D76586
-
Johannes Doerfert authored
It could happen that we delete the first function in the SCC in the future so we should be careful accessing `Functions` after the manifest stage.
-
Johannes Doerfert authored
Use DL & ABI information for better alignment deduction, e.g., if a type is accessed and the ABI specifies an alignment requirement for such an access we can use it. This is based on a patch by @lebedev.ri and inspired by getBaseAlign in Loads.cpp. Depends on D76673. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D76674
-
Nico Weber authored
This reverts commit 0071eaaf. Inputs/noop-main.ll wasn't checked in, so this breaks check-llvm everywhere.
-
Johannes Doerfert authored
If we have a must-tail call the callee and caller need to have matching ABIs. Part of that is alignment which we might modify when we deduce alignment of arguments of either. Since we would need to keep them in sync, which is not as simple, we simply avoid deducing alignment for arguments of the must-tail caller or callee. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D76673
-
Johannes Doerfert authored
-
Yaxun (Sam) Liu authored
Currently deferred diagnostic emitter checks variable decl in DeclRefExpr, which causes infinite recursion for cases like long a = (long)&a;. Deferred diagnostic emitter does not need check variable decls in DeclRefExpr since reference of a variable does not cause emission of functions directly or indirectly. Therefore there is no need to check variable decls in DeclRefExpr. Differential Revision: https://reviews.llvm.org/D76937
-
Louis Dionne authored
Instead of executing tests from within the libc++ test suite, we execute them from the Lit execution directory. However, since some tests have file dependencies, we must copy those dependencies to the execution directory where they are executed. This has the major benefit that if a test modifies a file (whether it is wanted or not), other tests will not see those modifications. This is good because current tests assume that input data is never modified, however this could be an incorrect assumption if some test does not behave properly.
-
Louis Dionne authored
-
Lang Hames authored
Failure to export __cxa_atexit can lead to an attempt to import a definition from the process itself (if __cxa_atexit is referenced from another JITDylib), but the process definition will clash with the existing non-exported definition to produce an unexpected DuplicateDefinitionError. This patch fixes the immediate issue by exporting __cxa_atexit. It also fixes a bug where atexit functions in other JITDylibs were not being run by adding a copy of run_atexits_helper to every JITDylib. A follow up patch will deal with the bug where definition generators are called despite a non-exported definition being present.
-
Adrian Prantl authored
This reverts commit 4354dfbd while investigating bot fallout.
-
Johannes Doerfert authored
We create a lot of AbstractAttributes and they live as long as the Attributor does. It seems reasonable to allocate them via a BumpPtrAllocator owned by the Attributor. Reviewed By: baziotis Differential Revision: https://reviews.llvm.org/D76589
-
Johannes Doerfert authored
We already mention that `noalias` is modeled after the C99 `restrict` qualifier but we did omit one important requirement in the description. For the restrict guarantees the object affected has to be modified during the execution of the function, in any way (see 6.7.3.1.4 in [0]). There are two reasons we want this restriction as well: 1) To match the `restrict` semantics when we lower it to `noalias`. 2) To allow the reasoning that the object pointed to by a `noalias` pointer is not modified through means not derived from this pointer. Hence, following the uses of that pointer is sufficient to determine potential modifications. The discussion on this came up as part of D73428. In that patch the Attributor is taught to derive `noalias` for call site arguments based on alias queries against objects that are accessed in the callee. This is possible even if the pointer passed at the call site was "not-`noalias`". To simplify the logic there *and* to allow the use of `noalias` as described in 2) above, it is beneficial to follow the C `restrict` semantics in cases where there might be "read-read-aliases". Note that AliasAnalysis* queries for read only objects already result in `NoAlias` even if the pointers might "alias". * From this point of view our Alias Analysis is basically a Dependence Analysis. [0] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D74935 -
Adrian Prantl authored
Types that came from a Clang module are nested in DW_TAG_module tags in DWARF. This patch recreates the Clang module hierarchy in LLDB and sets the owning module information accordingly. My primary motivation is to facilitate looking up per-module APINotes for individual declarations, but this likely also has other applications. rdar://problem/59634380 Differential Revision: https://reviews.llvm.org/D75488
-
Adrian Prantl authored
This API is used by LLDB to attach owning module information to Declarations deserialized from DWARF. Differential Revision: https://reviews.llvm.org/D75561
-
zoecarver authored
Based on an issue brought up in https://reviews.llvm.org/D67900, this commit reverts the changes to is_floating_point and is_arithmetic made in D67900. After D67900 landed, __float128 behaved differently in those two type traits, causing compiler errors in numeric limits (and possibly others).
-
Sam Clegg authored
This means the linker will be expect them be undefined at link time an will generate imports from the `env` module rather than reporting undefined externals. Differential Revision: https://reviews.llvm.org/D77192
-
Vedant Kumar authored
Previously, this was reverted in bf65f19b becuase it checked whether TARGET_OS_EMBEDDED is defined, but that macro is always defined. Update the condition to check that TARGET_OS_OSX is true.
-
Uday Bondhugula authored
Drop unnecessary matches in affine DMA generate test case. Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, grosul1, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77243
-
Uday Bondhugula authored
Add a method that given an affine map returns another with just its unique results. Use this to drop redundant bounds in max/min for affine.for. Update affine.for's canonicalization pattern and createCanonicalizedForOp to use this. Differential Revision: https://reviews.llvm.org/D77237
-
River Riddle authored
This fixes a build error with the make generator for a missing sub-directory.
-
Walter Erquinigo authored
This reverts commit c911cc6c.
-
Walter Erquinigo authored
Summary: Depends on D76872. There was no test for the Intel PT support on LLDB, so I'm creating one, which will help making progress on solid grounds. The test is skipped if the Intel PT plugin library is not built. Reviewers: clayborg, labath, kusmour, aadsm Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77107
-
Louis Dionne authored
The benefit of doing this is that we can now handle directories that contain symlinks and other arbitrary things, such as the static_test_env required by filesystem tests. As a fly-by fix, we also accumulate several commands to perform over SSH and execute them at once instead of SSHing several times. This should be faster on average.
-
Walter Erquinigo authored
This reverts commit f1242ec5.
-
Aaron Ballman authored
A question came up from a glibc maintainer as to whether it was permissible to free a pointer marked [[clang::noescape]], and after investigation, I determined that this is allowed. This updates the documentation in case others have the same question.
-
David Blaikie authored
Caused an assertion due to mismatched bit widths - this seems like the right API to use for a possibly width-varying equality test. Though certainly open to some post-commit review feedback if there's a more suitable way to do this comparison/test.
-
Walter Erquinigo authored
Summary: Depends on D76872. There was no test for the Intel PT support on LLDB, so I'm creating one, which will help making progress on solid grounds. The test is skipped if the Intel PT plugin library is not built. Reviewers: clayborg, labath, kusmour, aadsm Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77107
-
Walter Erquinigo authored
Summary: Several lldb-vscode users have noticed that when a source map rule is invalid (because a folder doesn't exist anymore), the rest of the source maps from their configurations are not applied. This happens because lldb-vscode executes a single "settings set target.source-map" command with all the source maps and LLDB processes them one by one until one fails. Instead of doing this, we can process in LLDB all the source map rules and apply the valid ones instead of failing fast. Reviewers: clayborg, labath, kusmour, aadsm Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77186
-
Daniel Sanders authored
The legalizer has a tendency to lose DebugLoc's when expanding or combining instructions. The verifier that detected these isn't ready for upstreaming yet but this patch fixes the cases that came up when applying it to our out-of-tree backend's CodeGen tests. This pattern comes up a few more times in this file and probably in the backends too but I'd prefer to fix the others separately (and preferably when the lost-location verifier detects them).
-
Lang Hames authored
The MemoryBuffer::getMemBuffer method's RequiresNullTerminator parameter defaults to true, but object files are not null terminated so we need to explicitly pass false here.
-
Lang Hames authored
-
Alex Brachet authored
Summary: Add's `sigfillset` and `sigdelset` which will be used in D76676. Reviewers: sivachandra, PaulkaToast Reviewed By: sivachandra Subscribers: mgorny, MaskRay, tschuett, libc-commits Differential Revision: https://reviews.llvm.org/D76936
-
Sanjay Patel authored
Negation is equivalent to bitwise-not + 1, so try to convert more subtracts into adds using this relationship: 0 - (A ^ C) => ((A ^ C) ^ -1) + 1 => A ^ ~C + 1 I doubt this will recover the regression noted in rGf2fbdf76, but seems like we're going to need to improve here and/or revive D68408? Alive2 proofs: http://volta.cs.utah.edu:8080/z/Re5tMU http://volta.cs.utah.edu:8080/z/An-uns Differential Revision: https://reviews.llvm.org/D77230
-
Sanjay Patel authored
-
Alexey Bataev authored
This reverts commit f08df464 to fix the bug with serialization support for iterator expression.
-
Jonathan Roelofs authored
find() was altering the UserChain, even in cases where it subsequently discovered that the resulting constant was a 0. This confuses rebuildWithoutConstOffset() when it attempts to walk the chain later, since it is expected that the chain itself be a path down the use-def edges of an expression.
-
Nikita Popov authored
This reverts commit d40368fd. llvm-clang-x86_64-expensive-checks-debian failure looks related.
-
Nikita Popov authored
After RAUWing an instruction, also erase it. This makes sure we don't perform extra InstCombine iterations to clean up the garbage.
-
Uday Bondhugula authored
Make the New GVN pass aware of aligned_alloc. Depends on D76975. Differential Revision: https://reviews.llvm.org/D76976
-