#
3889ff82 |
| 21-Nov-2019 |
David Stenberg <david.stenberg@ericsson.com> |
[DebugInfo] Refactor DIExpression [SZ]Ext creation into function [NFC]
Summary: Also, replace the SmallVector with a normal C array.
Reviewers: vsk
Reviewed By: vsk
Subscribers: hiraditya, llvm-c
[DebugInfo] Refactor DIExpression [SZ]Ext creation into function [NFC]
Summary: Also, replace the SmallVector with a normal C array.
Reviewers: vsk
Reviewed By: vsk
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70498
show more ...
|
#
a087b78b |
| 07-Nov-2019 |
Vedant Kumar <vsk@apple.com> |
Wrong debug info generated at -O2 (-O0 is correct)
Instcombiner pass was erasing trivially dead instruction without updating dependent llvm.dbg.value. which was not showing programmer current state
Wrong debug info generated at -O2 (-O0 is correct)
Instcombiner pass was erasing trivially dead instruction without updating dependent llvm.dbg.value. which was not showing programmer current state of variables while debugging. As a part of this fix I did following, Iterate throught all the users (llvm.dbg) of a instruction which is trivially dead and set each if them undef, Before deleting the instruction. Now user will see optimized out, when try to print those variables. This fixes https://bugs.llvm.org/show_bug.cgi?id=43893
This is my first fix to llvm.
Patch by kamlesh kumar!
Differential Revision: https://reviews.llvm.org/D69809
show more ...
|
#
0e62011d |
| 15-Oct-2019 |
Guillaume Chatelet <gchatelet@google.com> |
[Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned)
Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.o
[Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned)
Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: arsenm, mehdi_amini, jvesely, nhaehnle, hiraditya, steven_wu, dexonsmith, dang, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68944
llvm-svn: 374880
show more ...
|
#
a80b6c15 |
| 02-Oct-2019 |
Florian Hahn <flo@fhahn.com> |
[Local] Handle terminators with users in removeUnreachableBlocks.
Terminators like invoke can have users outside the current basic block. We have to replace those users with undef, before replacing
[Local] Handle terminators with users in removeUnreachableBlocks.
Terminators like invoke can have users outside the current basic block. We have to replace those users with undef, before replacing the terminator.
This fixes a crash exposed by rL373430.
Reviewers: brzycki, asbirlea, davide, spatel
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D68327
llvm-svn: 373513
show more ...
|
#
eb6700b5 |
| 02-Oct-2019 |
Florian Hahn <flo@fhahn.com> |
[Local] Remove unused LazyValueInfo pointer from removeUnreachableBlock.
There are no users that pass in LazyValueInfo, so we can simplify the function a bit.
Reviewers: brzycki, asbirlea, davide
[Local] Remove unused LazyValueInfo pointer from removeUnreachableBlock.
There are no users that pass in LazyValueInfo, so we can simplify the function a bit.
Reviewers: brzycki, asbirlea, davide
Reviewed By: davide
Differential Revision: https://reviews.llvm.org/D68297
llvm-svn: 373488
show more ...
|
#
167b0529 |
| 02-Oct-2019 |
Florian Hahn <flo@fhahn.com> |
[Local] Simplify function removeUnreachableBlocks() to avoid (re-)computation.
Two small changes in llvm::removeUnreachableBlocks() to avoid unnecessary (re-)computation.
First, replace the use of
[Local] Simplify function removeUnreachableBlocks() to avoid (re-)computation.
Two small changes in llvm::removeUnreachableBlocks() to avoid unnecessary (re-)computation.
First, replace the use of count() with find(), which has better time complexity.
Second, because we have already computed the set of dead blocks, replace the second loop over all basic blocks to a loop only over the already computed dead blocks. This simplifies the loop and avoids recomputation.
Patch by Rodrigo Caetano Rocha <rcor.cs@gmail.com>
Reviewers: efriedma, spatel, fhahn, xbolva00
Reviewed By: fhahn, xbolva00
Differential Revision: https://reviews.llvm.org/D68191
llvm-svn: 373429
show more ...
|
#
ab11b918 |
| 30-Sep-2019 |
Guillaume Chatelet <gchatelet@google.com> |
[Alignment][NFC] Remove AllocaInst::setAlignment(unsigned)
Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llv
[Alignment][NFC] Remove AllocaInst::setAlignment(unsigned)
Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: jholewinski, arsenm, jvesely, nhaehnle, eraman, hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D68141
llvm-svn: 373207
show more ...
|
#
18f805a7 |
| 27-Sep-2019 |
Guillaume Chatelet <gchatelet@google.com> |
[Alignment][NFC] Remove unneeded llvm:: scoping on Align types
llvm-svn: 373081
|
#
cbf1f3b7 |
| 04-Sep-2019 |
Alexey Lapshin <a.v.lapshin@mail.ru> |
[Debuginfo][SROA] Need to handle dbg.value in SROA pass.
SROA pass processes debug info incorrecly if applied twice. Specifically, after SROA works first time, instcombine converts dbg.declare intri
[Debuginfo][SROA] Need to handle dbg.value in SROA pass.
SROA pass processes debug info incorrecly if applied twice. Specifically, after SROA works first time, instcombine converts dbg.declare intrinsics into dbg.value. Inlining creates new opportunities for SROA, so it is called again. This time it does not handle correctly previously inserted dbg.value intrinsics.
Differential Revision: https://reviews.llvm.org/D64595
llvm-svn: 370906
show more ...
|
#
3d7bbc6f |
| 05-Aug-2019 |
Johannes Doerfert <jdoerfert@anl.gov> |
[Attributor][Fix] Do not remove instructions during manifestation
When we remove instructions cached references could still be live. This patch avoids removing invoke instructions that are replaced
[Attributor][Fix] Do not remove instructions during manifestation
When we remove instructions cached references could still be live. This patch avoids removing invoke instructions that are replaced by calls and instead keeps them around but in a dead block.
llvm-svn: 367933
show more ...
|
#
65e4b47a |
| 05-Aug-2019 |
Guillaume Chatelet <gchatelet@google.com> |
[LLVM][Alignment] Introduce Alignment Type in DataLayout
Summary: This is patch is part of a serie to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-d
[LLVM][Alignment] Introduce Alignment Type in DataLayout
Summary: This is patch is part of a serie to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet, jfb, jakehehrlich
Subscribers: hiraditya, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65521
Make getFunctionPtrAlign() return MaybeAlign
llvm-svn: 367817
show more ...
|
#
44b16bd4 |
| 03-Aug-2019 |
Yonghong Song <yhs@fb.com> |
[Transforms] Do not drop !preserve.access.index metadata
Currently, when a GVN or CSE optimization happens, the llvm.preserve.access.index metadata is dropped. This caused a problem for BPF Abstruct
[Transforms] Do not drop !preserve.access.index metadata
Currently, when a GVN or CSE optimization happens, the llvm.preserve.access.index metadata is dropped. This caused a problem for BPF AbstructMemberOffset phase as it relies on the metadata (debuginfo types).
This patch added proper hooks in lib/Transforms to preserve !preserve.access.index metadata. A test case is added to ensure metadata is preserved under CSE.
Differential Revision: https://reviews.llvm.org/D65700
llvm-svn: 367769
show more ...
|
#
38a02008 |
| 25-Jul-2019 |
Sanjay Patel <spatel@rotateright.com> |
[Utils] remove duplicated documentation comments; NFC
http://llvm.org/docs/CodingStandards.html#doxygen-use-in-documentation-comments
llvm-svn: 367015
|
#
86e9f9dc |
| 24-Jul-2019 |
Sanjay Patel <spatel@rotateright.com> |
[Transforms] move copying of load metadata to helper function; NFC
There's another proposed load combine that can make use of this code in D64432.
llvm-svn: 366949
|
#
8b161bac |
| 24-Jul-2019 |
Petr Hosek <phosek@chromium.org> |
[SafeStack] Insert the deref before remaining elements
This is a follow up to D64971. While we need to insert the deref after the offset, it needs to come before the remaining elements in the origin
[SafeStack] Insert the deref before remaining elements
This is a follow up to D64971. While we need to insert the deref after the offset, it needs to come before the remaining elements in the original expression since the deref needs to happen before the LLVM fragment if present.
Differential Revision: https://reviews.llvm.org/D65172
llvm-svn: 366865
show more ...
|
#
6058b863 |
| 22-Jul-2019 |
Stefan Stipanovic <sstipanovic@s-energize.com> |
Fixing build error from commit 95cbc3d
[Attributor] Liveness analysis.
Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored. Right now we ar
Fixing build error from commit 95cbc3d
[Attributor] Liveness analysis.
Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored. Right now we are only looking at noreturn calls.
Reviewers: jdoerfert, uenoku
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D64162
llvm-svn: 366769
show more ...
|
#
5a9ba27c |
| 22-Jul-2019 |
Stefan Stipanovic <sstipanovic@s-energize.com> |
Revert "Fixing build error from commit 9285295."
This reverts commit 95cbc3da8871f43c1ce2b2926afaedcd826202b1.
llvm-svn: 366759
|
#
95cbc3da |
| 22-Jul-2019 |
Stefan Stipanovic <sstipanovic@s-energize.com> |
Fixing build error from commit 9285295.
[Attributor] Liveness analysis.
Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored. Right now we a
Fixing build error from commit 9285295.
[Attributor] Liveness analysis.
Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored. Right now we are only looking at noreturn calls.
Reviewers: jdoerfert, uenoku
Subscribers: hiraditya, llvm-commits
Differential revision: https://reviews.llvm.org/D64162
llvm-svn: 366753
show more ...
|
#
77dc6d24 |
| 22-Jul-2019 |
Eric Christopher <echristo@gmail.com> |
Temporarily Revert "[Attributor] Liveness analysis." as it's breaking the build.
This reverts commit 9285295f75a231dc446fa7cbc10a0a391b3434a5.
llvm-svn: 366737
|
#
9285295f |
| 22-Jul-2019 |
Stefan Stipanovic <sstipanovic@s-energize.com> |
[Attributor] Liveness analysis.
Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored. Right now we are only looking at noreturn calls.
Revie
[Attributor] Liveness analysis.
Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored. Right now we are only looking at noreturn calls.
Reviewers: jdoerfert, uenoku
Subscribers: hiraditya, llvm-commits
Differential revision: https://reviews.llvm.org/D64162
llvm-svn: 366736
show more ...
|
#
f6cd6ffb |
| 22-Jul-2019 |
Petr Hosek <phosek@chromium.org> |
[SafeStack] Insert the deref after the offset
While debugging code that uses SafeStack, we've noticed that LLVM produces an invalid DWARF. Concretely, in the following example:
int main(int argc,
[SafeStack] Insert the deref after the offset
While debugging code that uses SafeStack, we've noticed that LLVM produces an invalid DWARF. Concretely, in the following example:
int main(int argc, char* argv[]) { std::string value = ""; printf("%s\n", value.c_str()); return 0; }
DWARF would describe the value variable as being located at:
DW_OP_breg14 R14+0, DW_OP_deref, DW_OP_constu 0x20, DW_OP_minus
The assembly to get this variable is:
leaq -32(%r14), %rbx
The order of operations in the DWARF symbols is incorrect in this case. Specifically, the deref is incorrect; this appears to be incorrectly re-inserted in repalceOneDbgValueForAlloca.
With this change which inserts the deref after the offset instead of before it, LLVM produces correct DWARF:
DW_OP_breg14 R14-32
Differential Revision: https://reviews.llvm.org/D64971
llvm-svn: 366726
show more ...
|
#
0a7faa4e |
| 20-Jul-2019 |
Florian Hahn <flo@fhahn.com> |
[Local] Zap blockaddress without users in ConstantFoldTerminator.
If the blockaddress is not destoryed, the destination block will still be marked as having its address taken, limiting further trans
[Local] Zap blockaddress without users in ConstantFoldTerminator.
If the blockaddress is not destoryed, the destination block will still be marked as having its address taken, limiting further transformations.
I think there are other places where the dead blockaddress constants are kept around, I'll look into that as follow up.
Reviewers: craig.topper, brzycki, davide
Reviewed By: brzycki, davide
Differential Revision: https://reviews.llvm.org/D64936
llvm-svn: 366633
show more ...
|
#
db101864 |
| 12-Jul-2019 |
Alina Sbirlea <asbirlea@google.com> |
[MemorySSA] Use SetVector to avoid nondeterminism.
Summary: Use a SetVector for DeadBlockSet. Resolves PR42574.
Reviewers: george.burgess.iv, uabelho, dblaikie
Subscribers: jlebar, Prazek, mgrang,
[MemorySSA] Use SetVector to avoid nondeterminism.
Summary: Use a SetVector for DeadBlockSet. Resolves PR42574.
Reviewers: george.burgess.iv, uabelho, dblaikie
Subscribers: jlebar, Prazek, mgrang, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D64601
llvm-svn: 365970
show more ...
|
#
032f87bb |
| 21-May-2019 |
Bob Haarman <llvm@inglorion.net> |
Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..."
This reverts commit rr360902. It caused an assertion failure in lib/IR/DebugInfoMetadata.cpp: Assertion `(OffsetInBits + SizeInBits
Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..."
This reverts commit rr360902. It caused an assertion failure in lib/IR/DebugInfoMetadata.cpp: Assertion `(OffsetInBits + SizeInBits <= FragmentSizeInBits) && "new fragment outside of original fragment"' failed.
PR41931.
llvm-svn: 361246
show more ...
|
#
e85bbf56 |
| 20-May-2019 |
Petar Jovanovic <petar.jovanovic@mips.com> |
[DebugInfoMetadata] Refactor DIExpression::prepend constants (NFC)
Refactor DIExpression::With* into a flag enum in order to be less error-prone to use (as discussed on D60866).
Patch by Djordje To
[DebugInfoMetadata] Refactor DIExpression::prepend constants (NFC)
Refactor DIExpression::With* into a flag enum in order to be less error-prone to use (as discussed on D60866).
Patch by Djordje Todorovic.
Differential Revision: https://reviews.llvm.org/D61943
llvm-svn: 361137
show more ...
|