PoCC Version 1.0
options.h
Go to the documentation of this file.
00001 /*
00002  * options.h: this file is part of the PoCC project.
00003  *
00004  * PoCC, the Polyhedral Compiler Collection package
00005  *
00006  * Copyright (C) 2009 Louis-Noel Pouchet
00007  *
00008  * This library is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public License
00010  * as published by the Free Software Foundation; either version 2.1
00011  * of the License, or (at your option) any later version.
00012  *
00013  * This library is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * The complete GNU General Public Licence Notice can be found as the
00019  * `COPYING.LESSER' file in the root directory.
00020  *
00021  * Author:
00022  * Louis-Noel Pouchet <Louis-Noel.Pouchet@inria.fr>
00023  *
00024  */
00025 #ifndef POCC_SRC_OPTIONS_H
00026 # define POCC_SRC_OPTIONS_H
00027 
00028 # include <stdio.h>
00029 
00030 # if HAVE_CONFIG_H
00031 #  include <pocc-utils/config.h>
00032 # endif
00033 
00034 # include <pocc/options.h>
00035 # include "getopts.h"
00036 
00037 # ifndef POCC_RELEASE_MODE
00038 #  define POCC_NB_OPTS                          73
00039 # else
00040 #  define POCC_NB_OPTS                          67
00041 # endif
00042 
00043 # define POCC_OPT_HELP                          0
00044 # define POCC_OPT_VERSION                       1
00045 # define POCC_OPT_OUTFILE                       2
00046 # define POCC_OPT_OUTFILE_SCOP                  3
00047 # define POCC_OPT_CLOOGIFY_SCHED                4
00048 # define POCC_OPT_BOUNDED_CTXT                  5
00049 # define POCC_OPT_DEFAULT_CTXT                  6
00050 # define POCC_OPT_INSCOP_FAKEARRAY              7
00051 # define POCC_OPT_READ_SCOP_FILE                8
00052 
00053 # define POCC_OPT_NO_CANDL                      9
00054 # define POCC_OPT_CANDL_DEP_ISL_SIMP            10
00055 # define POCC_OPT_CANDL_DEP_PRUNE_DUPS          11
00056 
00057 # define POCC_OPT_POLYFEAT                      12
00058 # define POCC_OPT_POLYFEAT_RAR                  13
00059 
00060 # define POCC_OPT_TRASH                         14
00061 # define POCC_OPT_VERBOSE                       15
00062 # define POCC_OPT_QUIET                         16
00063 
00064 # define POCC_OPT_LETSEE                        17
00065 # define POCC_OPT_LETSEE_SEARCHSPACE            18
00066 # define POCC_OPT_LETSEE_TRAVERSAL              19
00067 # define POCC_OPT_LETSEE_DRY_RUN                20
00068 # define POCC_OPT_LETSEE_NORMSPACE              21
00069 # define POCC_OPT_LETSEE_BOUNDS                 22
00070 # define POCC_OPT_LETSEE_SCHEME_M1              23
00071 # define POCC_OPT_LETSEE_RTRIES                 24
00072 # define POCC_OPT_LETSEE_PRUNE_PRECUT           25
00073 # define POCC_OPT_LETSEE_BACKTRACK_MULTI        26
00074 
00075 # define POCC_OPT_PLUTO                         27
00076 # define POCC_OPT_PLUTO_PARALLEL                28
00077 # define POCC_OPT_PLUTO_TILE                    29
00078 # define POCC_OPT_PLUTO_L2TILE                  30
00079 # define POCC_OPT_PLUTO_FUSE                    31
00080 # define POCC_OPT_PLUTO_UNROLL                  32
00081 # define POCC_OPT_PLUTO_UFACTOR                 33
00082 # define POCC_OPT_PLUTO_POLYUNROLL              34
00083 # define POCC_OPT_PLUTO_PREVECTOR               35
00084 # define POCC_OPT_PLUTO_MULTIPIPE               36
00085 # define POCC_OPT_PLUTO_RAR                     37
00086 # define POCC_OPT_PLUTO_RAR_CF                  38
00087 # define POCC_OPT_PLUTO_LASTWRITER              39
00088 # define POCC_OPT_PLUTO_SCALPRIV                40
00089 # define POCC_OPT_PLUTO_BEE                     41
00090 # define POCC_OPT_PLUTO_QUIET                   42
00091 # define POCC_OPT_PLUTO_FT                      43
00092 # define POCC_OPT_PLUTO_LT                      44
00093 # define POCC_OPT_PLUTO_EXTERNAL_CANDL          45
00094 # define POCC_OPT_PLUTO_TILING_IN_SCATT         46
00095 # define POCC_OPT_PLUTO_BOUND_COEF              47
00096 
00097 # define POCC_OPT_NOCODEGEN                     48
00098 # define POCC_OPT_CLOOG_F                       49
00099 # define POCC_OPT_CLOOG_L                       50
00100 # define POCC_OPT_PRINT_CLOOG_FILE              51
00101 # define POCC_OPT_USE_PAST                      52
00102 # define POCC_OPT_PRAGMATIZER                   53
00103 
00104 # define POCC_OPT_PTILE                         54
00105 # define POCC_OPT_PTILE_FTS                     55
00106 
00107 # define POCC_OPT_PUNROLL                       56
00108 # define POCC_OPT_PUNROLL_AND_JAM               57
00109 # define POCC_OPT_PUNROLL_SIZE                  58
00110 
00111 # define POCC_OPT_VECTORIZER                    59
00112 
00113 /* Devel-only options. */
00114 # define POCC_OPT_VECT_MARK_PAR_LOOPS           60
00115 # define POCC_OPT_VECT_NO_KEEP_OUTER_PAR_LOOPS  61
00116 # define POCC_OPT_VECT_SINK_ALL_LOOPS           62
00117 # define POCC_OPT_STORCOMPACT                   63
00118 # define POCC_OPT_AC_KEEP_OUTERPAR              64
00119 # define POCC_OPT_AC_KEEP_VECTORIZED            65
00120 
00121 # ifndef POCC_RELEASE_MODE
00122 #  define POCC_OPT_CODEGEN_TIMERCODE            66
00123 #  define POCC_OPT_CODEGEN_TIMER_ASM            67
00124 #  define POCC_OPT_CODEGEN_TIMER_PAPI           68
00125 #  define POCC_OPT_COMPILE                      69
00126 #  define POCC_OPT_COMPILE_CMD                  70
00127 #  define POCC_OPT_RUN_CMD_ARGS                 71
00128 #  define POCC_OPT_PROGRAM_TIMEOUT              72
00129 # else
00130 #  define POCC_OPT_CODEGEN_TIMERCODE            60
00131 #  define POCC_OPT_CODEGEN_TIMER_ASM            61
00132 #  define POCC_OPT_CODEGEN_TIMER_PAPI           62
00133 #  define POCC_OPT_COMPILE                      63
00134 #  define POCC_OPT_COMPILE_CMD                  64
00135 #  define POCC_OPT_RUN_CMD_ARGS                 65
00136 #  define POCC_OPT_PROGRAM_TIMEOUT              66
00137 # endif
00138 
00139 BEGIN_C_DECLS
00140 
00141 extern
00142 int
00143 pocc_getopts(s_pocc_options_t* options, int argc, char** argv);
00144 
00145 END_C_DECLS
00146 
00147 #endif // POCC_SRC_OPTIONS_H