Changes in directory llvm/lib/Target/PowerPC:
PPCISelDAGToDAG.cpp updated: 1.217 -> 1.218 --- Log message: allow the offset of a preinc'd load to be the low-part of a global. This produces this clever code: _millisecs: lis r2, ha16(_Time.1182) lwzu r3, lo16(_Time.1182)(r2) lwz r2, 4(r2) addic r4, r2, 1 addze r3, r3 blr instead of this: _millisecs: lis r2, ha16(_Time.1182) la r3, lo16(_Time.1182)(r2) lwz r2, lo16(_Time.1182)(r2) lwz r3, 4(r3) addic r4, r3, 1 addze r3, r2 blr for: long %millisecs() { %tmp = load long* %Time.1182 ; <long> [#uses=1] %tmp1 = add long %tmp, 1 ; <long> [#uses=1] ret long %tmp1 } --- Diffs of the changes: (+2 -1) PPCISelDAGToDAG.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp diff -u llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.217 llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.218 --- llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.217 Fri Nov 10 17:58:44 2006 +++ llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp Fri Nov 10 22:53:30 2006 @@ -856,7 +856,8 @@ } SDOperand Offset = LD->getOffset(); - if (isa<ConstantSDNode>(Offset)) { + if (isa<ConstantSDNode>(Offset) || + Offset.getOpcode() == ISD::TargetGlobalAddress) { SDOperand Chain = LD->getChain(); SDOperand Base = LD->getBasePtr(); AddToISelQueue(Chain); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits