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'.
driver-options:
-help
Display help.
-omniVersion
Display Omni version.
-omniconfig=name
Specify a name of configuration, listed below (Omni configuration and
platform dependent) as examples:
stackthreads
shmem
scash
spin-pthread
....
If not specified, default configuration (depend on Omni configuration
and platform) is used.
-omnicc=backend-cc
Specify a command name of backend C compiler. If not specified,
default C compiler (depend on Omni configuration and platform) is used.
compiler-options:
-c
Compile or assemble the source files, but do not
link. The compiler output is an object file corresponding to each
source file.
-Dmacro
Define macro macro with the string `1' as its definition.
-Dmacro=defn
Define macro macro as defn.
-g
Produce debugging information.
-Idir
Append directory dir to the list of directories
searched for include files.
-Ldir
Add directory dir to the list of directories to be searched for `-l'.
-llibrary
Use the library named library when linking.
-O
Optimize.
-o file
Place output in file.
-S
Stop after the stage of compilation proper; do not assemble.
The output is an assembler code file for each non-assembler input file specified.
-Umacro
Undefine macro macro.
-x
Stop after parsing leaving the intermediate file.
-X
Stop before calling the backend compiler. Leave the intermediate
C file after OpenMP transformation.
omcc defines various C preprocessor macros automatically, depend on the
configuration specfied by -omniconfig option.
__OMNI_CPU_ARCH__
ARCH: I386, MIPS, SPARC, ALPHA ...
__OMNI_OS_SYSTEM__
SYSTEM: LINUX, SOLARIS, IRIX ...
__OMNI_SPIN_LOCK__
Defined if the configuration matches 'spin-*'.
__OMNI_MUTEX_LOCK__
Defined if the configuration matches 'mutex-*'.
__OMNI_PTHREAD__
Defined if the configuration matches '*-pthread'.
__OMNI_SOLARIS_THREAD__
Defined if the configuration matches '*-solaris'.
__OMNI_SPROC__
Defined if the configuration matches '*-sproc'.
__OMNI_SHMEM__
Defined if the configuration is 'shmem'.
__OMNI_SCASH__
Defined if the configuration is 'scash'.
__OMNI_STACKTHREADS__
Defined if the configuration is 'stackthreads'.
ENVIRONMENT VARIABLES
In addition to OpenMP standard environment variables
Omni environment variables controls the parallel execution.
See Omni Environment Variables .
FILES
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 .