diff options
author | Chris Lattner <sabre@nondot.org> | 2006-11-11 04:53:30 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-11-11 04:53:30 +0000 |
commit | c5102bfc7c8480eb62b1c57075afc7f0900cb2db (patch) | |
tree | 0ccb83062bb4b3d44ce7a1f11478bb5d74069dc4 /llvm/lib/CodeGen/MachineInstr.cpp | |
parent | 2ff632c54b7df90eeb32bfb2f807f6ef45018418 (diff) | |
download | llvm-c5102bfc7c8480eb62b1c57075afc7f0900cb2db.zip llvm-c5102bfc7c8480eb62b1c57075afc7f0900cb2db.tar.gz llvm-c5102bfc7c8480eb62b1c57075afc7f0900cb2db.tar.bz2 |
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
}
llvm-svn: 31673
Diffstat (limited to 'llvm/lib/CodeGen/MachineInstr.cpp')
0 files changed, 0 insertions, 0 deletions