PetScan::extract_affine(const llvm::APInt &): extract as pet_expr first
[pet.git] / options.c
blob0028606ad040ba775504d32ce13b524bab2bd1e4
1 /*
2 * Copyright 2011 Leiden University. All rights reserved.
3 * Copyright 2013-2014 Ecole Normale Superieure. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above
13 * copyright notice, this list of conditions and the following
14 * disclaimer in the documentation and/or other materials provided
15 * with the distribution.
17 * THIS SOFTWARE IS PROVIDED BY LEIDEN UNIVERSITY ''AS IS'' AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL LEIDEN UNIVERSITY OR
21 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 * The views and conclusions contained in the software and documentation
30 * are those of the authors and should not be interpreted as
31 * representing official policies, either expressed or implied, of
32 * Leiden University.
33 */
35 #include <pet.h>
36 #include "options.h"
37 #include "version.h"
39 struct isl_arg_choice pet_signed_overflow[] = {
40 {"avoid", PET_OVERFLOW_AVOID},
41 {"ignore", PET_OVERFLOW_IGNORE},
42 {0}
45 ISL_ARGS_START(struct pet_options, pet_options_args)
46 ISL_ARG_BOOL(struct pet_options, autodetect, 0, "autodetect", 0, NULL)
47 ISL_ARG_BOOL(struct pet_options, detect_conditional_assignment,
48 0, "detect-conditional-assignment", 1, NULL)
49 ISL_ARG_CHOICE(struct pet_options, signed_overflow, 0,
50 "signed-overflow", pet_signed_overflow, PET_OVERFLOW_AVOID,
51 "how to handle signed overflows")
52 ISL_ARG_STR_LIST(struct pet_options, n_path, paths, 'I', "include-path",
53 "path", NULL)
54 ISL_ARG_STR_LIST(struct pet_options, n_define, defines, 'D', NULL,
55 "macro[=defn]", NULL)
56 ISL_ARG_VERSION(&pet_print_version)
57 ISL_ARGS_END
59 ISL_ARG_DEF(pet_options, struct pet_options, pet_options_args)
60 ISL_ARG_CTX_DEF(pet_options, struct pet_options, pet_options_args)
62 ISL_CTX_SET_BOOL_DEF(pet_options, struct pet_options, pet_options_args,
63 autodetect)
64 ISL_CTX_GET_BOOL_DEF(pet_options, struct pet_options, pet_options_args,
65 autodetect)
67 ISL_CTX_SET_BOOL_DEF(pet_options, struct pet_options, pet_options_args,
68 detect_conditional_assignment)
69 ISL_CTX_GET_BOOL_DEF(pet_options, struct pet_options, pet_options_args,
70 detect_conditional_assignment)
72 ISL_CTX_SET_CHOICE_DEF(pet_options, struct pet_options, pet_options_args,
73 signed_overflow)
74 ISL_CTX_GET_CHOICE_DEF(pet_options, struct pet_options, pet_options_args,
75 signed_overflow)