[PATCH] D42136: [Polly][StmtBuilder] Revise statement naming when there are multiple statements per BB.

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 16 14:52:18 PST 2018


Meinersbur created this revision.
Meinersbur added reviewers: grosser, eli.friedman.
Meinersbur added a project: Polly.
Herald added a reviewer: bollu.

The goal is to have -polly-stmt-granularity=bb and -polly-stmt-granularity=scalar-indep to have the same names if there is just one statement per basic block.

This fixes a fluke when Polybench's jacobi-2d is optimized differently depending on the -polly-stmt-granularity option, although both options create the same SCoP, just with different statement names.

The new naming scheme is:

With -polly-use-llvm-names=0:
Stmt<BBIdx as decimal><Idx within BB as letter>

With -polly-use-llvm-names=1:
Stmt_for_BBName_<Idx within BB as letter>

The <Idx within BB> part is omitted for the main statement of a BB. The main statement is either the one containing the first store or call (those cannot be removed by the simplifyer), or if there is no such instruction, the first. If after simplification there is just a single statement left, it should be the main statement and have the same names as with -polly-stmt-granularity=bb.


Repository:
  rPLO Polly

https://reviews.llvm.org/D42136

Files:
  lib/Analysis/ScopBuilder.cpp
  test/ScopInfo/granularity_same_name.ll
  test/ScopInfo/granularity_scalar-indep.ll
  test/ScopInfo/granularity_scalar-indep_epilogue.ll
  test/ScopInfo/stmt_split_exit_of_region_stmt.ll
  test/ScopInfo/stmt_split_no_dependence.ll
  test/ScopInfo/stmt_split_on_store.ll
  test/ScopInfo/stmt_split_on_synthesizable.ll
  test/ScopInfo/stmt_split_phi_in_beginning_bb.ll
  test/ScopInfo/stmt_split_phi_in_stmt.ll
  test/ScopInfo/stmt_split_scalar_dependence.ll
  test/ScopInfo/stmt_split_within_loop.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42136.130035.patch
Type: text/x-patch
Size: 18394 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180116/3bd57491/attachment-0001.bin>


More information about the llvm-commits mailing list