intraprocedural dataflow analysis for software product lines claus brabrand márcio ribeiro társis...

22
Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Upload: elvin-radcliff

Post on 28-Mar-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Intraprocedural Dataflow Analysis for Software

Product LinesClaus BrabrandMárcio RibeiroTársis TolêdoPaulo Borba

Page 2: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Preprocessor Directives

Image logo;

#ifndef GLIDERlogo = Image.create(“/icon.png”);#endif

UILabel uimg = new UILabel(logo);

Page 3: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Preprocessor Directives

Image logo;

#ifndef GLIDERlogo = Image.create(“/icon.png”);#endif

UILabel uimg = new UILabel(logo);

Possibly unitialized variable!

Page 4: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Dataflow Analysis for Software Product Lines

Page 5: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

But first…

Page 6: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Control Flow Graph (CFG)

x = 0;while (...){

x++;}

1

Page 7: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Lattice

2

Page 8: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Transfer Functions

3

x++;

Page 9: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Putting It All Together

Page 10: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

The Real Deal

A1: Brute Force

A2: Consecutive Analysis

A3: Simultaneous Analysis

A4: Shared Simultaneous Analysis

Page 11: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

A1:Brute Force

int x = 0;#ifdef (A) x++;#ifdef (B) x--;

Page 12: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

A2: Consecutive Analysis

Page 13: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

A3: Sim.Analysis

Page 14: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

A4: Shared Analysis

All possible configurations!

Page 15: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Evaluation

Page 16: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Study Settings

CIDE as the preprocessorSOOT as the compiler technology

Performance (time)Memory consuption (space)

Reaching definitionsDefinite assignments

4 Product Lines

Page 17: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

The Product Lines

Page 18: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Performance (Reaching Defs.)

Page 19: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Performance(Reaching Defs.)

Page 20: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Memory Consumption

Maximum memory consumption of lattice on one method

Page 21: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

In the Near Future...

INTERprocedural

Page 22: Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis Tolêdo Paulo Borba

Thank You!

Questions?