diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2009-12-18 01:59:21 +0000 | 
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2009-12-18 01:59:21 +0000 | 
| commit | 3dfd04e2b76ab23e61caedf9549f4ad421d87853 (patch) | |
| tree | 07f99bd443c2872ee2ad093c74c7c4cc30df6155 /llvm/lib/Target/X86 | |
| parent | 18fa5686f6e06c60bcbfd20a6418c2e5bee8c856 (diff) | |
| download | bcm5719-llvm-3dfd04e2b76ab23e61caedf9549f4ad421d87853.tar.gz bcm5719-llvm-3dfd04e2b76ab23e61caedf9549f4ad421d87853.zip  | |
Re-apply 91623 now that I actually know what I was trying to do.
llvm-svn: 91655
Diffstat (limited to 'llvm/lib/Target/X86')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 26 | 
1 files changed, 1 insertions, 25 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index a9a78be3e31..846c23f0a09 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -50,9 +50,6 @@  #include "llvm/ADT/Statistic.h"  using namespace llvm; -#include "llvm/Support/CommandLine.h" -static cl::opt<bool> AvoidDupAddrCompute("x86-avoid-dup-address", cl::Hidden); -  STATISTIC(NumLoadMoved, "Number of loads moved below TokenFactor");  //===----------------------------------------------------------------------===// @@ -1275,28 +1272,7 @@ bool X86DAGToDAGISel::SelectAddr(SDValue Op, SDValue N, SDValue &Base,                                   SDValue &Scale, SDValue &Index,                                   SDValue &Disp, SDValue &Segment) {    X86ISelAddressMode AM; -  bool Done = false; -  if (AvoidDupAddrCompute && !N.hasOneUse()) { -    unsigned Opcode = N.getOpcode(); -    if (Opcode != ISD::Constant && Opcode != ISD::FrameIndex && -        Opcode != X86ISD::Wrapper && Opcode != X86ISD::WrapperRIP) { -      // If we are able to fold N into addressing mode, then we'll allow it even -      // if N has multiple uses. In general, addressing computation is used as -      // addresses by all of its uses. But watch out for CopyToReg uses, that -      // means the address computation is liveout. It will be computed by a LEA -      // so we want to avoid computing the address twice. -      for (SDNode::use_iterator UI = N.getNode()->use_begin(), -             UE = N.getNode()->use_end(); UI != UE; ++UI) { -        if (UI->getOpcode() == ISD::CopyToReg) { -          MatchAddressBase(N, AM); -          Done = true; -          break; -        } -      } -    } -  } - -  if (!Done && MatchAddress(N, AM)) +  if (MatchAddress(N, AM))      return false;    EVT VT = N.getValueType();  | 

