Open
Description
- Make sure dataflow analysis only runs on method bodies that have references to linker-unfriendly methods/fields/or are linker unfriendly themselves.
- Make
StackSlot
a struct, or eliminateStackSlot
by replacing it withValueNode
. - Other misc perf measurements and optimizations
- Make sure unsafe reflection pattern reporting can handle multiple reported values (for e.g.
Activator. CreateInstance(cond ? typeof(Foo) : typeof(Bar))
). - Replace HashHelper with HashCode struct (commit 88b158e in [feature/dataflow] Add dataflow analysis prototype #994 tried to do it but hit trouble in tests)
- Remove usage of lambdas which require closure - requires allocation on every call
- Measure and optimize the number of methods full method body scanning runs on
- Make annotation JSON generic - Make the supplementary custom attribute annotations general purpose #1118
- Handle assemblies referenced only via reflection - [feature/dataflow] Add a pre-pass to scan type name strings in the app #1079 and Reflection patterns can not resolve assemblies outside of the reference closure #943
- Design and implement programmatic way to fully disable method body scanning - [feature/dataflow] Design and implement programmatic way to disable method body scanning #1102
- Optimize the way we detect intrinsic - instead of switch on every referenced method, look these up upfront and build annotation cache
- Investigate a better way to compute annotations - currently done per-type (so referencing one thing on a type forces full annotation cache to be build for the entire type). Can we do it more incrementally?