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                          74
00039 # else
00040 #  define POCC_NB_OPTS                          68
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_NO_PAST                       52
00102 # define POCC_OPT_PAST_OPTIMIZE_LOOP_BOUND      53
00103 # define POCC_OPT_PRAGMATIZER                   54
00104 
00105 # define POCC_OPT_PTILE                         55
00106 # define POCC_OPT_PTILE_FTS                     56
00107 
00108 # define POCC_OPT_PUNROLL                       57
00109 # define POCC_OPT_PUNROLL_AND_JAM               58
00110 # define POCC_OPT_PUNROLL_SIZE                  59
00111 
00112 # define POCC_OPT_VECTORIZER                    60
00113 
00114 /* Devel-only options. */
00115 # define POCC_OPT_VECT_MARK_PAR_LOOPS           61
00116 # define POCC_OPT_VECT_NO_KEEP_OUTER_PAR_LOOPS  62
00117 # define POCC_OPT_VECT_SINK_ALL_LOOPS           63
00118 # define POCC_OPT_STORCOMPACT                   64
00119 # define POCC_OPT_AC_KEEP_OUTERPAR              65
00120 # define POCC_OPT_AC_KEEP_VECTORIZED            66
00121 
00122 # ifndef POCC_RELEASE_MODE
00123 #  define POCC_OPT_CODEGEN_TIMERCODE            67
00124 #  define POCC_OPT_CODEGEN_TIMER_ASM            68
00125 #  define POCC_OPT_CODEGEN_TIMER_PAPI           69
00126 #  define POCC_OPT_COMPILE                      70
00127 #  define POCC_OPT_COMPILE_CMD                  71
00128 #  define POCC_OPT_RUN_CMD_ARGS                 72
00129 #  define POCC_OPT_PROGRAM_TIMEOUT              73
00130 # else
00131 #  define POCC_OPT_CODEGEN_TIMERCODE            61
00132 #  define POCC_OPT_CODEGEN_TIMER_ASM            62
00133 #  define POCC_OPT_CODEGEN_TIMER_PAPI           63
00134 #  define POCC_OPT_COMPILE                      64
00135 #  define POCC_OPT_COMPILE_CMD                  65
00136 #  define POCC_OPT_RUN_CMD_ARGS                 66
00137 #  define POCC_OPT_PROGRAM_TIMEOUT              67
00138 # endif
00139 
00140 BEGIN_C_DECLS
00141 
00142 extern
00143 int
00144 pocc_getopts(s_pocc_options_t* options, int argc, char** argv);
00145 
00146 END_C_DECLS
00147 
00148 #endif // POCC_SRC_OPTIONS_H