Package org.trifort.rootbeer.generate.opencl

Examples of org.trifort.rootbeer.generate.opencl.OpenCLType


  private void caseDefinitionStmt(DefinitionStmt arg0){
    Value left_op = arg0.getLeftOp();
    Value right_op = arg0.getRightOp();
    Type left_op_type = left_op.getType();
    OpenCLType ocl_left_op_type = new OpenCLType(left_op_type);

    //if the left op is a field ref or array ref we use the setter
    if(left_op instanceof FieldRef || left_op instanceof ArrayRef){
      m_valueSwitch.setLhs();
      left_op.apply(m_valueSwitch);
View Full Code Here


    if(type.baseType instanceof PrimType && type.numDimensions == 1 &&
       type.baseType.equals(CharType.v()) == false){
     
      bcl.pushMethod(m_currMem.top(), "readArray", VoidType.v(), type);
      bcl.invokeMethodNoRet(m_currMem.top(), ret);
      OpenCLType ocl_type = new OpenCLType(type.baseType);
      Local element_size = bcl.local(IntType.v());
      bcl.assign(element_size, IntConstant.v(ocl_type.getSize()));
      bcl.mult(element_size, size);
      bcl_mem.incrementAddress(element_size);
     
      return ret;
    }
View Full Code Here

    if(type instanceof ArrayType){
      ArrayType atype = (ArrayType) type;
      Local size = m_bcl.top().local(IntType.v());
      m_bcl.top().assign(size, IntConstant.v(Constants.ArrayOffsetSize));
      Local element_size = m_bcl.top().local(IntType.v());
      OpenCLType ocl_type = new OpenCLType(atype.baseType);
      if(atype.numDimensions == 1)
        m_bcl.top().assign(element_size, IntConstant.v(ocl_type.getSize()));
      else
        m_bcl.top().assign(element_size, IntConstant.v(4));
      Local object_to_write_from = m_bcl.top().cast(type, m_param0);
      Local length = m_bcl.top().lengthof(object_to_write_from);
      m_bcl.top().mult(element_size, length);
View Full Code Here

    Local size = bcl.local(IntType.v());
    bcl.assign(size, IntConstant.v(Constants.SizeGcInfo));
     
    Local element_size = bcl.local(IntType.v());
    if(type.numDimensions == 1){
      OpenCLType ocl_type = new OpenCLType(type.baseType);
      bcl.assign(element_size, IntConstant.v(ocl_type.getSize()));
    } else {
      bcl.assign(element_size, IntConstant.v(4));
    }
    bcl.mult(element_size, length);
    bcl.plus(size, element_size);
View Full Code Here

 
  private String writeLocals() {
    Chain<Local> locals = m_body.getLocals();
    String ret = "";
    for(Local local : locals){
      OpenCLType type = new OpenCLType(local.getType());
      String local_init = type.getCudaTypeString()+" "+local.getName();
      if(type.isRefType()){
        local_init += " = -1";
      } else {
        local_init += " = 0";
      }
      local_init += ";\n";
View Full Code Here

    return ocl_class.getName()+"_"+getName();
  }
 
  public OpenCLType getClassType(){
    Type soot_type = m_sootClass.getType();
    return new OpenCLType(soot_type);
  }
View Full Code Here

    return new OpenCLType(soot_type);
  }

  public OpenCLType getType(){
    Type soot_type = m_sootField.getType();
    return new OpenCLType(soot_type);
  }
View Full Code Here

TOP

Related Classes of org.trifort.rootbeer.generate.opencl.OpenCLType

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.