Some minor nits.

+// There can be only one running at a time.
+static phi_analyzer *phi_analysis_object = NULL;

Shouldn't this be phi_analyzer_object to be more consistent? Similarly throughout.

+// Create a new phi_group with members BM, initialvalue INIT_VAL, modifier
+// statement MOD, and resolve values using query Q.
+// Calculate the range for the gropup if possible, otherwise set it to
+// VARYING.
+
+phi_group::phi_group (bitmap bm, tree init_val, edge e, gimple *mod,
+                     range_query *q)

Could you document what this edge refers to?

+  // we dont expect a modifer and no inital value, so trap to have a look.
+  // perhaps they are dead cycles and we can just used UNDEFINED.

"We don't"...

"Perhaps..."

s/used/use

+// Return 0 if S is not a modifier statment for group members BM.
+// If it could be a modifier, return which operand position (1 or 2)
+// the phi member occurs in.
+unsigned
+phi_group::is_modifier_p (gimple *s, const bitmap bm)

"not" a modifier?  Or *is* a modifier?

s/statment/statement

+  // Look at the modifier for any relation

Missing final period.

+  for (unsigned x = 0; x< 10; x++)

Space before "<"

+  // Never converged, so bail for now. we could examine the pattern
+  // from m_initial to m_vr as an extension  Especially if we had a way
+  // to project the actual number of iterations (SCEV?)

s/we/We/

s/extension Especially/extension, especially/

+// IF the modifier statement has a relation K between the modifier and the

s/IF/If/

+  // If the type wraps, then relations dont tell us much.

s/dont/don't/

+//   m_tab.safe_grow_cleared (num_ssa_names + 100);

why is this commented out?

+         // Other non-ssa names that arent constants are not understood

s/arent/aren't/

+         // Try to create a group based on m_current. If a result comes back

Two spaces after period.

+  // If this dpoesn;t form a group, all members are instead simple phis.

doesn't

+// their arguemnts contain nothing but other PHI defintions, with at most

arguments
definitions

+// These are the APIs to start and stop a phi analyzerin a SCEV like manner.

analyzer

Thanks for working on this.
Aldy

Reply via email to