Examples of IRBody


Examples of org.renjin.compiler.ir.tac.IRBody

public class SsaTransformTest extends CompilerTestCase {

  @Test
  public void cytronSsa() throws IOException {
    IRBody block = parseCytron();
    ControlFlowGraph cfg = new ControlFlowGraph(block);

    Iterable<BasicBlock> assignmentsToK = Iterables.filter(cfg.getBasicBlocks(),
        CfgPredicates.containsAssignmentTo(new EnvironmentVariable("K")));
   
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

  }
 

  @Test
  public void forLoop() throws IOException {
    IRBody block = buildScope("for(i in 1:10) { n<-x[i]; print(n); }");
   
    System.out.println(block);
   
   
    ControlFlowGraph cfg = new ControlFlowGraph(block);
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

 
  @Test
  public void simple() {
    ExpressionVector ast = RParser.parseSource("x + sqrt(x * y)\n");
    IRBodyBuilder factory = new IRBodyBuilder(functionTable);
    IRBody ir = factory.build(ast);
    factory.dump( ast );
  }
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

    assertThat(evalIR("length(x <- 42); x;"), equalTo(c(42)));   
  }
 
  private SEXP evalIR(String text) {
    System.out.println("======= " + text + "================");
    IRBody block = build(text);
    System.out.println(block.toString());   
    System.out.println();
    return block.evaluate(topLevelContext);
  }
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

  }
 
  private void dump(String rcode) {
    ExpressionVector ast = RParser.parseSource(rcode + "\n");
    IRBodyBuilder factory = new IRBodyBuilder(functionTable);
    IRBody ir = factory.build(ast);
   
    System.out.println(ir.toString());
  }
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

  private static void showCfg(String rcode) {

    ExpressionVector ast = RParser.parseSource(rcode + "\n");
    IRFunctionTable functionTable = new IRFunctionTable();
    IRBody block = new IRBodyBuilder(functionTable).build(ast);

    System.out.println(block);
   
    final ControlFlowGraph cfg = new ControlFlowGraph(block);
  
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

public class ControlFlowGraphTest extends CompilerTestCase {

  @Test
  public void singleBlock() {
    IRBody block = buildScope("y<-x+1;z<-3; 4");
    ControlFlowGraph cfg = new ControlFlowGraph(block);
   
    System.out.println(cfg);
   
    List<BasicBlock> basicBlocks = cfg.getBasicBlocks();
    assertThat(basicBlocks.size(), equalTo(3))// 1 + exit + entry = 3
    assertThat(basicBlocks.get(0).getStatements().size(), equalTo(block.getStatements().size()));
  }
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

    assertThat(basicBlocks.get(0).getStatements().size(), equalTo(block.getStatements().size()));
  }
 
  @Test
  public void forLoop() {
    IRBody block = buildScope("y <- 0; for(i in 1:10) y <- y + i; sqrt(y + 3 * x)");
    System.out.println(block);

   
    ControlFlowGraph cfg = new ControlFlowGraph(block);
    System.out.println(cfg.getGraph());
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

    assertThat(basicBlocks.size(), equalTo(7));
  }
 
  @Test
  public void forBlock() {
    IRBody block = buildScope("if(length(x)==1) FALSE else { y<-0; for(i in seq_along(x)) y <- y+1 }");
    System.out.println(block);
//   
//
//    assertThat(leaders, equalTo(new boolean[]{   
//         true,    //      0:  _t0 := dynamic<length>(x)
View Full Code Here

Examples of org.renjin.compiler.ir.tac.IRBody

   
  }
 
  @Test
  public void cytron() throws IOException {
    IRBody block = parseCytron();
    ControlFlowGraph cfg = new ControlFlowGraph(block);
    List<BasicBlock> bb = cfg.getLiveBasicBlocks();
   
    // see Figure 5 in
    // http://www.cs.utexas.edu/~pingali/CS380C/2010/papers/ssaCytron.pdf
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.