- May 18, 2022
-
-
David Spickett authored
Previously if you read a code/data mask before there was a valid thread you would get the top byte mask. This meant the value was "valid" as in, don't read it again. When using a corefile we ask for the data mask very early on and this meant that later once you did have a thread it wouldn't read the register to get the rest of the mask. This fixes that and adds a corefile test generated from the same program as in my previous change on this theme. Depends on D118794 Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D122411
-
Nikita Popov authored
InstCombine is not required to do anything sensible if it receives invalid IR. These tests seem to be testing self-referential instructions that may occur in unreachable code -- but InstCombine actually goes out of the way to remove such instructions ahead of time so it doesn't need to deal with them.
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D125790
-
Jonathan Wakely authored
Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D122570
-
Jonathan Wakely authored
Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D122571
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Typos meant that we weren't actually checking the function name, which wasn't accounting for mangling
-
Pietro Albini authored
Steve Klabnik recently left the Rust project. Josh Stone (the other member of the Rust Security Response WG) replaces him as one of the vendor contacts for Rust. Differential Revision: https://reviews.llvm.org/D119137
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D125799
-
Archibald Elliott authored
This brings clang/llvm into line with GCC. The Pass is still enabled for the affected cores, but is now opt-in when using `-march=`. I also took the opportunity to add release notes for this change. Reviewed By: john.brawn Differential Revision: https://reviews.llvm.org/D125775
-
Benjamin Kramer authored
Lowering through libm gives us a baseline version, even though it's not going to be particularly fast. This is similar to what we do for some math dialect ops. Differential Revision: https://reviews.llvm.org/D125550
-
Sven van Haastregt authored
Differential Revision: https://reviews.llvm.org/D124256
-
Dmitry Preobrazhensky authored
Removed code that is no longer used after https://reviews.llvm.org/D124485. Differential Revision: https://reviews.llvm.org/D125811
-
David Spickett authored
Non-address bits are not part of the virtual address in a pointer. So they must be removed before passing to interfaces like ptrace. Some of them we get way with not removing, like AArch64's top byte. However this is only because of a hardware feature that ignores them. This change updates all the Process/Target Read/Write memory methods to remove non-address bits before using addresses. Doing it in this way keeps lldb-server simple and also fixes the memory caching when differently tagged pointers for the same location are read. Removing the bits is done at the ReadMemory level not DoReadMemory because particualrly for process, many subclasses override DoReadMemory. Tests have been added for read/write at the command and API level, for process and target. This includes variants like Read<sometype>FromMemory. Commands are tested to make sure we remove at the command and API level. "memory find" is not included because: * There is no API for it. * It already has its own address handling tests. Software breakpoints do use these methods but they are not tested here because there are bigger issues to fix with those. This will happen in another change. Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D118794
-
David Spickett authored
This reverts commit 8e648f19 due to test failures on Windows: https://lab.llvm.org/buildbot/#/builders/83/builds/19094
-
Simon Pilgrim authored
Typos meant that the update script never removed them
-
Simon Pilgrim authored
[DebugInfo][X86] debug-info-template-parameter.ll - fix broken DW_AT_default_value checks identified in D125604
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
GlobalISel tests are barely supported on X86, so just regenerate for now to avoid a blocker
-
Tim Northover authored
CodeGen will only produce fixed formwat prologues, but hand-written assembly can have .cfi directives in any combination they want. This should cause a fallback to DWARF rather than an assertion failure (or an incorrect compact unwind if assertions are disabled).
-
David Spickett authored
This adds an option to the memory region command to print all regions at once. Like you can do by starting at address 0 and repeating the command manually. memory region [-a] [<address-expression>] (lldb) memory region --all [0x0000000000000000-0x0000000000400000) --- [0x0000000000400000-0x0000000000401000) r-x <...>/a.out PT_LOAD[0] <...> [0x0000fffffffdf000-0x0001000000000000) rw- [stack] [0x0001000000000000-0xffffffffffffffff) --- The output matches exactly what you'd get from repeating the command. Including that it shows unmapped areas between the mapped regions. (this is why Process GetMemoryRegions is not used, that skips unmapped areas) Help text has been updated to show that you can have an address or --all but not both. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D111791
-
Ivan Kosarev authored
Completes https://reviews.llvm.org/D125117 Reviewed By: dp, arsenm Differential Revision: https://reviews.llvm.org/D125753
-
Nikita Popov authored
This code is valid for any icmp, so we can safely look through a freeze when trying to find one. A caveat here is that replaceFoldableUses() may not end up replacing any uses in this case. It might make sense to use the freeze as the context instruction (rather than the terminator) if there is a freeze, to ensure that it always gets folded. This would require some changes to how replaceFoldedUses() works though, as it currently assumes that the value is valid at the end of the block.
-
Jay Foad authored
Fold immediates regardless of how many uses they have. This is expected to increase overall code size, but decrease register usage. Differential Revision: https://reviews.llvm.org/D114644
-
Nikita Popov authored
These are for the getPredicateAt() codepath.
-
Nikita Popov authored
With change reporting in transformation passes in mind.
-
Sun Ziping authored
The modified function was incorrectly (not unnecessarily) ignoring grandchild loops, and this change fixes the bug. In particular, this fixes the handling of the loop { inner, body }. The TODO in the same function is talking about the b1 self loop, which may be "unnecessarily" lost, but that is a different issue. -
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D125797
-
Nikita Popov authored
It's sufficient to just fold the icmp to true/false here, and then let constant terminator folding take care of the rest. It should be noted that while replaceFoldableUses() may not replace all uses of the icmp, at least the use in the terminator we're working on is always replaceable, so terminator constant folding should be reliably enabled as a subsequent step.
-
Jay Foad authored
Previously SIFoldOperands::foldInstOperand would only fold a non-inlinable immediate into a single user, so as not to increase code size by adding the same 32-bit literal operand to many instructions. This patch removes that restriction, so that a non-inlinable immediate will be folded into any number of users. The rationale is: - It reduces the number of registers used for holding constant values, which might increase occupancy. (On the other hand, many of these registers are SGPRs which no longer affect occupancy on GFX10+.) - It reduces ALU stalls between the instruction that loads a constant into a register, and the instruction that uses it. - The above benefits are expected to outweigh any increase in code size. Differential Revision: https://reviews.llvm.org/D114643
-
River Riddle authored
This avoids use-after-free when trying to access the regions after visiting the operation.
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D125803
-
David Spickett authored
GetDirtyPageList was being assigned to const & in most places anyway. If you wanted to change the list you'd make a new one and call SetDirtyPageList. GetPageSize is just an int so no issues being const. Differential Revision: https://reviews.llvm.org/D125786
-
Nikita Popov authored
There are multiple places that want to look through freeze, so store condition without freeze in a separate variable.
-
Gabor Marton authored
This new CTU implementation is the natural extension of the normal single TU analysis. The approach consists of two analysis phases. During the first phase, we do a normal single TU analysis. During this phase, if we find a foreign function (that could be inlined from another TU) then we don’t inline that immediately, we rather mark that to be analysed later. When the first phase is finished then we start the second phase, the CTU phase. In this phase, we continue the analysis from that point (exploded node) which had been enqueued during the first phase. We gradually extend the exploded graph of the single TU analysis with the new node that was created by the inlining of the foreign function. We count the number of analysis steps of the first phase and we limit the second (ctu) phase with this number. This new implementation makes it convenient for the users to run the single-TU and the CTU analysis in one go, they don't need to run the two analysis separately. Thus, we name this new implementation as "onego" CTU. Discussion: https://discourse.llvm.org/t/rfc-much-faster-cross-translation-unit-ctu-analysis-implementation/61728 Differential Revision: https://reviews.llvm.org/D123773
-
Gabor Marton authored
Summary: Add a new function with which we can query if a Decl had been newly created during the import process. This feature is a must if we want to have a different static analysis strategy for such newly created declarations. This is a dependent patch that is needed for the new CTU implementation discribed at https://discourse.llvm.org/t/rfc-much-faster-cross-translation-unit-ctu-analysis-implementation/61728 Differential Revision: https://reviews.llvm.org/D123685
-
Florian Hahn authored
-