Omni OpenMP C Compiler

omcc - Multi-configuration Omni OpenMP C compiler

       omcc [driver-options] [compiler-options] filename ...
omcc is a program to compile OpenMP programs written in C. omcc processes input files through one or more of four stages: preprocessing, compilation, assembly, and linking. This man page contains descriptions for only omcc-specific aspects of the compiler, though it also contains summaries of some general-purpose options. For a fuller explanation of the compile options, see options of the backend compiler which is specified in the installation. C source files use the suffix '.c'.


Display help.
Display Omni version.
Specify a name of configuration, listed below (Omni configuration and platform dependent) as examples:
If not specified, default configuration (depend on Omni configuration and platform) is used.
Specify a command name of backend C compiler. If not specified, default C compiler (depend on Omni configuration and platform) is used.


Compile or assemble the source files, but do not link. The compiler output is an object file corresponding to each source file.
Define macro macro with the string `1' as its definition.
Define macro macro as defn.
Produce debugging information.
Append directory dir to the list of directories searched for include files.
Add directory dir to the list of directories to be searched for `-l'.
Use the library named library when linking.
-o file
Place output in file.
Stop after the stage of compilation proper; do not assemble. The output is an assembler code file for each non-assembler input file specified.
Undefine macro macro.
Stop after parsing leaving the intermediate file.
Stop before calling the backend compiler. Leave the intermediate C file after OpenMP transformation.
Leave intermediate file "tmp.x", "tmp.xx", "tmp.c".
Verbose mode. Echo the executed commands.
Ignore OpenMP pragma.

omcc defines various C preprocessor macros automatically, depend on the configuration specfied by -omniconfig option.
    ARCH: I386, MIPS, SPARC, ALPHA ...
    Defined if the configuration matches 'spin-*'.
    Defined if the configuration matches 'mutex-*'.
    Defined if the configuration matches '*-pthread'.
    Defined if the configuration matches '*-solaris'.
    Defined if the configuration matches '*-sproc'.
    Defined if the configuration is 'shmem'.
    Defined if the configuration is 'scash'.
    Defined if the configuration is 'stackthreads'.

In addition to OpenMP standard environment variables Omni environment variables controls the parallel execution. See Omni Environment Variables .

  • bin/omcc -- Omni C compile driver
  • lib/openmp/libexec/C-front -- C front end (C to Xobj translator)
  • lib/openmp/libexec/C-back -- Xobj to C translator (available only when Omni was configured with '--enable-jexcBinary')
  • lib/openmp/java/exc.jar -- Java exc toolkit jar file
  • lib/openmp/lib/libompc.a -- Omni OpenMP runtime library
  • lib/openmp/lib/libtlog.a -- Omni OpenMP profile library
  • lib/openmp/lib/ompc_main.o -- Omni OpenMP start off routine
  • lib/openmp/lib/include/omp.h -- OpenMP standard include file
  • lib/openmp/lib/include/tlog.h -- Omni OpenMP profile header file
  • lib/openmp/lib/include/stdarg.h -- stdarg.h for Omni OpenMP
  • lib/openmp/examples/ -- OpenMP example source code (C, Fortran)
  • include/omniConfig.h -- configuration information header of compilation time of Omni itself

Unsupported Features and Known BUGS
  • Dynamic adjustment of the number of threads is not supported.
  • Nested parallelism is partially supported. As long as idle threads are available, the threads are used to execute nested parallel regions.
  • The threadprivate variables of non-master threads is not initialized properly. Use "copyin" clause to initialize them explicitly.
  • The semantics for const-qualified variables in OpenMP is not fully implemented.
  • "#file ..." directives are not recognized.
  • 64 bit platforms are supported as a beta state. May be not fully functional yet. For more detail of Omni 64 bit environment, See Omni 64 bit environment status .