コード例 #1
0
ファイル: make_reduced_genome.c プロジェクト: dpryan79/bison
void process_fragment(FILE *of, char *fragment, int read_size) {
    char *fp = fragment;
    unsigned long i = 0, left_mask, right_mask;

    //Determine the masking coordinates
    if(strlen(fragment)-1 <= read_size) {
        output_fragment(of, fragment);
        return;
    }
    left_mask = get_left_mask(fragment, read_size);
    right_mask = get_right_mask(fragment, read_size);

    if(left_mask < right_mask) {
        for(i=0; i <= right_mask; i++) {
            if(i>=left_mask) {
                if(*fp != '\n') {
                    *fp = 'N';
                }
            }
            fp++;
        }
    }
    output_fragment(of, fragment);

    return;
}
コード例 #2
0
ファイル: pcm_out.c プロジェクト: BackupTheBerlios/galan
PRIVATE void realtime_handler(Generator *g, AEvent *event) {
  Data *data = g->data;

  switch (event->kind) {
    case AE_REALTIME: {
      SAMPLE *l_buf, *r_buf;
      int bufbytes = event->d.integer * sizeof(SAMPLE);
      

      l_buf = g_alloca(bufbytes);
      r_buf = g_alloca(bufbytes);

      if (!gen_read_realtime_input(g, SIG_LEFT, -1, l_buf, event->d.integer))
	memset(l_buf, 0, bufbytes);

      if (!gen_read_realtime_input(g, SIG_RIGHT, -1, r_buf, event->d.integer))
	memset(r_buf, 0, bufbytes);

      if (data->output != NULL) {
	int written = output_fragment(data->output, l_buf, r_buf, event->d.integer);
	if (written > 0)
	  data->frames_recorded += written;
      }

      break;
    }

    default:
      g_warning("pcm_out module doesn't care for events of kind %d.", event->kind);
      break;
  }
}
コード例 #3
0
ファイル: ct_traversal.cpp プロジェクト: TACC/perfexpert
/* recommenderTraversal::visit */
void recommenderTraversal::visit(SgNode *node) {
    Sg_File_Info *info = NULL;
    SgFunctionDefinition *function = NULL;
    SgForStatement *c_loop = NULL;
    SgNode *grandparent = NULL;
    SgNode *parent = NULL;
    int node_found = 0;

    info = node->get_file_info();

    /* Find code fragment for bottlenecks type 'loop' in C */
    if ((isSgForStatement(node)) && (info->get_line() == fragment->line)
        && (PERFEXPERT_HOTSPOT_LOOP == fragment->type)) {

        /* Found a C loop on the exact line number */
        OUTPUT_VERBOSE((8, "         [loop] %s (line %d)",
            _GREEN((char *)"found"), info->get_line()));

        /* Extract the loop fragment */
        if (PERFEXPERT_SUCCESS != output_fragment(node, info, fragment)) {
            OUTPUT(("%s", _ERROR((char *)"extracting fragment")));
            rc = PERFEXPERT_ERROR;
            return;
        }

        /* Save the fragment path and filename */
        PERFEXPERT_ALLOC(char, fragment->fragment_file, (strlen(globals.workdir)
            + strlen(FRAGMENTS_DIR) + strlen(fragment->file) + 15));
        sprintf(fragment->fragment_file, "%s/%s/%s_%d", globals.workdir,
            FRAGMENTS_DIR, fragment->file, fragment->line);

        /* What is the loop detph and who is parent node */
        if (2 <= fragment->depth) {
            parent = node->get_parent();

            /* It is a basic block. Who is this basic block's parent? */
            if (NULL != isSgBasicBlock(parent)) {
                parent = parent->get_parent();
            }

            /* Is it a for/do/while? */
            if (isSgForStatement(parent)) {
                info = parent->get_file_info();
                fragment->outer_loop_line = info->get_line();

                /* The parent is a loop */
                OUTPUT_VERBOSE((8, "         [parent loop] %s (line %d)",
                    _GREEN((char *)"found"), fragment->outer_loop_line));

                /* Extract the parent loop fragment */
                if (PERFEXPERT_SUCCESS != output_fragment(parent, info,
                    fragment)) {
                    OUTPUT(("%s", _ERROR((char *)"extracting fragment")));
                    rc = PERFEXPERT_ERROR;
                    return;
                }

                /* Save the fragment path and filename */
                PERFEXPERT_ALLOC(char, fragment->outer_loop_fragment_file,
                    (strlen(globals.workdir) + strlen(FRAGMENTS_DIR)
                    + strlen(fragment->file) + 15));
                sprintf(fragment->outer_loop_fragment_file, "%s/%s/%s_%d",
                    globals.workdir, FRAGMENTS_DIR, fragment->file,
                    fragment->outer_loop_line);

                /* What is the loop detph and who is the grandparent node */
                if (3 <= fragment->depth) {
                    grandparent = parent->get_parent();

                    /* It is a basic block. Who is this basic block's parent? */
                    if (NULL != isSgBasicBlock(grandparent)) {
                        grandparent = grandparent->get_parent();
                    }

                    /* Is it a for/do/while? */
                    if (isSgForStatement(grandparent)) {
                        info = grandparent->get_file_info();
                        fragment->outer_outer_loop_line = info->get_line();

                        /* The grandparent is a loop */
                        OUTPUT_VERBOSE((8, "   [grandparent loop] %s (line %d)",
                            _GREEN((char *)"found"),
                            fragment->outer_outer_loop_line));

                        /* Extract the parent loop fragment */
                        if (PERFEXPERT_SUCCESS != output_fragment(grandparent,
                            info, fragment)) {
                            OUTPUT(("%s",
                                _ERROR((char *)"extracting fragment")));
                            rc = PERFEXPERT_ERROR;
                            return;
                        }

                        /* Save the fragment path and filename */
                        PERFEXPERT_ALLOC(char,
                            fragment->outer_outer_loop_fragment_file,
                            (strlen(globals.workdir) + strlen(FRAGMENTS_DIR) +
                            strlen(fragment->file) + 15));
                        sprintf(fragment->outer_outer_loop_fragment_file,
                            "%s/%s/%s_%d", globals.workdir, FRAGMENTS_DIR,
                            fragment->file, fragment->outer_outer_loop_line);
                    }
                }
            }