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

Transcript of Intraprocedural Dataflow Analysis for Software Product Lines Claus Brabrand Márcio Ribeiro Társis...

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?