Remove from the TODO list those optimizations that are already handled by

constant folding implemented in lib/Transforms/Utils/Local.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21604 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer
2005-04-28 18:05:16 +00:00
parent 8441a01146
commit 5624c75f9f

View File

@@ -744,40 +744,21 @@ bool getConstantStringLength(Value* V, uint64_t& len )
// TODO: // TODO:
// Additional cases that we need to add to this file: // Additional cases that we need to add to this file:
// //
// abs:
// * abs(cnst) -> cnst'
//
// atan:
// * atan(0.0) -> 0.0
// * atan(1.0) -> pi/4
//
// cbrt: // cbrt:
// * cbrt(constant) -> constant'
// * cbrt(expN(X)) -> expN(x/3) // * cbrt(expN(X)) -> expN(x/3)
// * cbrt(sqrt(x)) -> pow(x,1/6) // * cbrt(sqrt(x)) -> pow(x,1/6)
// * cbrt(sqrt(x)) -> pow(x,1/9) // * cbrt(sqrt(x)) -> pow(x,1/9)
// //
// ceil, ceilf, ceill:
// * ceil(constant) -> constant'
//
// cos, cosf, cosl: // cos, cosf, cosl:
// * cos(0.0) -> 1.0 // * cos(-x) -> cos(x)
// * cox(-x) -> cos(x)
// //
// exp, expf, expl: // exp, expf, expl:
// * exp(0.0) -> 1.0
// * exp(int) -> contant' // * exp(int) -> contant'
// * exp(log(x)) -> x // * exp(log(x)) -> x
// //
// fabs, fabsf, fabsl:
// * fabs(cnst) -> cnst'
//
// ffs, ffsl, ffsll: // ffs, ffsl, ffsll:
// * ffs(cnst) -> cnst' // * ffs(cnst) -> cnst'
// //
// floor, floorf, floorl:
// * floor(cnst) -> cnst'
//
// fprintf: // fprintf:
// * fprintf(file,fmt) -> fputs(fmt,file) // * fprintf(file,fmt) -> fputs(fmt,file)
// (if fmt is constant and constains no % characters) // (if fmt is constant and constains no % characters)
@@ -797,7 +778,6 @@ bool getConstantStringLength(Value* V, uint64_t& len )
// * isdigit(c) -> (unsigned)(c) - '0' <= 9 // * isdigit(c) -> (unsigned)(c) - '0' <= 9
// //
// log, logf, logl: // log, logf, logl:
// * log(1.0) -> 0.0
// * log(exp(x)) -> x // * log(exp(x)) -> x
// * log(x**y) -> y*log(x) // * log(x**y) -> y*log(x)
// * log(exp(y)) -> y*log(e) // * log(exp(y)) -> y*log(e)
@@ -829,9 +809,6 @@ bool getConstantStringLength(Value* V, uint64_t& len )
// (for n=1,2,4,8) // (for n=1,2,4,8)
// //
// pow, powf, powl: // pow, powf, powl:
// * pow(1.0,y) -> 1.0
// * pow(x,0.0) -> 1.0
// * pow(x,1.0) -> x
// * pow(x,-1.0) -> 1.0/x // * pow(x,-1.0) -> 1.0/x
// * pow(x,0.5) -> sqrt(x) // * pow(x,0.5) -> sqrt(x)
// * pow(cst1,cst2) -> const1**const2 // * pow(cst1,cst2) -> const1**const2
@@ -849,9 +826,6 @@ bool getConstantStringLength(Value* V, uint64_t& len )
// * signbit(cnst) -> cnst' // * signbit(cnst) -> cnst'
// * signbit(nncst) -> 0 (if pstv is a non-negative constant) // * signbit(nncst) -> 0 (if pstv is a non-negative constant)
// //
// sin, sinf, sinl:
// * sin(0.0) -> 0.0
//
// sprintf: // sprintf:
// * sprintf(dest,fmt) -> strcpy(dest,fmt) // * sprintf(dest,fmt) -> strcpy(dest,fmt)
// (if fmt is constant and constains no % characters) // (if fmt is constant and constains no % characters)
@@ -859,7 +833,6 @@ bool getConstantStringLength(Value* V, uint64_t& len )
// (only if the sprintf result is not used) // (only if the sprintf result is not used)
// //
// sqrt, sqrtf, sqrtl: // sqrt, sqrtf, sqrtl:
// * sqrt(cnst) -> cnst'
// * sqrt(expN(x)) -> expN(x*0.5) // * sqrt(expN(x)) -> expN(x*0.5)
// * sqrt(Nroot(x)) -> pow(x,1/(2*N)) // * sqrt(Nroot(x)) -> pow(x,1/(2*N))
// * sqrt(pow(x,y)) -> pow(|x|,y*0.5) // * sqrt(pow(x,y)) -> pow(|x|,y*0.5)
@@ -914,7 +887,6 @@ bool getConstantStringLength(Value* V, uint64_t& len )
// (if s1 and s2 are constant strings) // (if s1 and s2 are constant strings)
// //
// tan, tanf, tanl: // tan, tanf, tanl:
// * tan(0.0) -> 0.0
// * tan(atan(x)) -> x // * tan(atan(x)) -> x
// //
// toascii: // toascii: