com.arm.carp.pencil

ExpressionWalker

trait ExpressionWalker extends CommonOps

Provides def default expression walker.

The default walker visits each node of the PENCIL expression without modifying them.

Each function processes a particular type of expressions and should return a scalar or array expression depending on the type of the input expression. Functions are also allowed to generate additional statements, which would be inserted in the PENCIL program right before the statement containing the expression being walked. For example, one can implement conversion to SSA-like form as follows: for each sub-expression, return a new variable annotated with an assignment operation, which assigns this sub-expression to the created variable.

Linear Supertypes
CommonOps, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ExpressionWalker
  2. CommonOps
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. type Annotated[T] = (T, Option[Operation])

  2. type AnnotatedArrayExpression = (ArrayExpression, Option[Operation])

  3. type AnnotatedScalarExpression = (ScalarExpression, Option[Operation])

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. def make(init: Option[Operation]*): Option[Operation]

    Definition Classes
    CommonOps
  15. def makeBlock(init: Option[Operation]*): Option[BlockOperation]

    Definition Classes
    CommonOps
  16. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  17. final def notify(): Unit

    Definition Classes
    AnyRef
  18. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  19. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  20. def toString(): String

    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  22. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  23. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  24. def walkArrayConstant(in: ArrayConstant): (ArrayExpression, Option[Operation])

  25. def walkArrayExpression(in: ArrayExpression): (ArrayExpression, Option[Operation])

  26. def walkArrayIdxExpression(in: ArrayIdxExpression): (ArrayExpression, Option[Operation])

  27. def walkArrayStructSubscription(in: ArrayStructSubscription): (ArrayExpression, Option[Operation])

  28. def walkArrayVariable(in: ArrayVariableRef): (ArrayExpression, Option[Operation])

  29. def walkArrayVariableInt(in: ArrayVariable): (ArrayExpression, Option[Operation])

    All raw variables must be eliminated before leaving the front-end.

  30. def walkCallExpression(in: CallExpression): (ScalarExpression, Option[Operation])

  31. def walkConvertExpression(in: ConvertExpression): (ScalarExpression, Option[Operation])

  32. def walkExpression(in: Expression): (Expression, Option[Operation])

  33. def walkIntrinsicCallExpression(in: IntrinsicCallExpression): (ScalarExpression, Option[Operation])

  34. def walkIterationVariable(in: ScalarVariableRef): (ScalarVariableRef, Option[Operation])

  35. def walkScalarBinaryExpression(in: ScalarBinaryExpression): (ScalarExpression, Option[Operation])

  36. def walkScalarConstant(in: Constant with ScalarExpression): (ScalarExpression, Option[Operation])

  37. def walkScalarExpression(in: ScalarExpression): (ScalarExpression, Option[Operation])

  38. def walkScalarIdxExpression(in: ScalarIdxExpression): (ScalarExpression, Option[Operation])

  39. def walkScalarStructSubscription(in: ScalarStructSubscription): (ScalarExpression, Option[Operation])

  40. def walkScalarTernaryExpression(in: TernaryExpression): (ScalarExpression, Option[Operation])

  41. def walkScalarUnaryExpression(in: ScalarUnaryExpression): (ScalarExpression, Option[Operation])

  42. def walkScalarVariable(in: ScalarVariableRef): (ScalarExpression, Option[Operation])

  43. def walkScalarVariableInt(in: ScalarVariable): (ScalarExpression, Option[Operation])

    All raw variables must be eliminated before leaving the front-end.

  44. def walkSizeofExpression(in: SizeofExpression): (ScalarExpression, Option[Operation])

Inherited from CommonOps

Inherited from AnyRef

Inherited from Any

Ungrouped