summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-05-14 01:08:28 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-05-14 01:08:28 +0000
commit9b8c8cda0dc2abdecb9c64e1ca2f169be4d56c73 (patch)
tree45e7afd75c36ec0329633149ef8cec474f55ccea /llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
parent5a1cf70ac3e1cb88b7df8295ca096b4ab4d1ab55 (diff)
downloadbcm5719-llvm-9b8c8cda0dc2abdecb9c64e1ca2f169be4d56c73.tar.gz
bcm5719-llvm-9b8c8cda0dc2abdecb9c64e1ca2f169be4d56c73.zip
Recommit r208506: DebugInfo: Include lexical scopes in inlined subroutines.
This was reverted in r208642 due to regressions surrounding file changes within lexical scopes causing inlining information to be lost. The issue was in LexicalScopes::getOrCreateInlinedScope, where I was previously testing "isLexicalBlock" which is false for "DILexicalBlockFile" (a scope used to represent changes in the current file name) and assuming it was then a function (breaking out of the inlined scope path and reaching for the parent non-inlined scopes). By inverting the condition and testing for "isSubprogram" the correct behavior is attained. (also found some weirdness in Clang, see r208742 when reducing this test case - the resulting test case doesn't apply with the Clang fix, but I've added a more realistic test case to inline-scopes.ll which does reproduce the issue and demonstrate the fix) llvm-svn: 208748
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud