diff options
author | Michal Strehovský <MichalStrehovsky@users.noreply.github.com> | 2017-05-16 00:01:24 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-16 00:01:24 +0300 |
commit | 85d38d522ca2b96a823cbbb99c903e5638a412a3 (patch) | |
tree | a2687a9f497dc27499a83df1e21ee0972dd3917d /src/ILCompiler.DependencyAnalysisFramework | |
parent | 3a91ef88ae57b344f632cc76e56166cccac92077 (diff) |
Add IL scanner phase (#3503)
This adds an initial implementation of an IL scanner that will scan method bodies, starting from the provided compilation roots, and expand the dependency graph based on scanning the IL, to determine the set of methods (and types, and other interesting artifacts) that will be compiled.
This nicely plugs into the existing architecture where the scanner looks almost just like another codegen backend - we have a separate NodeFactory for it, a separate builder class, and a separate compilation class. The actual IL parsing reuses the importer written for CppCodegen and ILVerifier.
The results of the scanning phase will flow into the metadata generator and potentially other parts of the system.
Diffstat (limited to 'src/ILCompiler.DependencyAnalysisFramework')
-rw-r--r-- | src/ILCompiler.DependencyAnalysisFramework/src/DependencyNodeCore.cs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ILCompiler.DependencyAnalysisFramework/src/DependencyNodeCore.cs b/src/ILCompiler.DependencyAnalysisFramework/src/DependencyNodeCore.cs index d43c61e57..9b01f5eb3 100644 --- a/src/ILCompiler.DependencyAnalysisFramework/src/DependencyNodeCore.cs +++ b/src/ILCompiler.DependencyAnalysisFramework/src/DependencyNodeCore.cs @@ -34,6 +34,13 @@ namespace ILCompiler.DependencyAnalysisFramework public class DependencyList : List<DependencyListEntry> { + public DependencyList() { } + + public DependencyList(IEnumerable<DependencyListEntry> collection) + : base(collection) + { + } + public void Add(DependencyNodeCore<DependencyContextType> node, string reason) { |