diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-11-05 07:28:37 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-11-05 07:28:37 +0000 | 
| commit | e9ff0eaf5b025b630ae1d1fa73a6c757a8223184 (patch) | |
| tree | 8652000271009b88c462753e8dfc9b518691f171 /llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp | |
| parent | 904dbb4a27db827319aa1058560b16384e32615e (diff) | |
| download | bcm5719-llvm-e9ff0eaf5b025b630ae1d1fa73a6c757a8223184.tar.gz bcm5719-llvm-e9ff0eaf5b025b630ae1d1fa73a6c757a8223184.zip | |
Turn srem -> urem when neither input has their sign bit set.  This triggers
8 times in vortex, allowing the srems to be turned into shrs:
OLD:    %tmp.104 = rem int %tmp.5.i37, 16               ; <int> [#uses=1]
NEW:    %tmp.104 = rem uint %tmp.5.i37, 16              ; <uint> [#uses=0]
OLD:    %tmp.98 = rem int %tmp.5.i24, 16                ; <int> [#uses=1]
NEW:    %tmp.98 = rem uint %tmp.5.i24, 16               ; <uint> [#uses=0]
OLD:    %tmp.91 = rem int %tmp.5.i19, 8         ; <int> [#uses=1]
NEW:    %tmp.91 = rem uint %tmp.5.i19, 8                ; <uint> [#uses=0]
OLD:    %tmp.88 = rem int %tmp.5.i14, 8         ; <int> [#uses=1]
NEW:    %tmp.88 = rem uint %tmp.5.i14, 8                ; <uint> [#uses=0]
OLD:    %tmp.85 = rem int %tmp.5.i9, 1024               ; <int> [#uses=2]
NEW:    %tmp.85 = rem uint %tmp.5.i9, 1024              ; <uint> [#uses=0]
OLD:    %tmp.82 = rem int %tmp.5.i, 512         ; <int> [#uses=2]
NEW:    %tmp.82 = rem uint %tmp.5.i1, 512               ; <uint> [#uses=0]
OLD:    %tmp.48.i = rem int %tmp.5.i.i161, 4            ; <int> [#uses=1]
NEW:    %tmp.48.i = rem uint %tmp.5.i.i161, 4           ; <uint> [#uses=0]
OLD:    %tmp.20.i2 = rem int %tmp.5.i.i, 4              ; <int> [#uses=1]
NEW:    %tmp.20.i2 = rem uint %tmp.5.i.i, 4             ; <uint> [#uses=0]
it also occurs 9 times in gcc, but with odd constant divisors (1009 and 61)
so the payoff isn't as great.
llvm-svn: 24189
Diffstat (limited to 'llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp')
0 files changed, 0 insertions, 0 deletions

