[X86] Delay creating index register negations during address matching until after...
authorCraig Topper <craig.topper@intel.com>
Wed, 15 May 2019 21:59:53 +0000 (21:59 +0000)
committerCraig Topper <craig.topper@intel.com>
Wed, 15 May 2019 21:59:53 +0000 (21:59 +0000)
commite43bdf144c9a56e465b28217dce3853ef76f5594
tree95bd009831c3c378bc9df1dab848394ef9c51e85
parent8b92bb359eb4e812bacbadca5df36d3212d8f391
[X86] Delay creating index register negations during address matching until after we know for sure the match will succeed

If we're trying to match an LEA, its possible the LEA match will be deemed unprofitable. In which case the negation we created in matchAddress would be left dangling in the SelectionDAG. This could artificially increase use counts for other nodes in the DAG. Though I don't have an example of that. But it just seems like bad form to have dangling nodes in isel.

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

llvm-svn: 360823
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
llvm/test/CodeGen/X86/imul.ll