Commit Graph

5 Commits

Author SHA1 Message Date
Michael Gottesman
3ecf26cc40 Convert SILLoopAnalysis to use FunctionAnalysisBase.
Swift SVN r32274
2015-09-28 08:42:46 +00:00
Erik Eckstein
b468f9f339 Add a way that SILAnalysis can retrieve (and store) other analysis which they depend on.
So far this was done by directly calling PM->getAnalysis() in create*Analysis().
But this required a correct order of analysis definitions in Analysis.def.



Swift SVN r31941
2015-09-14 22:34:36 +00:00
Michael Gottesman
0276d86694 Add Analysis.def to allow for metaprogramming with Analysis names.
This allows one by editing one place to create an Analysis kind and ensure that
your analysis is properly registered in all of the relevant places for use with
swift/sil-opt.

If we add tools like a sil bugpoint, this will make it easy to add analysis
without having to know about all of these locations.

It also standardizes the create***Analysis API to take a SILModule and a
SILPassManager. All passes take in a SILModule and some take in a
SILPassManager. By standardizing the API and in the cases where SILPassManager
is not used, just making it a dead argument enables metaprogramming.

Swift SVN r31420
2015-08-23 19:31:27 +00:00
Nadav Rotem
240ff14db1 Split DominanceAnalysis into Dom and PDom using FunctionAnalysisBase.
This commit splits DominanceAnalysis into two analysis (Dom and PDom) that
can be cached and invalidates using the common FunctionAnalysisBase interface
independent of one another.

Swift SVN r26643
2015-03-27 20:54:28 +00:00
Michael Gottesman
24c138f29c Move SILLoopInfo into swiftSIL from swiftSILAnalysis so that we match the separation in between analysis and IR entities.
This follows the model of dominance info and allows me to create reachability
methods on SILBasicBlock without creating dependencies from swiftSIL to
swiftSILAnalysis.

Swift SVN r21866
2014-09-11 03:03:06 +00:00