com.arm.carp.pencil

Walker

trait Walker extends Assertable with CommonOps with ExpressionWalker

Provides the default program tree walker.

It doesn't modify any parts of the program, only visits them.

Optimization/analysis passes should inherit this trait and override function, operation on transformed/analyzed constructs. See Linearize pass for example.

It's essential for the overriding function to call the original function to ensure the correct processing of the children nodes.

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Walker
  2. ExpressionWalker
  3. CommonOps
  4. Assertable
  5. AnyRef
  6. 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])

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

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

    Definition Classes
    ExpressionWalker

Abstract Value Members

  1. abstract val config: WalkerConfigStorage

Concrete 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 assert(cond: Boolean, data: Any, message: String): Unit

    Check the condition and calls Assertable.ice if condition is false.

    Check the condition and calls Assertable.ice if condition is false.

    cond

    condition to check

    data

    additional data to include in error message

    message

    error message

    Definition Classes
    Assertable
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  9. def doNothing(): Unit

    Default action for leaf processing.

    Default action for leaf processing. Can be overridden to call ICE (to ensure that all processing is implemented by pass).

  10. final def eq(arg0: AnyRef): Boolean

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

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

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

    Definition Classes
    AnyRef → Any
  14. def getCleanBody(in: Option[BlockOperation]): BlockOperation

  15. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  16. def ice(data: Any, message: String): Nothing

    Report internal compilation error and throw RuntimeException.

    Report internal compilation error and throw RuntimeException.

    data

    additional data to include in error message

    message

    error message

    Definition Classes
    Assertable
  17. final def isInstanceOf[T0]: Boolean

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

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

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

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

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

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

    Definition Classes
    AnyRef
  24. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws()
  28. def walkAccessFunction(in: Option[Function]): Unit

  29. def walkArrayConstant(in: ArrayConstant): (ArrayExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  30. def walkArrayDeclOperation(in: ArrayDeclOperation): Option[Operation]

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

    Definition Classes
    ExpressionWalker
  32. def walkArrayIdxExpression(in: ArrayIdxExpression): (ArrayExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  33. def walkArrayStructSubscription(in: ArrayStructSubscription): (ArrayExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  34. def walkArrayType(in: ArrayType): Option[Operation]

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

    Definition Classes
    ExpressionWalker
  36. def walkArrayVariableInt(in: ArrayVariable): (ArrayExpression, Option[Operation])

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

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

    Definition Classes
    ExpressionWalker
  37. def walkAssignment(in: AssignmentOperation): Option[Operation]

  38. def walkBlock(in: BlockOperation): Option[BlockOperation]

  39. def walkBlock(in: Option[BlockOperation]): Option[BlockOperation]

  40. def walkBreak(in: BreakOperation): Option[Operation]

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

    Definition Classes
    ExpressionWalker
  42. def walkCallOp(in: CallOperation): Option[Operation]

  43. def walkContinue(in: ContinueOperation): Option[Operation]

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

    Definition Classes
    ExpressionWalker
  45. def walkExpression(in: Expression): (Expression, Option[Operation])

    Definition Classes
    ExpressionWalker
  46. def walkExpressionProxy(in: Expression): (Expression, Option[Operation])

  47. def walkFor(in: ForOperation): Option[Operation]

  48. def walkFunction(f: Function): Option[Function]

  49. def walkFunctionArgument(in: Variable): Variable

  50. def walkFunctionArguments(in: Seq[Variable]): Seq[Variable]

  51. def walkFunctionBody(in: Option[BlockOperation]): Option[BlockOperation]

  52. def walkFunctions(in: Traversable[Function]): Traversable[Function]

  53. def walkGlobalConst(c: Variable): Some[Variable]

  54. def walkGlobalConsts(in: Seq[Variable]): Seq[Variable]

  55. def walkGlobalType(t: StructType): Some[StructType]

  56. def walkGlobalTypes(in: Seq[StructType]): Seq[StructType]

  57. def walkGuardExpression(in: ScalarExpression): (ScalarExpression, Option[Operation])

  58. def walkIf(in: IfOperation): Option[Operation]

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

    Definition Classes
    ExpressionWalker
  60. def walkIterationVariable(in: ScalarVariableRef): (ScalarVariableRef, Option[Operation])

    Definition Classes
    ExpressionWalker
  61. def walkLValueExpression(in: ScalarExpression with LValue): (ScalarExpression with LValue, Option[Operation])

  62. def walkOperation(in: Operation): Option[Operation]

  63. def walkPENCILOperation(in: Operation with PENCILOperation): Option[Operation]

  64. def walkProgram(program: Program): Program

  65. def walkRange(in: Range): (Range, Option[Operation])

  66. def walkReturn(in: ReturnOperation): Option[Operation]

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

    Definition Classes
    ExpressionWalker
  68. def walkScalarConstant(in: Constant with ScalarExpression): (ScalarExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  69. def walkScalarExpression(in: ScalarExpression): (ScalarExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  70. def walkScalarExpressionProxy(in: ScalarExpression): (ScalarExpression, Option[Operation])

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

    Definition Classes
    ExpressionWalker
  72. def walkScalarStructSubscription(in: ScalarStructSubscription): (ScalarExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  73. def walkScalarTernaryExpression(in: TernaryExpression): (ScalarExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  74. def walkScalarUnaryExpression(in: ScalarUnaryExpression): (ScalarExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  75. def walkScalarVariable(in: ScalarVariableRef): (ScalarExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  76. def walkScalarVariableInt(in: ScalarVariable): (ScalarExpression, Option[Operation])

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

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

    Definition Classes
    ExpressionWalker
  77. def walkSizeofExpression(in: SizeofExpression): (ScalarExpression, Option[Operation])

    Definition Classes
    ExpressionWalker
  78. def walkWhile(in: WhileOperation): Option[Operation]

Inherited from ExpressionWalker

Inherited from CommonOps

Inherited from Assertable

Inherited from AnyRef

Inherited from Any

Ungrouped