Teach GatherAllAliases to reason about inline assembly nodes and
associated glued CopyToReg/CopyFromReg nodes.
This fixes PR9517.
Paths
| Differential D59039
[DAGCombine] Allow GatherAllAliases to pass through inline asm calls and glued nodes. AcceptedPublic Authored by niravd on Mar 6 2019, 12:16 PM.
Details Summary Teach GatherAllAliases to reason about inline assembly nodes and This fixes PR9517.
Diff Detail
Event TimelineHerald added subscribers: atanasyan, jrtc27, eraman, sdardis. · View Herald TranscriptMar 6 2019, 12:17 PM niravd retitled this revision from [DAGCombine] Refactor GatherAllAliases. NFCI. to [DAGCombine] Allow GatherAllAliases to pass through inline asm calls and glued nodes..Mar 6 2019, 12:19 PM Comment Actions This is a refactored and rebased version of D49691 so that it looks reasonable on Phabricator. I've factored out a initial NFC patch (the first snapshot in history) to highlight the actual functional change. Comment Actions Ping. Just a reminder to ease review: The first diff in the history is an extracted NFC refactoring and difference between Diffs 1 and 2 highlight the actual change.
Comment Actions Realized explanatory comment and associate fixup had been lost in patch stack. Folding it back in.
niravd added inline comments.
niravd marked an inline comment as done. Comment ActionsCheck HasSideEffects in analysis for inlineasm.
This revision is now accepted and ready to land.Mar 28 2019, 1:01 PM
Revision Contents
Diff 192175 llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/Mips/cconv/arguments-varargs.ll
llvm/test/CodeGen/Thumb/frame-access.ll
llvm/test/CodeGen/X86/inline-asm-fpstack.ll
llvm/test/CodeGen/X86/pr9517.ll
|
"If this had a glued output, return C"?
I don't follow why it matters if the output is glued, given there isn't a glue input. If I'm understanding correctly, if the copy isn't glued, in it doesn't modify memory. If the copy is glued, the only way to reach this case should be through a recursive call of ImproveChain. Or are you just trying to be conservative here?