Revision tags: llvmorg-5.0.2-rc1 |
|
#
5b477be7 |
| 09-Mar-2018 |
Adrian Prantl <aprantl@apple.com> |
LowerDbgDeclare: ignore dbg.declares for allocas with volatile access
There is no point in lowering a dbg.declare describing an alloca that has volatile loads or stores as users, since the alloca ca
LowerDbgDeclare: ignore dbg.declares for allocas with volatile access
There is no point in lowering a dbg.declare describing an alloca that has volatile loads or stores as users, since the alloca cannot be elided. Lowering the dbg.declare will result in larger debug info that may also have worse coverage than just describing the alloca.
rdar://problem/34496278
llvm-svn: 327092
show more ...
|
#
f69baf64 |
| 02-Mar-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Salvage debug info in block simplification
In stage2 -O3 builds of llc, this results in small but measurable increases in the number of variables with locations, and in the number of unique
[Utils] Salvage debug info in block simplification
In stage2 -O3 builds of llc, this results in small but measurable increases in the number of variables with locations, and in the number of unique source variables overall.
(According to llvm-dwarfdump --statistics, there are 123 additional variables with locations, which is just a 0.006% improvement).
The size of the .debug_loc section of the llc dsym increases by 0.004%.
llvm-svn: 326629
show more ...
|
#
334fa574 |
| 02-Mar-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Salvage debug info in recursive inst deletion
In stage2 -O3 builds of llc, this results in a 0.3% increase in the number of variables with locations, and a 0.2% increase in the number of uni
[Utils] Salvage debug info in recursive inst deletion
In stage2 -O3 builds of llc, this results in a 0.3% increase in the number of variables with locations, and a 0.2% increase in the number of unique source variables overall.
The size of the .debug_loc section of the llc dsym increases by 0.5%.
llvm-svn: 326621
show more ...
|
Revision tags: llvmorg-6.0.0 |
|
#
523c656e |
| 23-Feb-2018 |
Matt Davis <Matthew.Davis@sony.com> |
[Debug] Add dbg.value intrinsics for PHIs created during LCSSA.
Summary: This patch is an enhancement to propagate dbg.value information when Phis are created on behalf of LCSSA. I noticed a case wh
[Debug] Add dbg.value intrinsics for PHIs created during LCSSA.
Summary: This patch is an enhancement to propagate dbg.value information when Phis are created on behalf of LCSSA. I noticed a case where a value carried across a loop was reported as <optimized out>.
Specifically this case: ``` int bar(int x, int y) { return x + y; }
int foo(int size) { int val = 0; for (int i = 0; i < size; ++i) { val = bar(val, i); // Both val and i are correct } return val; // <optimized out> } ```
In the above case, after all of the interesting computation completes our value is reported as "optimized out." This change will add a dbg.value to correct this.
This patch also moves the dbg.value insertion routine from LoopRotation.cpp into Local.cpp, so that we can share it in both places (LoopRotation and LCSSA).
Reviewers: mzolotukhin, aprantl, vsk, davide
Reviewed By: aprantl, vsk
Subscribers: dberlin, llvm-commits
Differential Revision: https://reviews.llvm.org/D42551
llvm-svn: 325926
show more ...
|
Revision tags: llvmorg-6.0.0-rc3 |
|
#
1ceabcf0 |
| 22-Feb-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Avoid a hash table lookup in salvageDI, NFC
According to the current coverage report salvageDebugInfo() is called 5.12 million times during testing and almost always returns early.
The earl
[Utils] Avoid a hash table lookup in salvageDI, NFC
According to the current coverage report salvageDebugInfo() is called 5.12 million times during testing and almost always returns early.
The early return depends on LocalAsMetadata::getIfExists returning null, which involves a DenseMap lookup in an LLVMContextImpl. We can probably speed this up by simply checking the IsUsedByMD bit in Value.
llvm-svn: 325738
show more ...
|
#
044b5889 |
| 15-Feb-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] salvageDI: Add a comment and move a call earlier, NFC
llvm-svn: 325280
|
#
1768957c |
| 14-Feb-2018 |
Petar Jovanovic <petar.jovanovic@mips.com> |
[Utils] Salvage the debug info of DCE'ed 'and' instructions
Preserve debug info from a dead 'and' instruction with a constant.
Patch by Djordje Todorovic.
Differential Revision: https://reviews.ll
[Utils] Salvage the debug info of DCE'ed 'and' instructions
Preserve debug info from a dead 'and' instruction with a constant.
Patch by Djordje Todorovic.
Differential Revision: https://reviews.llvm.org/D43163
llvm-svn: 325119
show more ...
|
#
945b7e5a |
| 14-Feb-2018 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Adding a width of the GEP index to the Data Layout.
Making a width of GEP Index, which is used for address calculation, to be one of the pointer properties in the Data Layout. p[address space]:size:
Adding a width of the GEP index to the Data Layout.
Making a width of GEP Index, which is used for address calculation, to be one of the pointer properties in the Data Layout. p[address space]:size:memory_size:alignment:pref_alignment:index_size_in_bits. The index size parameter is optional, if not specified, it is equal to the pointer size.
Till now, the InstCombiner normalized GEPs and extended the Index operand to the pointer width. It works fine if you can convert pointer to integer for address calculation and all registered targets do this. But some ISAs have very restricted instruction set for the pointer calculation. During discussions were desided to retrieve information for GEP index from the Data Layout. http://lists.llvm.org/pipermail/llvm-dev/2018-January/120416.html
I added an interface to the Data Layout and I changed the InstCombiner and some other passes to take the Index width into account. This change does not affect any in-tree target. I added tests to cover data layouts with explicitly specified index size.
Differential Revision: https://reviews.llvm.org/D42123
llvm-svn: 325102
show more ...
|
#
388fac5d |
| 13-Feb-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Salvage debug info from all no-op casts
We already try to salvage debug values from no-op bitcasts and inttoptr instructions: we should handle ptrtoint instructions as well.
This saves an a
[Utils] Salvage debug info from all no-op casts
We already try to salvage debug values from no-op bitcasts and inttoptr instructions: we should handle ptrtoint instructions as well.
This saves an additional 24,444 debug values in a stage2 build of clang, and (according to llvm-dwarfdump --statistics) provides an additional 289 unique source variables.
llvm-svn: 324982
show more ...
|
#
4011c26c |
| 13-Feb-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Salvage debug info of DCE'ed mul/sdiv/srem instructions
Here are the number of additional debug values salvaged in a stage2 build of clang:
63 SALVAGE: MUL 1250 SALVAGE: SDIV
(No value
[Utils] Salvage debug info of DCE'ed mul/sdiv/srem instructions
Here are the number of additional debug values salvaged in a stage2 build of clang:
63 SALVAGE: MUL 1250 SALVAGE: SDIV
(No values were salvaged from `srem` instructions in this experiment, but it's a simple case to handle so we might as well.)
llvm-svn: 324976
show more ...
|
#
31ec356a |
| 13-Feb-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Salvage debug info of DCE'ed shl/lhsr/ashr instructions
Here are the number of additional debug values salvaged in a stage2 build of clang:
1912 SALVAGE: ASHR 405 SALVAGE: LSHR 249
[Utils] Salvage debug info of DCE'ed shl/lhsr/ashr instructions
Here are the number of additional debug values salvaged in a stage2 build of clang:
1912 SALVAGE: ASHR 405 SALVAGE: LSHR 249 SALVAGE: SHL
llvm-svn: 324975
show more ...
|
#
47b16c45 |
| 13-Feb-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Salvage the debug info of DCE'ed 'sub' instructions
This salvages 14 debug values in a stage2 build of clang.
llvm-svn: 324974
|
#
96b7dc04 |
| 13-Feb-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Salvage the debug info of DCE'ed 'xor' instructions
This salvages 259 debug values in a stage2 build of clang.
Differential Revision: https://reviews.llvm.org/D43207
llvm-svn: 324973
|
#
04386d8e |
| 09-Feb-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Salvage debug info from dead 'or' instructions
Extend salvageDebugInfo to preserve the debug info from a dead 'or' with a constant.
Patch by Ismail Badawi!
Differential Revision: https://r
[Utils] Salvage debug info from dead 'or' instructions
Extend salvageDebugInfo to preserve the debug info from a dead 'or' with a constant.
Patch by Ismail Badawi!
Differential Revision: https://reviews.llvm.org/D43129
llvm-svn: 324764
show more ...
|
Revision tags: llvmorg-6.0.0-rc2 |
|
#
6394df9f |
| 25-Jan-2018 |
Vedant Kumar <vsk@apple.com> |
[Debug] LCSSA: Insert dbg.value at the first available insertion point
Inserting a dbg.value instruction at the start of a basic block with a landingpad instruction triggers a verifier failure. We s
[Debug] LCSSA: Insert dbg.value at the first available insertion point
Inserting a dbg.value instruction at the start of a basic block with a landingpad instruction triggers a verifier failure. We should be OK if we insert the instruction a bit later.
Speculative fix for the bot failure described here: https://reviews.llvm.org/D42551
llvm-svn: 323482
show more ...
|
#
6bfc869c |
| 25-Jan-2018 |
Vedant Kumar <vsk@apple.com> |
[Debug] Add a utility to propagate dbg.value to new PHIs, NFC
This simply moves an existing utility to Utils for reuse.
Split out of: https://reviews.llvm.org/D42551
Patch by Matt Davis!
llvm-svn
[Debug] Add a utility to propagate dbg.value to new PHIs, NFC
This simply moves an existing utility to Utils for reuse.
Split out of: https://reviews.llvm.org/D42551
Patch by Matt Davis!
llvm-svn: 323471
show more ...
|
Revision tags: llvmorg-6.0.0-rc1 |
|
#
9b7ae232 |
| 12-Jan-2018 |
Brian M. Rzycki <brzycki@gmail.com> |
[JumpThreading] Preservation of DT and LVI across the pass
Summary: See D37528 for a previous (non-deferred) version of this patch and its description.
Preserves dominance in a deferred manner usin
[JumpThreading] Preservation of DT and LVI across the pass
Summary: See D37528 for a previous (non-deferred) version of this patch and its description.
Preserves dominance in a deferred manner using a new class DeferredDominance. This reduces the performance impact of updating the DominatorTree at every edge insertion and deletion. A user may call DDT->flush() within JumpThreading for an up-to-date DT. This patch currently has one flush() at the end of runImpl() to ensure DT is preserved across the pass.
LVI is also preserved to help subsequent passes such as CorrelatedValuePropagation. LVI is simpler to maintain and is done immediately (not deferred). The code to perform the preversation was minimally altered and simply marked as preserved for the PassManager to be informed.
This extends the analysis available to JumpThreading for future enhancements such as threading across loop headers.
Reviewers: dberlin, kuhar, sebpop
Reviewed By: kuhar, sebpop
Subscribers: mgorny, dmgreen, kuba, rnk, rsmith, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D40146
llvm-svn: 322401
show more ...
|
#
b2ec02ba |
| 05-Jan-2018 |
Vedant Kumar <vsk@apple.com> |
[Utils] Simplify salvageDebugInfo, NFCI
Having a single call to findDbgUsers() allows salvageDebugInfo() to return earlier.
Differential Revision: https://reviews.llvm.org/D41787
llvm-svn: 321915
|
#
cd78ddc1 |
| 04-Jan-2018 |
Reid Kleckner <rnk@google.com> |
Revert "[JumpThreading] Preservation of DT and LVI across the pass"
This reverts r321825, it causes crashes in Chromium. Reproducer forthcoming.
llvm-svn: 321832
|
#
cdad6c0b |
| 04-Jan-2018 |
Brian M. Rzycki <brzycki@gmail.com> |
[JumpThreading] Preservation of DT and LVI across the pass
Summary: See D37528 for a previous (non-deferred) version of this patch and its description.
Preserves dominance in a deferred manner usin
[JumpThreading] Preservation of DT and LVI across the pass
Summary: See D37528 for a previous (non-deferred) version of this patch and its description.
Preserves dominance in a deferred manner using a new class DeferredDominance. This reduces the performance impact of updating the DominatorTree at every edge insertion and deletion. A user may call DDT->flush() within JumpThreading for an up-to-date DT. This patch currently has one flush() at the end of runImpl() to ensure DT is preserved across the pass.
LVI is also preserved to help subsequent passes such as CorrelatedValuePropagation. LVI is simpler to maintain and is done immediately (not deferred). The code to perfom the preversation was minimally altered and was simply marked as preserved for the PassManager to be informed.
This extends the analysis available to JumpThreading for future enhancements. One example is loop boundary threading.
Reviewers: dberlin, kuhar, sebpop
Reviewed By: kuhar, sebpop
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D40146
llvm-svn: 321825
show more ...
|
#
0512bf5a |
| 31-Dec-2017 |
Davide Italiano <davide@freebsd.org> |
[Utils/Local] Use `auto` when the type is obvious. NFCI.
llvm-svn: 321605
|
#
5dd1c587 |
| 31-Dec-2017 |
Davide Italiano <davide@freebsd.org> |
[Utils] Remove commented debug message. NFCI.
llvm-svn: 321604
|
#
c722e265 |
| 15-Dec-2017 |
Sanjay Patel <spatel@rotateright.com> |
fix typo in comment and remove inaccurate comment; NFC
llvm-svn: 320838
|
#
580bc3c8 |
| 13-Dec-2017 |
Brian M. Rzycki <brzycki@gmail.com> |
Reverting [JumpThreading] Preservation of DT and LVI across the pass
Stage 2 bootstrap failed: http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules-2/builds/14434
llvm-svn: 320641
|
#
d989af98 |
| 13-Dec-2017 |
Brian M. Rzycki <brzycki@gmail.com> |
[JumpThreading] Preservation of DT and LVI across the pass
Summary: See D37528 for a previous (non-deferred) version of this patch and its description.
Preserves dominance in a deferred manner usin
[JumpThreading] Preservation of DT and LVI across the pass
Summary: See D37528 for a previous (non-deferred) version of this patch and its description.
Preserves dominance in a deferred manner using a new class DeferredDominance. This reduces the performance impact of updating the DominatorTree at every edge insertion and deletion. A user may call DDT->flush() within JumpThreading for an up-to-date DT. This patch currently has one flush() at the end of runImpl() to ensure DT is preserved across the pass.
LVI is also preserved to help subsequent passes such as CorrelatedValuePropagation. LVI is simpler to maintain and is done immediately (not deferred). The code to perfom the preversation was minimally altered and was simply marked as preserved for the PassManager to be informed.
This extends the analysis available to JumpThreading for future enhancements. One example is loop boundary threading.
Reviewers: dberlin, kuhar, sebpop
Reviewed By: kuhar, sebpop
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D40146
llvm-svn: 320612
show more ...
|