llvm/test/Transforms/Reassociate
Mikael Holmen 6dbfbe1563 [Reassociate] Do not drop debug location if replacement is missing
Summary:
When reassociating an expression, do not drop the instruction's
original debug location in case the replacement location is
missing.

The debug location must at least not be dropped for inlinable
callsites of debug-info-bearing functions in debug-info-bearing
functions. Failing to do so would result in an "inlinable function "
"call in a function with debug info must have a !dbg location"
error in the verifier.

As preserving the original debug location is not expected
to result in overly jumpy debug line information, it is
preserved for all other cases too.

This fixes PR34231:
https://bugs.llvm.org/show_bug.cgi?id=34231

Original patch by David Stenberg

Reviewers: davide, craig.topper, mcrosier, dblaikie, aprantl

Reviewed By: davide, aprantl

Subscribers: aprantl

Differential Revision: https://reviews.llvm.org/D36865

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311642 91177308-0d34-0410-b5e6-96231b3b80d8
2017-08-24 09:05:00 +00:00
..
2002-05-15-AgressiveSubMove.ll
2002-05-15-MissedTree.ll
2002-05-15-SubReassociate.ll
2002-07-09-DominanceProblem.ll
2003-08-12-InfiniteLoop.ll
2005-09-01-ArrayOutOfBounds.ll
2006-04-27-ReassociateVector.ll
2011-01-26-UseAfterFree.ll
2012-05-08-UndefLeak.ll
2012-06-08-InfiniteLoop.ll
absorption.ll
add_across_block_crash.ll
basictest.ll
canonicalize-neg-const.ll [Reassociate] Don't canonicalize x + (-Constant * y) -> x - (Constant * y).. 2017-08-23 14:10:06 +00:00
commute.ll
crash2.ll
crash.ll
deadcode.ll
erase_inst_made_change.ll [Reassociate] Make sure EraseInst sets MadeChange 2017-06-27 05:32:13 +00:00
factorize-again.ll
fast-AgressiveSubMove.ll
fast-ArrayOutOfBounds.ll
fast-basictest.ll
fast-fp-commute.ll
fast-mightymul.ll
fast-MissedTree.ll
fast-multistep.ll
fast-ReassociateVector.ll
fast-SubReassociate.ll
fp-commute.ll
fp-expr.ll
inverses.ll
keep-debug-loc.ll [Reassociate] Do not drop debug location if replacement is missing 2017-08-24 09:05:00 +00:00
looptest.ll
mightymul.ll
min_int.ll
mixed-fast-nonfast-fp.ll
mulfactor.ll
multistep.ll
negation1.ll
negation.ll
no-op.ll
optional-flags.ll
otherops.ll
pr12245.ll
pr21205.ll
pr28367.ll
propagate-flags.ll
reassoc-intermediate-fnegs.ll
reassociate-deadinst.ll
repeats.ll
secondary.ll
shift-factor.ll
shifttest.ll
subtest.ll
vaarg_movable.ll
wrap-flags.ll
xor_reassoc.ll