mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 16:33:28 +00:00
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:
parent
8441a01146
commit
5624c75f9f
@ -744,40 +744,21 @@ bool getConstantStringLength(Value* V, uint64_t& len )
|
||||
// TODO:
|
||||
// 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(constant) -> constant'
|
||||
// * cbrt(expN(X)) -> expN(x/3)
|
||||
// * cbrt(sqrt(x)) -> pow(x,1/6)
|
||||
// * cbrt(sqrt(x)) -> pow(x,1/9)
|
||||
//
|
||||
// ceil, ceilf, ceill:
|
||||
// * ceil(constant) -> constant'
|
||||
//
|
||||
// cos, cosf, cosl:
|
||||
// * cos(0.0) -> 1.0
|
||||
// * cox(-x) -> cos(x)
|
||||
// * cos(-x) -> cos(x)
|
||||
//
|
||||
// exp, expf, expl:
|
||||
// * exp(0.0) -> 1.0
|
||||
// * exp(int) -> contant'
|
||||
// * exp(log(x)) -> x
|
||||
//
|
||||
// fabs, fabsf, fabsl:
|
||||
// * fabs(cnst) -> cnst'
|
||||
//
|
||||
// ffs, ffsl, ffsll:
|
||||
// * ffs(cnst) -> cnst'
|
||||
//
|
||||
// floor, floorf, floorl:
|
||||
// * floor(cnst) -> cnst'
|
||||
//
|
||||
// fprintf:
|
||||
// * fprintf(file,fmt) -> fputs(fmt,file)
|
||||
// (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
|
||||
//
|
||||
// log, logf, logl:
|
||||
// * log(1.0) -> 0.0
|
||||
// * log(exp(x)) -> x
|
||||
// * log(x**y) -> y*log(x)
|
||||
// * log(exp(y)) -> y*log(e)
|
||||
@ -829,9 +809,6 @@ bool getConstantStringLength(Value* V, uint64_t& len )
|
||||
// (for n=1,2,4,8)
|
||||
//
|
||||
// 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,0.5) -> sqrt(x)
|
||||
// * pow(cst1,cst2) -> const1**const2
|
||||
@ -849,9 +826,6 @@ bool getConstantStringLength(Value* V, uint64_t& len )
|
||||
// * signbit(cnst) -> cnst'
|
||||
// * signbit(nncst) -> 0 (if pstv is a non-negative constant)
|
||||
//
|
||||
// sin, sinf, sinl:
|
||||
// * sin(0.0) -> 0.0
|
||||
//
|
||||
// sprintf:
|
||||
// * sprintf(dest,fmt) -> strcpy(dest,fmt)
|
||||
// (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)
|
||||
//
|
||||
// sqrt, sqrtf, sqrtl:
|
||||
// * sqrt(cnst) -> cnst'
|
||||
// * sqrt(expN(x)) -> expN(x*0.5)
|
||||
// * sqrt(Nroot(x)) -> pow(x,1/(2*N))
|
||||
// * 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)
|
||||
//
|
||||
// tan, tanf, tanl:
|
||||
// * tan(0.0) -> 0.0
|
||||
// * tan(atan(x)) -> x
|
||||
//
|
||||
// toascii:
|
||||
|
Loading…
x
Reference in New Issue
Block a user