diff options
author | Chris Lattner <sabre@nondot.org> | 2005-12-08 07:13:28 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-12-08 07:13:28 +0000 |
commit | 62c08dd4a1a1e8755ec6cc7cd458fa532c8b5c85 (patch) | |
tree | 73aeb6c0c7e42980423ef999cbaeb70b4f83b78c | |
parent | f20da7e1a76d785cd24bfe4928c460def84049a8 (diff) |
Add another important case we miss
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24639 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/PowerPC/README.txt | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/README.txt b/lib/Target/PowerPC/README.txt index 580affb688..2897655d2d 100644 --- a/lib/Target/PowerPC/README.txt +++ b/lib/Target/PowerPC/README.txt @@ -222,3 +222,22 @@ The two-addr pass or RA needs to learn when it is profitable to commute an instruction to avoid a copy AFTER the 2-addr instruction. The 2-addr pass currently only commutes to avoid inserting a copy BEFORE the two addr instr. +===-------------------------------------------------------------------------=== + +Compile offsets from allocas: + +int *%test() { + %X = alloca { int, int } + %Y = getelementptr {int,int}* %X, int 0, uint 1 + ret int* %Y +} + +into a single add, not two: + +_test: + addi r2, r1, -8 + addi r3, r2, 4 + blr + +--> important for C++. + |