From 6983c09937baac3ffb7d3a45c3c5009c0eba7e6c Mon Sep 17 00:00:00 2001 From: Tuowen Zhao Date: Tue, 20 Sep 2016 15:56:14 -0600 Subject: python loop & more doc --- include/irtools.hh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'include/irtools.hh') diff --git a/include/irtools.hh b/include/irtools.hh index a3b552a..6648847 100644 --- a/include/irtools.hh +++ b/include/irtools.hh @@ -33,12 +33,41 @@ struct ir_tree_node { } }; +//! Build IR tree from the source code +/*! + * Block type node can only be leaf, i.e., there is no further stuctures inside a block allowed + * @param control + * @param parent + * @return + */ std::vector build_ir_tree(IR_Control *control, ir_tree_node *parent = NULL); +//! Extract statements from IR tree +/*! + * Statements returned are ordered in lexical order in the source code + * @param ir_tree + * @return + */ std::vector extract_ir_stmts( const std::vector &ir_tree); bool is_dependence_valid(ir_tree_node *src_node, ir_tree_node *dst_node, const DependenceVector &dv, bool before); +//! test data dependeces between two statements +/*! + * The first statement in parameter must be lexically before the second statement in parameter. + * Returned dependences are all lexicographically positive + * @param ir + * @param repr1 + * @param IS1 + * @param repr2 + * @param IS2 + * @param freevar + * @param index + * @param i + * @param j + * @return Dependecies between the two statements. First vector is dependencies from first to second, + * second vector is the reverse + */ std::pair, std::vector > test_data_dependences( IR_Code *ir, const omega::CG_outputRepr *repr1, const omega::Relation &IS1, const omega::CG_outputRepr *repr2, -- cgit v1.2.3-70-g09d2