**Theoretically**[1]:

Data dependency algorithms in trunk is mostly with I test and Omega test. Both of them are limited. Here is a comparison between them.

- Precise level
- I test (GCD test and Banerjee test): Only evaluates the ability to prove or disprove dependence between statements.
- Omega test: Can give a precise level (Tell which iteration of statements are in dependent), but less precise when there is one or more integer symbolic constant are present.
- Polyhedral dependence: Give the right precision level ( Will tell which iteration of statements are in dependent).

- Triangle loops
- I test and Omega test: Can not handle.
- Polyhedral dependence: Can handle.

- conditionals with boolean expressions of affine inequalities
- I test and Omega test: Can not handle.
- Polyhedral dependence: Can handle.

- Cost
- I test: It cost less and is always preferred because they capture most dependency under a low computational cost.
- Omega test: Worst exponential complexities, but works good in practice.
- Polyhedral dependence: High cost.

Reference: [1] Violated Dependence Analysis by Nicolas Vasilache, Albert Cohen, Cedric Bastoul, Sylvain Girbal.

**Practically (Implement in Graphite)**:

/* FIXME: Need to be added. */