From: Chris Lattner Date: Mon, 13 Mar 2006 06:52:22 +0000 (+0000) Subject: remove two implemented items X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=2e8a77ff42a325463f40a67e46b2eeb9ce05a350;p=oota-llvm.git remove two implemented items git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26728 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 220bd9e5208..a28486091cb 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -56,20 +56,6 @@ Number 1 is the preferred solution. //===---------------------------------------------------------------------===// -DAG combine this into mul A, 8: - -int %test(int %A) { - %B = mul int %A, 8 ;; shift - %C = add int %B, 7 ;; dead, no demanded bits. - %D = and int %C, -8 ;; dead once add is gone. - ret int %D -} - -This sort of thing occurs in the alloca lowering code and other places that -are generating alignment of an already aligned value. - -//===---------------------------------------------------------------------===// - Turn this into a signed shift right in instcombine: int f(unsigned x) { @@ -81,14 +67,6 @@ http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01492.html //===---------------------------------------------------------------------===// -We should reassociate: -int f(int a, int b){ return a * a + 2 * a * b + b * b; } -into: -int f(int a, int b) { return a * (a + 2 * b) + b * b; } -to eliminate a multiply. - -//===---------------------------------------------------------------------===// - On targets with expensive 64-bit multiply, we could LSR this: for (i = ...; ++i) {