void CFGPrinterOutput::print_state(BlockBegin* block) {
  print_begin("states");

  InstructionPrinter ip(true, output());

  ValueStack* state = block->state();
  int index;
  Value value;

  for_each_state(state) {
    print_begin("locals");
    print("size %d", state->locals_size());
    print("method \"%s\"", method_name(state->scope()->method()));

    for_each_local_value(state, index, value) {
      ip.print_phi(index, value, block);
      print_operand(value);
      output()->cr();
    }
    print_end("locals");

    if (state->stack_size() > 0) {
      print_begin("stack");
      print("size %d", state->stack_size());
      print("method \"%s\"", method_name(state->scope()->method()));

      for_each_stack_value(state, index, value) {
        ip.print_phi(index, value, block);
        print_operand(value);
        output()->cr();
      }
void CFGPrinterOutput::print_state(BlockBegin* block) {
  print_begin("states");

  InstructionPrinter ip(true, output());

  ValueStack* state = block->state();
  int index;
  Value value;

  if (state->stack_size() > 0) {
    print_begin("stack");
    print("size %d", state->stack_size());

    for_each_stack_value(state, index, value) {
      ip.print_phi(index, value, block);
      print_operand(value);
      output()->cr();
    }
void CFGPrinterOutput::print_compilation() {
  print_begin("compilation");

  print("name \"%s\"", method_name(_compilation->method(), true));
  print("method \"%s\"", method_name(_compilation->method()));
  print("date "INT64_FORMAT, os::javaTimeMillis());

  print_end("compilation");
}
示例#4
0
void dot_visitor::write_to_file(const char *fname)
{
	std::ofstream out(fname);
	if(out.fail())
		return;
	print_begin(out);
	for(auto iter = node_list.begin(); iter != node_list.end(); ++iter)
	{
		print_node(out, *iter);
	}
	for(auto iter = edge_list.begin(); iter != edge_list.end(); ++iter)
	{
		print_edge(out, *iter);
	}
	print_end(out);
	out.flush();
}
示例#5
0
int repeat_test(
    const char *bin,
    int no,
    char keep_running,
    int times
)
{
    int iteration = 0;
    int failed_iterations = 0;

    print_header();
    print_begin( times );

    for( iteration = 0; iteration < times; iteration++ )
    {
        int res;

        printf( "\nTest iteration %i of %i\n", iteration + 1, times );
        printf( "----------------------------------\n" );

        res = run( no, bin );

        if( res != EXIT_SUCCESS )
        {
            failed_iterations++;

            if( !keep_running )
            {
                print_result( times, failed_iterations );
                return EXIT_FAILURE;
            }
        }
    }

    if( times > 1 )
        print_result( times, failed_iterations );

    return failed_iterations == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
} /* repeat_test */
示例#6
0
int repeat_suite(
    const char *bin,
    char keep_running,
    int times
)
{
    item_t *curr;
    int iteration = 0;
    int failed_iterations = 0;

    print_header();

    if( times > 1 )
        print_begin( times );
    else
    {
        printf( "Running all Tests\n" );
        printf( "==================================\n" );
    }

    for( iteration = 0; iteration < times; iteration++ )
    {
        int res;
        int passed = 0, failed = 0;
        int no = 0;
        curr = suite;

        // signal the test position
        if( times > 1 )
        {
            printf( "\nTest iteration %i of %i\n", iteration, times );
            printf( "----------------------------------\n" );
        }

        // iterate over all tests
        while( curr->next != NULL ) {
            curr = curr->next;
            no++;

            // clear cache first
            fflush( stdout );
            // then run the test
            res = run( no, bin );

            if( res != EXIT_SUCCESS )
            {
                failed++;

                if( !keep_running )
                {
                    if( times > 1 )
                        printf( "==================================\nTEST FAILURE (at run %i of %i)\n", iteration, times );
                    else
                        printf( "==================================\nTEST FAILURE\n" );

                    printf( "----------------------------------\nPassed: %u\tFailed: %u\n\n", passed, failed );
                    return res;
                }
            }
            else
                passed++;
        }

        printf( "==================================\n%s\n", failed == 0 ? "ALL PASSED." : "!!! NOT ALL PASSED !!!" );

        if( failed != 0 )
            failed_iterations++;

        printf( "----------------------------------\nPassed: %u\tFailed: %u\n\n", passed, failed );
    }

    if( times > 1 )
        print_result( times, failed_iterations );

    return failed_iterations == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
} /* repeat_suite */
示例#7
0
文件: countup2.c 项目: zhaowoxin/task
int main(void)
{
  print_begin(1);

  return 0;
}