Mercurial > projects > ddmd
view dmd/UnrolledLoopStatement.d @ 56:51605de93870
TupleExp.optimize
UnrolledLoopStatement.ctor
UnrolledLoopStatement.semantic
UnrolledLoopStatement.blockExit
OrOrExp.checkSideEffect
FuncExp.syntaxCopy
FuncLiteralDeclaration.syntaxCopy
WhileStatement.hasBreak
StructInitializer.toExpression
StructLiteralExp.ctor
StructLiteralExp.optimize
BinExp.commonSemanticAssign
ModAssignExp.opId
Argument.isLazyArray
CommaExp.implicitConvTo
CommaExp.castTo
TypeClass.isBaseOf
createTypeInfoArray
TypeTuple.getTypeInfoDeclaration
TypeInfoTupleDeclaration.ctor
TypeNext.constConv
XorExp.implicitConvTo
TemplateParameter.isTemplateValueParameter
author | korDen |
---|---|
date | Sat, 21 Aug 2010 14:16:53 +0400 |
parents | 10317f0c89a5 |
children | cab4c37afb89 |
line wrap: on
line source
module dmd.UnrolledLoopStatement; import dmd.Expression; import dmd.Statement; import dmd.InterState; import dmd.ArrayTypes; import dmd.OutBuffer; import dmd.Loc; import dmd.Scope; import dmd.InlineCostState; import dmd.InlineDoState; import dmd.IRState; import dmd.HdrGenState; import dmd.InlineScanState; import dmd.BE; class UnrolledLoopStatement : Statement { Statements statements; this(Loc loc, Statements s) { super(loc); statements = s; } Statement syntaxCopy() { assert(false); } Statement semantic(Scope sc) { //printf("UnrolledLoopStatement.semantic(this = %p, sc = %p)\n", this, sc); sc.noctor++; Scope scd = sc.push(); scd.sbreak = this; scd.scontinue = this; for (size_t i = 0; i < statements.dim; i++) { Statement s = cast(Statement) statements.data[i]; if (s) { s = s.semantic(scd); statements.data[i] = cast(void*)s; } } scd.pop(); sc.noctor--; return this; } bool hasBreak() { assert(false); } bool hasContinue() { assert(false); } bool usesEH() { assert(false); } BE blockExit() { BE result = BEfallthru; for (size_t i = 0; i < statements.dim; i++) { Statement s = cast(Statement) statements.data[i]; if (s) { int r = s.blockExit(); result |= r & ~(BEbreak | BEcontinue); } } return result; } bool comeFrom() { assert(false); } Expression interpret(InterState* istate) { assert(false); } void toCBuffer(OutBuffer buf, HdrGenState* hgs) { assert(false); } int inlineCost(InlineCostState* ics) { assert(false); } Expression doInline(InlineDoState ids) { assert(false); } Statement inlineScan(InlineScanState* iss) { assert(false); } void toIR(IRState* irs) { assert(false); } }