com.arm.carp

pencil

package pencil

Visibility
  1. Public
  2. All

Type Members

  1. case class AndExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarBooleanBinaryExpression with Product with Serializable

  2. case class ArrayConstant(expType: ArrayType, data: Iterable[Expression with Constant]) extends ArrayExpression with Constant with Product with Serializable

  3. class ArrayDeclOperation extends Operation

  4. abstract class ArrayExpression extends Expression

    Base for PENCIL non-scalar (array) expressions.

  5. case class ArrayIdxExpression(op1: ArrayExpression, op2: ScalarExpression) extends ArrayExpression with ArraySubscription with DoubleArgumentExpression[ArrayExpression, ScalarExpression] with Product with Serializable

  6. case class ArrayStructSubscription(base: ScalarExpression, field: Int) extends ArrayExpression with StructSubscription with Product with Serializable

  7. trait ArraySubscription extends LValue with Expression

    Trait for all array subscription expressions.

  8. case class ArrayType(base: Type, range: ScalarExpression) extends Type with Product with Serializable

    Array type representation.

  9. case class ArrayVariable(base: ArrayVariableDef) extends ArrayExpression with VariableRef with Product with Serializable

  10. case class ArrayVariableDef(expType: ArrayType, name: String, restrict: Boolean, init: Option[ArrayConstant], id: Int = Counter.nextVariable()) extends Variable with Product with Serializable

  11. class ArrayVariableRef extends ArrayExpression with VariableRef

  12. trait Assertable extends AnyRef

    Provides basic mechanism to handle internal compiler errors.

  13. class AssignmentOperation extends Operation

    PENCIL assignment operation.

  14. class AssumeOperation extends Operation with PENCILOperation

    pencil_assume built-in function.

  15. case class BitAndExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarBitBinaryExpression with Product with Serializable

  16. case class BitLShiftExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarBitBinaryExpression with Product with Serializable

  17. case class BitNegExpression(op1: ScalarExpression) extends ScalarBitUnaryExpression with Product with Serializable

  18. case class BitOrExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarBitBinaryExpression with Product with Serializable

  19. case class BitRShiftExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarBitBinaryExpression with Product with Serializable

  20. case class BitXorExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarBitBinaryExpression with Product with Serializable

  21. class BlockOperation extends Operation

    PENCIL block operation.

  22. case class BooleanConstant(value: Option[Boolean]) extends ScalarExpression with Constant with Product with Serializable

  23. case class BooleanType(uconst: Boolean) extends ScalarType with Product with Serializable

    Boolean type representation.

  24. class BreakOperation extends Operation

    PENCIL break operation.

  25. case class CallExpression(func: Function, args: Seq[Expression]) extends ScalarExpression with Product with Serializable

  26. class CallGraph extends AnyRef

    Represents the call graph of the PENCIL program.

  27. class CallOperation extends Operation

    PENCIL call operation.

  28. trait Checks extends Walker

    Provides compile time consistency checks for internal PENCIL representation.

  29. trait Common extends AnyRef

    Hosts some common operations over PENCIL expressions.

  30. trait CommonOps extends AnyRef

    Hosts some common operations over PENCIL statements.

  31. trait Constant extends AnyRef

    Trait for all constants.

  32. class ContinueOperation extends Operation

    PENCIL continue operation.

  33. case class ConvertExpression(expType: ScalarType, op1: ScalarExpression) extends ScalarExpression with SingleArgumentExpression[ScalarExpression] with Product with Serializable

  34. class DEFOperation extends Operation with PENCILOperation

    pencil_def built-in function.

  35. class DefineSet extends ExpressionPassInfo

    Set of reaching definitions for a given variable reference.

  36. class DefinedVariables extends OperationPassInfo

    This object specifies a set of scalar variables, defined in a BlockOperation it is attached to.

  37. case class DivExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarMathBinaryExpression with Product with Serializable

  38. trait DoubleArgumentExpression[T1 <: Expression, T2 <: Expression] extends AnyRef

    Trait for double argument expressions.

  39. case class EqualExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarComparisonBinaryExpression with Product with Serializable

  40. trait Expression extends AnyRef

    Base for all PENCIL expressions.

  41. trait ExpressionPassInfo extends AnyRef

    Base for pass-specific information, attachable to expression objects.

  42. trait ExpressionWalker extends CommonOps

    Provides def default expression walker.

  43. case class FloatConstant(expType: ScalarType, value: Double) extends ScalarExpression with Constant with Product with Serializable

  44. case class FloatType(bits: Int, uconst: Boolean) extends NumericType with Product with Serializable

    Floating point type representation.

  45. class ForOperation extends Operation

    PENCIL for operation.

  46. abstract class ForProperties extends AnyRef

    Base class for for' loop properties.

  47. class Function extends AnyRef

    PENCIL function.

  48. trait FunctionCloner extends Walker

    Provides function cloning functionality.

  49. case class GreaterEqExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarComparisonBinaryExpression with Product with Serializable

  50. case class GreaterExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarComparisonBinaryExpression with Product with Serializable

  51. class IfOperation extends Operation

    PENCIL if operation.

  52. class IndependentLoop extends ForProperties

    This property indicates that loop statements labels' have no loop carried dependencies. If the statement list is omitted, all statements are considered as having no loop carried dependencies.

  53. case class IntegerConstant(expType: ScalarType, value: Int) extends ScalarExpression with Constant with Product with Serializable

  54. case class IntegerType(signed: Boolean, bits: Int, uconst: Boolean) extends NumericType with Product with Serializable

    Integer (signed and unsigned) type representation.

  55. case class IntrinsicCallExpression(name: String, args: Seq[ScalarExpression]) extends ScalarExpression with Product with Serializable

  56. class KillOperation extends Operation with PENCILOperation

    pencil_kill built-in function.

  57. trait LValue extends AnyRef

    Trait to be mixed to any expression, which can serve as lvalue.

  58. case class LessEqExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarComparisonBinaryExpression with Product with Serializable

  59. case class LessExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarComparisonBinaryExpression with Product with Serializable

  60. case class MinusExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarMathBinaryExpression with Product with Serializable

  61. case class ModExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarMathBinaryExpression with Product with Serializable

  62. case class MultExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarMathBinaryExpression with Product with Serializable

  63. case class NEqualExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarComparisonBinaryExpression with Product with Serializable

  64. case class NotExpression(op1: ScalarExpression) extends ScalarBooleanUnaryExpression with Product with Serializable

  65. abstract class NumericType extends ScalarType

  66. abstract class Operation extends AnyRef

    Base class for all PENCIL operations.

  67. trait OperationPassInfo extends AnyRef

    Base for pass-specific information, attachable to operation object.

  68. case class OrExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarBooleanBinaryExpression with Product with Serializable

  69. trait PENCILOperation extends AnyRef

    Trait for PENCIL built-in functions.

  70. case class PlusExpression(op1: ScalarExpression, op2: ScalarExpression) extends ScalarMathBinaryExpression with Product with Serializable

  71. case class PointerType(base: Type) extends ScalarType with Product with Serializable

    Pointer type representation.

  72. class Printer extends Assertable

    Generates a string representation of the PENCIL program.

  73. class Program extends AnyRef

    PENCIL program.

  74. case class Range(iter: ScalarVariableRef, low: ScalarExpression, upper: ScalarExpression, step: IntegerConstant) extends Product with Serializable

    Iteration range representation.

  75. class ReachSet extends OperationPassInfo

    Set of scalar variable references, reachable by annotated assignment operation.

  76. class ReturnOperation extends Operation

    PENCIL return operation.

  77. abstract class ScalarBinaryExpression extends ScalarExpression with DoubleArgumentExpression[ScalarExpression, ScalarExpression]

  78. abstract class ScalarBitBinaryExpression extends ScalarBinaryExpression with ScalarMathTyped

  79. abstract class ScalarBitUnaryExpression extends ScalarUnaryExpression with ScalarMathTypedUnary

  80. abstract class ScalarBooleanBinaryExpression extends ScalarBinaryExpression

  81. abstract class ScalarBooleanUnaryExpression extends ScalarUnaryExpression

  82. abstract class ScalarComparisonBinaryExpression extends ScalarBinaryExpression

  83. abstract class ScalarExpression extends Expression

    Base for PENCIL scalar expressions.

  84. case class ScalarIdxExpression(op1: ArrayExpression, op2: ScalarExpression) extends ScalarExpression with ArraySubscription with DoubleArgumentExpression[ArrayExpression, ScalarExpression] with Product with Serializable

  85. abstract class ScalarMathBinaryExpression extends ScalarBinaryExpression with ScalarMathTyped

  86. trait ScalarMathTyped extends AnyRef

    Trait for scalar binary expression, with result type equal to the type of the operands.

  87. trait ScalarMathTypedUnary extends AnyRef

    Trait for scalar unary expression, with result type equal to the type of the operands.

  88. abstract class ScalarMathUnaryExpression extends ScalarUnaryExpression with ScalarMathTypedUnary

  89. case class ScalarStructSubscription(base: ScalarExpression, field: Int) extends ScalarExpression with StructSubscription with Product with Serializable

  90. abstract class ScalarType extends Type

    Base class for scalar types.

  91. abstract class ScalarUnaryExpression extends ScalarExpression with SingleArgumentExpression[ScalarExpression]

  92. case class ScalarVariable(base: ScalarVariableDef) extends ScalarExpression with VariableRef with Product with Serializable

  93. case class ScalarVariableDef(expType: ScalarType, name: String, init: Option[ScalarExpression], id: Int = Counter.nextVariable()) extends Variable with Product with Serializable

  94. class ScalarVariableRef extends ScalarExpression with VariableRef

  95. trait SingleArgumentExpression[T <: Expression] extends AnyRef

    Trait for single argument expressions.

  96. case class SizeofExpression(obj: Type) extends ScalarExpression with Product with Serializable

  97. trait StructSubscription extends LValue with Expression with SingleArgumentExpression[ScalarExpression]

    Trait for all struct subscription expressions.

  98. case class StructType(fields: Seq[(String, Type)], uconst: Boolean, name: String) extends ScalarType with Product with Serializable

    Structural type representation.

  99. case class TernaryExpression(op1: ScalarExpression, op2: ScalarExpression, op3: ScalarExpression) extends ScalarExpression with TripleArgumentExpression[ScalarExpression, ScalarExpression, ScalarExpression] with Product with Serializable

  100. trait TripleArgumentExpression[T1 <: Expression, T2 <: Expression, T3 <: Expression] extends AnyRef

    Trait for triple argument expressions.

  101. abstract class Type extends AnyRef

    Base type for every PENCIL type.

  102. class USEOperation extends Operation with PENCILOperation

    pencil_use built-in function.

  103. case class UnaryMinusExpression(op1: ScalarExpression) extends ScalarMathUnaryExpression with Product with Serializable

  104. case class UnaryPlusExpression(op1: ScalarExpression) extends ScalarMathUnaryExpression with Product with Serializable

  105. trait Variable extends AnyRef

    Trait to be mixed with all variable definitions.

  106. trait VariableRef extends LValue with Expression

    Trait to be mixed with all variable references.

  107. trait Walker extends Assertable with CommonOps with ExpressionWalker

    Provides the default program tree walker.

  108. case class WalkerConfigStorage(expressions: Boolean, types: Boolean, consts: Boolean, functions: Boolean, args: Boolean) extends Product with Serializable

    This class represents a Walker configuration.

  109. class WhileOperation extends Operation

    PENCIL while operation.

