예제 #1
0
int main(int argc, char *argv[]) {
  startCatchingSignals();
 {
  astlocMarker markAstLoc(0, "<internal>");
  initFlags();
  initChplProgram();
  initPrimitive();
  initPrimitiveTypes();
  initTheProgram();
  setupOrderedGlobals(argv[0]);
  compute_program_name_loc(argv[0], &(arg_state.program_name),
                           &(arg_state.program_loc));
  process_args(&arg_state, argc, argv);
  initCompilerGlobals(); // must follow argument parsing
  setupDependentVars();
  setupModulePaths();
  recordCodeGenStrings(argc, argv);
 } // astlocMarker scope
  printStuff(argv[0]);
  if (rungdb)
    runCompilerInGDB(argc, argv);
  if (fdump_html || strcmp(log_flags, ""))
    init_logs();
  compile_all();
  if (fEnableTimers) {
    printf("timer 1: %8.3lf\n", timer1.elapsed());
    printf("timer 2: %8.3lf\n", timer2.elapsed());
    printf("timer 3: %8.3lf\n", timer3.elapsed());
    printf("timer 4: %8.3lf\n", timer4.elapsed());
    printf("timer 5: %8.3lf\n", timer5.elapsed());
  }
  free_args(&arg_state);
  clean_exit(0);
  return 0;
}
예제 #2
0
int main(int argc, char **argv) {
  // Check the command line option
  if (argc < 2) {
    fprintf(stderr, "USAGE: openCLAllCompiler [SOURCE]\n");
    exit(EXIT_FAILURE);
  }

  const char *filename = argv[1];

  // Read the source file
  char *src = NULL;
  size_t src_size = 0;
  if (read_file(&src, &src_size, filename) != 0) {
    fprintf(stderr, "ERROR: Failed to read: %s\n", filename);
    exit(EXIT_FAILURE);
  }

  // Compile binaries for each platforms and devices
  compile_all(src, src_size);

  // Free the source file
  free(src);

  return 0;
}