Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
dmd.optimize
Perform constant folding.
Authors:
License:
Source optimize.d
- Expression
expandVar
(intresult
, VarDeclarationv
); - If variable has a const initializer, return that initializer.Returns:initializer if there is one, null if not, ErrorExp if error
- package void
setLengthVarIfKnown
(VarDeclarationlengthVar
, Expressionarr
); - It is possible for constant folding to change an array expression of unknown length, into one where the length is known. If the expression 'arr' is a literal, set lengthVar to be its length.Parameters:
VarDeclaration lengthVar
variable declaration for the .length property Expression arr
String, ArrayLiteral, or of TypeSArray - package void
setLengthVarIfKnown
(VarDeclarationlengthVar
, Typetype
); - Same as above, but determines the length from 'type'.Parameters:
VarDeclaration lengthVar
variable declaration for the .length property Type type
TypeSArray - Expression
optimize
(Expressione
, intresult
, boolkeepLvalue
= false); - Constant fold an Expression.Parameters:
Expression e
expression to const fold; this may get modified in-place int result
WANTvalue, WANTexpand, or both bool keepLvalue
e
is an lvalue, and keep it as an lvalue since it is an argument to a ref or out parameter, or the operand of & operatorReturns:Constant folded version ofe
Copyright © 1999-2024 by the D Language Foundation | Page generated by
Ddoc on Tue Nov 19 00:23:46 2024