History log of /llvm-project/llvm/lib/Transforms/Utils/Local.cpp (Results 451 – 475 of 910)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...


1...<<11121314151617181920>>...37