mirror of
https://review.haiku-os.org/buildtools
synced 2025-01-31 10:34:41 +01:00
0b514caa50
Moving it inside gcc dir allows gcc to detect and build isl while building gcc. It has dependencies on other libraries that would need to be prebuilt if we build it ourselves. This is one of a few steps in building gcc with isl and allowing graphite optimization flags.
47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
#ifndef ISL_BAND_PRIVATE_H
|
|
#define ISL_BAND_PRIVATE_H
|
|
|
|
#include <isl/aff.h>
|
|
#include <isl/band.h>
|
|
#include <isl/list.h>
|
|
#include <isl/schedule.h>
|
|
|
|
/* Information about a band within a schedule.
|
|
*
|
|
* n is the number of scheduling dimensions within the band.
|
|
* zero is an array of length n, indicating whether a scheduling dimension
|
|
* results in zero dependence distances for the proximity dependences.
|
|
* pma is the partial schedule corresponding to this band.
|
|
* schedule is the schedule that contains this band.
|
|
* parent is the parent of this band (or NULL if the band is a root).
|
|
* children are the children of this band (or NULL if the band is a leaf).
|
|
*
|
|
* To avoid circular dependences in the reference counting,
|
|
* the schedule and parent pointers are not reference counted.
|
|
* isl_band_copy increments the reference count of schedule to ensure
|
|
* that outside references to the band keep the schedule alive.
|
|
*/
|
|
struct isl_band {
|
|
int ref;
|
|
|
|
int n;
|
|
int *zero;
|
|
|
|
isl_union_pw_multi_aff *pma;
|
|
isl_schedule *schedule;
|
|
isl_band *parent;
|
|
isl_band_list *children;
|
|
};
|
|
|
|
#undef EL
|
|
#define EL isl_band
|
|
|
|
#include <isl_list_templ.h>
|
|
|
|
__isl_give isl_band *isl_band_alloc(isl_ctx *ctx);
|
|
|
|
__isl_give isl_union_map *isl_band_list_get_suffix_schedule(
|
|
__isl_keep isl_band_list *list);
|
|
|
|
#endif
|