explicitly link in gmp when using libisl.la
[ppcg.git] / ppcg.c
blob6ec582fbee2f9ca9921afccb1b642b83e754733f
1 /*
2 * Copyright 2011 INRIA Saclay
4 * Use of this software is governed by the GNU LGPLv2.1 license
6 * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France,
7 * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod,
8 * 91893 Orsay, France
9 */
11 #include <assert.h>
12 #include <stdio.h>
13 #include <isl/ctx.h>
14 #include <isl/options.h>
15 #include <pet.h>
16 #include "ppcg_options.h"
17 #include "cuda.h"
19 struct options {
20 struct isl_options *isl;
21 struct ppcg_options *ppcg;
22 char *input;
25 struct isl_arg options_arg[] = {
26 ISL_ARG_CHILD(struct options, isl, "isl", isl_options_arg, "isl options")
27 ISL_ARG_CHILD(struct options, ppcg, NULL, ppcg_options_arg, NULL)
28 ISL_ARG_ARG(struct options, input, "input", NULL)
29 ISL_ARG_END
32 ISL_ARG_DEF(options, struct options, options_arg)
34 int main(int argc, char **argv)
36 int r;
37 isl_ctx *ctx;
38 struct options *options;
39 FILE *input;
40 struct pet_scop *scop;
42 options = options_new_with_defaults();
43 assert(options);
44 argc = options_parse(options, argc, argv, ISL_ARG_ALL);
46 ctx = isl_ctx_alloc_with_options(options_arg, options);
48 scop = pet_scop_extract_from_C_source(ctx, options->input, NULL, 0);
49 r = cuda_pet(ctx, scop, options->ppcg, options->input);
50 pet_scop_free(scop);
52 isl_ctx_free(ctx);
54 return r;