[4.2 projects] Omega data dependence test
Sebastian Pop
sebpop@gmail.com
Sat Mar 25 01:24:00 GMT 2006
Hi,
Here are the bits from the autovect-branch that implement the omega data
dependence test. The only pass that is using the information computed by
omega is the data dependence checker that ensures that both the old and this
new analyzer are producing the same output.
I have bootstrapped and tested this patch on top of the following patch:
http://gcc.gnu.org/ml/gcc-patches/2006-03/msg01516.html
with no new regressions on amd64-linux.
I have also bootstrapped gcc with BOOT_CFLAGS="-O2 -fcheck-data-deps"
and there was a single mismatch: this is actually a scev problem that I will
correct in a followup patch.
Sebastian
* tree-data-ref.c (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
(initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
(init_omega_eq_with_af, omega_extract_distance_vectors, check_ddr
omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr): New.
(compute_affine_dependence): Call check_ddr when flag_check_data_deps
is set.
(analyze_all_data_dependences): Uncomment.
(tree_check_data_deps): New.
* tree-data-ref.h: Depends on omega.h.
(data_dependence_relation): Add a field inner_loop.
(DDR_INNER_LOOP): New.
* omega.h: New.
* omega.c: New.
* Makefile.in (TREE_DATA_REF_H): Depends on omega.h.
(OBJS-common): Depends on omega.o.
(omega.o): New rule.
* timevar.def (TV_CHECK_DATA_DEPS): New.
* passes.c: Schedule pass_check_data_deps.
* tree-pass.h (pass_check_data_deps): Declared.
* doc/invoke.texi (-fcheck-data-deps, omega-max-vars, omega-max-geqs,
omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
omega-max-keys): Documented.
* tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
pass_check_data_deps): New.
* common.opt (fcheck-data-deps): New.
* params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS): New.
* tree-flow.h (tree_check_data_deps): Declared.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 528_omega_trunk.diff.gz
Type: application/x-gzip
Size: 45474 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20060325/59dc8fee/attachment.bin>
More information about the Gcc-patches
mailing list