llvm-project/polly/lib/CodeGen
Hongbin Zheng 8831eb7db4 [Refactor] Move isl_ctx into Scop.
After we moved isl_ctx into Scop, we need to free the isl_ctx after
  freeing all isl objects, which requires the ScopInfo pass to be freed
  at last. But this is not guaranteed by the PassManager, and we need
  extra code to free the isl_ctx at the right time.

  We introduced a shared pointer to manage the isl_ctx, and distribute
  it to all analyses that create isl objects. As such, whenever we free
  an analyses with the shared_ptr (and also free the isl objects which
  are created by the analyses), we decrease the (shared) reference
  counter of the shared_ptr by 1. Whenever the reference counter reach
  0 in the releaseMemory function of an analysis, that analysis will
  be the last one that hold any isl objects, and we can safely free the
  isl_ctx with that analysis.

Differential Revision: http://reviews.llvm.org/D17241

llvm-svn: 261100
2016-02-17 15:49:21 +00:00
..
BlockGenerators.cpp Replace getLoopForInst by getLoopForStmt 2016-02-16 12:36:14 +00:00
CodeGeneration.cpp CodeGeneration: Add back verification of generated code 2016-02-14 20:56:49 +00:00
CodegenCleanup.cpp Fix of r257495. 2016-01-12 20:47:48 +00:00
IRBuilder.cpp Introduce MemAccInst helper class; NFC 2016-01-27 17:09:17 +00:00
IslAst.cpp [Refactor] Move isl_ctx into Scop. 2016-02-17 15:49:21 +00:00
IslExprBuilder.cpp ScopInfo: Make getDimensionSize better reflect which dimensions carry sizes 2015-11-10 14:24:21 +00:00
IslNodeBuilder.cpp Set AST Build for all statements [NFC] 2016-02-16 12:11:03 +00:00
LoopGenerators.cpp Adjust formatting to clang-format changes in 256149 2015-12-21 12:38:56 +00:00
RuntimeDebugBuilder.cpp polly/ADT: Remove implicit ilist iterator conversions, NFC 2015-11-06 22:56:54 +00:00
Utils.cpp executeScopConditionally: Introduce special exiting block 2015-12-09 11:38:22 +00:00