Value Members

  1. object Asserts extends Assertable

    Provides base implementation of the Assertable trait.

  2. object BuiltIn

    PENCIL built-in functions.

  3. object Checkable extends Checks with Assertable

    Provides base implementation of the Checks trait.

  4. object ComputeDeclarations

    This object assigns each variable to the block, where this variable should be declared.

  5. object ConstantComputer

  6. object Constants

    Pool of common integer constants.

  7. object Counter

    Counter used to assignment unique ids to variables and functions.

  8. object ExpressionAnalyzer

    Computes a set of scalar variables, referenced in a given expression.

  9. object ExpressionCloner extends ExpressionWalker

    Clone an expression, such that no duplicate xxxVariableRefs are introduced.

  10. object GenType extends NumericType with Product with Serializable

    General numeric type.

  11. object IvdepLoop extends ForProperties

    This property indicates that the corresponding loop is marked as a candidate for vectorization.

  12. object Lowering extends Walker

    Lower raw PENCIL variables, generated by front-ends, to references.

  13. object NopType extends ScalarType with Product with Serializable

    Void type representation.

  14. object ParentComputer extends Walker

    Updates the parent information for PENCIL statements.

  15. object ReachingDefinitions

    Implements reaching definition analysis.

  16. object WalkerConfig

    Contains predefined walker configurations.

  17. object Warnings

    Provides base implementation of the compile-time warnings.

Ungrouped