Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Phabricator somehow shows wrong diff after patch update. Correct diff is
- if (!CI) continue; + if (!CI || isa<DbgInfoIntrinsic>(CI) || CI->isLifetimeStartOrEnd()) + continue;
There were no issues, I just noticed in debug output that that pass tries to process staff like llvm.lifetime.start
llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp | ||
---|---|---|
1729 | Can also use instructionsWithoutDebug iterator instead |
But how did it work?! It should have skipped any call which is not a lifetime intrinsic.
I assume it never did anything to a library function on which it were supposed to work, not since that check was added.
Which means we have no single test for that. Which in turn means we need to add this test now.
Hmm... I did not mean that. I meant we seem to miss a test the pass does what it expected to do, not that it skips what it should not process.
How does that work? This is a simple thing: this code shall never been executed given the reverted condition. Your change is absolutely right, but what did it start to execute which so obviously was not executed and tested before?
Can also use instructionsWithoutDebug iterator instead