diff options
author | Chris Lattner <sabre@nondot.org> | 2006-03-12 00:38:57 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-03-12 00:38:57 +0000 |
commit | 53fbf2a8e810bbdf5ad5d7808fabe9ae4f3497e2 (patch) | |
tree | 73ac21c09cbb6a8daf0a5f62aed911de782345f4 /docs/CommandGuide/man | |
parent | aaf15825494fce98ac8a54dde36711f9ed5f1418 (diff) |
As a pending queue data structure to keep track of instructions whose
operands have all issued, but whose results are not yet available. This
allows us to compile:
int G;
int test(int A, int B, int* P) {
return (G+A)*(B+1);
}
to:
_test:
lis r2, ha16(L_G$non_lazy_ptr)
addi r4, r4, 1
lwz r2, lo16(L_G$non_lazy_ptr)(r2)
lwz r2, 0(r2)
add r2, r2, r3
mullw r3, r2, r4
blr
instead of this, which has a stall between the lis/lwz:
_test:
lis r2, ha16(L_G$non_lazy_ptr)
lwz r2, lo16(L_G$non_lazy_ptr)(r2)
addi r4, r4, 1
lwz r2, 0(r2)
add r2, r2, r3
mullw r3, r2, r4
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26716 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/CommandGuide/man')
0 files changed, 0 insertions, 0 deletions