diff options
| author | Hal Finkel <hfinkel@anl.gov> | 2012-06-21 20:10:48 +0000 |
|---|---|---|
| committer | Hal Finkel <hfinkel@anl.gov> | 2012-06-21 20:10:48 +0000 |
| commit | 2bbc9193b4a9b4e53ec114fd98a587a2917c365b (patch) | |
| tree | 4bd6fed2a1b0f884da9900d3f3875d722494339a /lib/Target/PowerPC | |
| parent | 343c32a39cb824f612f99b62fc1433ff20e38fb4 (diff) | |
| download | external_llvm-2bbc9193b4a9b4e53ec114fd98a587a2917c365b.zip external_llvm-2bbc9193b4a9b4e53ec114fd98a587a2917c365b.tar.gz external_llvm-2bbc9193b4a9b4e53ec114fd98a587a2917c365b.tar.bz2 | |
Treat TargetGlobalAddress as a constant for the purpose of matching pre-inc stores on PPC.
Thanks to Tobias von Koch for pointing out this problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158932 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC')
| -rw-r--r-- | lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index b53deda..a00f686 100644 --- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -111,7 +111,8 @@ namespace { /// immediate field. Because preinc imms have already been validated, just /// accept it. bool SelectAddrImmOffs(SDValue N, SDValue &Out) const { - if (isa<ConstantSDNode>(N)) { + if (isa<ConstantSDNode>(N) || N.getOpcode() == PPCISD::Lo || + N.getOpcode() == ISD::TargetGlobalAddress) { Out = N; return true; } @@ -123,6 +124,10 @@ namespace { /// index field. Because preinc imms have already been validated, just /// accept it. bool SelectAddrIdxOffs(SDValue N, SDValue &Out) const { + if (isa<ConstantSDNode>(N) || N.getOpcode() == PPCISD::Lo || + N.getOpcode() == ISD::TargetGlobalAddress) + return false; + Out = N; return true; } |
