Loop unrolling update.

- deal with non-operation stmt's (if/for stmt's) in loops being unrolled
  (unrolling of non-innermost loops works).
- update uses in unrolled bodies to use results of new operations that may be
  introduced in the unrolled bodies.

Unrolling now works for all kinds of loop nests - perfect nests, imperfect
nests, loops at any depth, and with any kind of operation in the body. (IfStmt
support not done, hence untested there).

Added missing dump/print method for StmtBlock.

TODO: add test case for outer loop unrolling.
PiperOrigin-RevId: 207314286
9 files changed
tree: e548b6f20da6f770b543cc5dbe9a2c715e6027bd
  1. include/
  2. lib/
  3. test/
  4. tools/
  5. utils/
  6. .clang-format
  7. LICENSE.TXT