Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * Copyright 2008-2009 Katholieke Universiteit Leuven
  3.  *
  4.  * Use of this software is governed by the MIT license
  5.  *
  6.  * Written by Sven Verdoolaege, K.U.Leuven, Departement
  7.  * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
  8.  */
  9.  
  10. #ifndef ISL_VEC_H
  11. #define ISL_VEC_H
  12.  
  13. #include <stdio.h>
  14.  
  15. #include <isl/ctx.h>
  16. #include <isl/val_type.h>
  17. #include <isl/printer.h>
  18.  
  19. #if defined(__cplusplus)
  20. extern "C" {
  21. #endif
  22.  
  23. struct isl_vec;
  24. typedef struct isl_vec isl_vec;
  25.  
  26. __isl_give isl_vec *isl_vec_alloc(isl_ctx *ctx, unsigned size);
  27. __isl_give isl_vec *isl_vec_zero(isl_ctx *ctx, unsigned size);
  28. __isl_give isl_vec *isl_vec_copy(__isl_keep isl_vec *vec);
  29. __isl_null isl_vec *isl_vec_free(__isl_take isl_vec *vec);
  30.  
  31. isl_ctx *isl_vec_get_ctx(__isl_keep isl_vec *vec);
  32.  
  33. isl_size isl_vec_size(__isl_keep isl_vec *vec);
  34. __isl_give isl_val *isl_vec_get_element_val(__isl_keep isl_vec *vec, int pos);
  35. __isl_give isl_vec *isl_vec_set_element_si(__isl_take isl_vec *vec,
  36.         int pos, int v);
  37. __isl_give isl_vec *isl_vec_set_element_val(__isl_take isl_vec *vec,
  38.         int pos, __isl_take isl_val *v);
  39.  
  40. isl_bool isl_vec_is_equal(__isl_keep isl_vec *vec1, __isl_keep isl_vec *vec2);
  41. int isl_vec_cmp_element(__isl_keep isl_vec *vec1, __isl_keep isl_vec *vec2,
  42.         int pos);
  43.  
  44. void isl_vec_dump(__isl_keep isl_vec *vec);
  45. __isl_give isl_printer *isl_printer_print_vec(__isl_take isl_printer *printer,
  46.         __isl_keep isl_vec *vec);
  47.  
  48. __isl_give isl_vec *isl_vec_ceil(__isl_take isl_vec *vec);
  49. __isl_give isl_vec *isl_vec_normalize(__isl_take isl_vec *vec);
  50. __isl_give isl_vec *isl_vec_set_si(__isl_take isl_vec *vec, int v);
  51. __isl_give isl_vec *isl_vec_set_val(__isl_take isl_vec *vec,
  52.         __isl_take isl_val *v);
  53. __isl_give isl_vec *isl_vec_clr(__isl_take isl_vec *vec);
  54. __isl_give isl_vec *isl_vec_neg(__isl_take isl_vec *vec);
  55. __isl_give isl_vec *isl_vec_add(__isl_take isl_vec *vec1,
  56.         __isl_take isl_vec *vec2);
  57. __isl_give isl_vec *isl_vec_extend(__isl_take isl_vec *vec, unsigned size);
  58. __isl_give isl_vec *isl_vec_zero_extend(__isl_take isl_vec *vec, unsigned size);
  59. __isl_give isl_vec *isl_vec_concat(__isl_take isl_vec *vec1,
  60.         __isl_take isl_vec *vec2);
  61.  
  62. __isl_give isl_vec *isl_vec_sort(__isl_take isl_vec *vec);
  63.  
  64. __isl_give isl_vec *isl_vec_read_from_file(isl_ctx *ctx, FILE *input);
  65.  
  66. __isl_give isl_vec *isl_vec_drop_els(__isl_take isl_vec *vec,
  67.         unsigned pos, unsigned n);
  68. __isl_give isl_vec *isl_vec_add_els(__isl_take isl_vec *vec, unsigned n);
  69. __isl_give isl_vec *isl_vec_insert_els(__isl_take isl_vec *vec,
  70.         unsigned pos, unsigned n);
  71. __isl_give isl_vec *isl_vec_insert_zero_els(__isl_take isl_vec *vec,
  72.         unsigned pos, unsigned n);
  73. __isl_give isl_vec *isl_vec_move_els(__isl_take isl_vec *vec,
  74.         unsigned dst_col, unsigned src_col, unsigned n);
  75.  
  76. #if defined(__cplusplus)
  77. }
  78. #endif
  79.  
  80. #endif
  81.