intraprocedural dataflow analysis for software product lines claus brabrand márcio ribeiro társis...
TRANSCRIPT
Intraprocedural Dataflow Analysis for Software
Product LinesClaus BrabrandMárcio RibeiroTársis TolêdoPaulo Borba
Preprocessor Directives
Image logo;
#ifndef GLIDERlogo = Image.create(“/icon.png”);#endif
UILabel uimg = new UILabel(logo);
Preprocessor Directives
Image logo;
#ifndef GLIDERlogo = Image.create(“/icon.png”);#endif
UILabel uimg = new UILabel(logo);
Possibly unitialized variable!
Dataflow Analysis for Software Product Lines
But first…
Control Flow Graph (CFG)
x = 0;while (...){
x++;}
1
Lattice
2
Transfer Functions
3
x++;
Putting It All Together
The Real Deal
A1: Brute Force
A2: Consecutive Analysis
A3: Simultaneous Analysis
A4: Shared Simultaneous Analysis
A1:Brute Force
int x = 0;#ifdef (A) x++;#ifdef (B) x--;
A2: Consecutive Analysis
A3: Sim.Analysis
A4: Shared Analysis
All possible configurations!
Evaluation
Study Settings
CIDE as the preprocessorSOOT as the compiler technology
Performance (time)Memory consuption (space)
Reaching definitionsDefinite assignments
4 Product Lines
The Product Lines
Performance (Reaching Defs.)
Performance(Reaching Defs.)
Memory Consumption
Maximum memory consumption of lattice on one method
In the Near Future...
INTERprocedural
Thank You!
Questions?