module volt.semantic.evaluate

Code Map

module volt.semantic.evaluate;


fn fold(exp: ir.Exp, target: TargetInfo) ir.Constant { }
//! Given two expressions, returns true if they are two constant array
//! literals that are equal.
fn areEqualConstantArrays(l: ir.Exp, r: ir.Exp, target: TargetInfo) bool { }
fn fold(exp: ir.Exp, needCopy: bool, target: TargetInfo) ir.Constant { }
//! Fold a composable string.
fn getConstantComposableString(target: TargetInfo, cs: ir.ComposableString) string { }
//! Add a components value to a composable string being folded.
fn addConstantComposableStringComponent(target: TargetInfo, sink: scope (Sink), e: ir.Exp) { }
//! Add a string component to an in progress composable string parse.
fn addConstantComposableStringComponent(sink: scope (Sink), c: ir.Constant) { }
//! Add a primitive type component to a composable string.
fn addConstantComposableStringComponent(sink: scope (Sink), c: ir.Constant, pt: ir.PrimitiveType) { }
fn foldTernary(exp: ir.Exp, ternary: ir.Ternary, target: TargetInfo) ir.Constant { }
fn foldAccessExp(exp: ir.Exp, accessExp: ir.AccessExp, target: TargetInfo) ir.Constant { }
fn foldTypeIdSize(exp: ir.Exp, tid: ir.Typeid, target: TargetInfo) ir.Constant { }
fn foldTypeIdMutableIndirection(exp: ir.Exp, tid: ir.Typeid, target: TargetInfo) ir.Constant { }
fn foldBinOp(exp: ir.Exp, binop: ir.BinOp, target: TargetInfo) ir.Constant { }
fn foldUnary(exp: ir.Exp, unary: ir.Unary, target: TargetInfo) ir.Constant { }
fn foldBinOp(exp: ir.Exp, op: ir.BinOp.Op, cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldUnary(exp: ir.Exp, u: ir.Unary, c: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpOrOr(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpAndAnd(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpOr(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpXor(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpAnd(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpEqual(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpNotEqual(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpLess(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpLessEqual(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpGreaterEqual(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpGreater(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpLS(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpSRS(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpRS(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpAdd(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpSub(cl: ir.Constant, cr: ir.Constant, targert: TargetInfo) ir.Constant { }
fn foldBinOpMul(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpDiv(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpMod(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldBinOpPow(cl: ir.Constant, cr: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldUnaryCast(c: ir.Constant, t: ir.Type, target: TargetInfo) ir.Constant { }
fn foldUnaryMinus(c: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldUnaryPlus(c: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldUnaryNot(c: ir.Constant, target: TargetInfo) ir.Constant { }
fn foldUnaryComplement(c: ir.Constant, target: TargetInfo) ir.Constant { }
fn evaluateOrNull(target: TargetInfo, exp: ir.Exp) ir.Constant { }
fn evaluateOrNull(lp: LanguagePass, current: ir.Scope, exp: ir.Exp) ir.Constant { }
fn evaluate(lp: LanguagePass, current: ir.Scope, exp: ir.Exp) ir.Constant { }
fn needsEvaluation(exp: ir.Exp) bool { }
fn areEqualConstantArrays(l: ir.Exp, r: ir.Exp, target: TargetInfo) bool

Given two expressions, returns true if they are two constant array literals that are equal.

fn getConstantComposableString(target: TargetInfo, cs: ir.ComposableString) string

Fold a composable string.

fn addConstantComposableStringComponent(target: TargetInfo, sink: scope (Sink), e: ir.Exp)

Add a components value to a composable string being folded.

fn addConstantComposableStringComponent(sink: scope (Sink), c: ir.Constant)

Add a string component to an in progress composable string parse.

fn addConstantComposableStringComponent(sink: scope (Sink), c: ir.Constant, pt: ir.PrimitiveType)

Add a primitive type component to a composable string.