diff options
author | Evan Cheng <evan.cheng@apple.com> | 2010-02-15 19:41:07 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2010-02-15 19:41:07 +0000 |
commit | 014bf215c3457bb34fee348265e8f63a70b4d503 (patch) | |
tree | 6ded73d75a50bf06d3057a79019eea17e1c466b1 /lib/Target/SystemZ/SystemZISelDAGToDAG.cpp | |
parent | a7445340daab3bfb15968a414090292d37cc954b (diff) | |
download | llvm-014bf215c3457bb34fee348265e8f63a70b4d503.tar.gz llvm-014bf215c3457bb34fee348265e8f63a70b4d503.tar.bz2 llvm-014bf215c3457bb34fee348265e8f63a70b4d503.tar.xz |
Split SelectionDAGISel::IsLegalAndProfitableToFold to
IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use.
This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96255 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/SystemZ/SystemZISelDAGToDAG.cpp')
-rw-r--r-- | lib/Target/SystemZ/SystemZISelDAGToDAG.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp b/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp index f6f632d576..7f0d9fb4d7 100644 --- a/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp +++ b/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp @@ -594,8 +594,7 @@ bool SystemZDAGToDAGISel::SelectLAAddr(SDNode *Op, SDValue Addr, bool SystemZDAGToDAGISel::TryFoldLoad(SDNode *P, SDValue N, SDValue &Base, SDValue &Disp, SDValue &Index) { if (ISD::isNON_EXTLoad(N.getNode()) && - N.hasOneUse() && - IsLegalAndProfitableToFold(N.getNode(), P, P)) + IsLegalToFold(N, P, P)) return SelectAddrRRI20(P, N.getOperand(1), Base, Disp, Index); return false; } |