The Auspicious Couple: Symbolic Execution Jens Knoop, Laura Kov - - PowerPoint PPT Presentation

the auspicious couple symbolic execution
SMART_READER_LITE
LIVE PREVIEW

The Auspicious Couple: Symbolic Execution Jens Knoop, Laura Kov - - PowerPoint PPT Presentation

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, The Auspicious Couple: Symbolic Execution Jens Knoop, Laura Kov acs, and WCET Analysis Jakob Zwirchmayr Motivation Armin Biere, Jens Knoop, Laura Kov acs,


slide-1
SLIDE 1

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

The Auspicious Couple: Symbolic Execution and WCET Analysis

Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr

TU Vienna, JKU Linz

July 9, 2013

1 / 23

slide-2
SLIDE 2

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

WCET Analysis

WCET Analysis

◮ mandatory for safety-critical real-time systems

Computed WCET bounds

◮ must be safe ◮ shall be tight

Problem

◮ precise knowledge about the program

2 / 23

slide-3
SLIDE 3

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Symbolic Execution

Symbolic Execution

◮ use symbolic instead of concrete data

Control-flow split (branch)

◮ follow both paths ◮ assume respective condition

Problem: path explosion

◮ unbounded loops ◮ number of conditionals

3 / 23

slide-4
SLIDE 4

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Our Remedy

Combine symbolic execution and WCET analysis as a remedy WCET analysis guides symbolic execution

◮ select only WCET relevant parts

Symbolic execution infers precise information

◮ for relevant parts

Partial vs full symbolic coverage

◮ full symbolic coverage often infeasible in practice

Partial coverage often good enough to improve the WCET estimate

4 / 23

slide-5
SLIDE 5

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

r-TuBound

5 / 23

slide-6
SLIDE 6

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Symbolic Execution: SmacC

SmacC

◮ SMT representation of the program (BV, arrays) ◮ select paths via path-expressions

Exact analysis Full symbolic coverage requires execution of all paths!

6 / 23

slide-7
SLIDE 7

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Symbolic Execution in r-TuBound

1) on selected program fragments

◮ check properties on conditional updates to the loopcounter ◮ if successful, loop bound computation safe

2) on single loops

◮ only if all other techniques fail

3) on single paths

◮ as post-process, after initial WCET anlysis ◮ symbolically check feasibility of WCET path

= Selective Symbolic Execution

7 / 23

slide-8
SLIDE 8

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Architecture

8 / 23

slide-9
SLIDE 9

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Analyzing Program Fragments

Conditional update to loop counter i prevents bound calculation

int main (int flag) { int i; for (i = 0; i < 5; i + +) if (i == 4 && flag) { i = 0; flag = 0; } } ◮ verify that updates strictly

increase(decrease) i

◮ can check arbitrary

expressions (in bitvectors/array theory) Success

◮ apply bound computation ◮ (combined minimal update)

Fails for example

9 / 23

slide-10
SLIDE 10

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Loop Bounds via Symbolic Execution

(r-)loopbounds fails to compute a loop bound

  • nly then

◮ apply exhaustive symbolic execution of the loop

The loop + required decls + additional analysis information

◮ = reduced program ◮ example: program = reduced program

Symbolically execute reduced program

◮ with initial bound 0 ◮ increase bound while loop cond is SAT in last iteration

Example: loop bound 9

10 / 23

slide-11
SLIDE 11

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Precise WCET Bounds

a.k.a WCET Squeezing

◮ post-proces for IPET based WCET analyzer ◮ allows to tighten WCET estimates ◮ ultimately prove WCET bounds precise

Is a combination of WCET analysis and symbolic execution

◮ overcomes problems inherent in both approaches!

11 / 23

slide-12
SLIDE 12

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Problems of the Approaches

Symbolic Execution deficiency: path explosion (doesn’t scale due to exponential number of paths) IPET deficiency: considers little information about the program (flow-facts)

12 / 23

slide-13
SLIDE 13

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Some Remedy

Combine IPET and Symbolic Execution for mutual benefit! extract path from ILP result and symbolically execute it

13 / 23

slide-14
SLIDE 14

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Some Remedy

Combine IPET and Symbolic Execution for mutual benefit! extract path from ILP result and symbolically execute it Path explosion:

◮ less severe, initially examine only one path

Lack of information:

◮ rule out infeasible paths using precise symbolic execution ◮ by deriving new ILP constraints

Requires an initial WCET analysis

13 / 23

slide-15
SLIDE 15

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Squeezing in a Nutshell

in: ILP problem (from IPET), out wcet bound

  • 1. solve ILP problem
  • 2. extract “abstract” WCET path candidates from ILP
  • 3. compute “concrete” path(s) encoded by abstract path
  • 4. symbolically execute concrete path(s)
  • 5. use result of execution to refine ILP problem or stop:

5.1 path feasible: done (path is indeed WCET path) 5.2 infeasible: refine ILP, goto 2

On termination:

◮ precise WCET bound (wrt the HW-model) ◮ optional: timeout, threshhold

14 / 23

slide-16
SLIDE 16

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Expected Results

Refined WC path is feasible:

◮ real WCET-path, overestimation due to hardware modelling ◮ precise bound

Refined WC path is infeasible + TO:

◮ some improvement after a few iteration ◮ estimate tightened

ILP WC path is feasible:

◮ no gain in precision ◮ precise bound

15 / 23

slide-17
SLIDE 17

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Example

Loop bound = 9

◮ analyze example with r-TuBound ◮ yields WCET estimate + ILP solution

(computed from generated ILP problem) ILP

◮ problem: constraints on execution frequencies ◮ solution: valid execution frequencies of blocks ◮ example: execution frequency of then-block = 9

The solution is INFEASIBLE

◮ no such concrete execution exists ◮ therefore, WCET bound is an over-estimation

16 / 23

slide-18
SLIDE 18

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Example contd.

ILP solution “executes” then-block 9 times Path-expression: ttttttttt (for the if-cond)

◮ i.e. iteration 0 to 9 execute then-branch ◮ i.e. conditional evaluates to true 9 times int main (int flag) { int i; for (i = 0; i < 5; i + +) if (i == 4 && flag) { i = 0; flag = 0; } } ◮ path-expression can be

constructed from ILP

◮ specifies a symbolic

execution of the program Result of symbolic execution defines further steps

◮ feasible path: terminate, bound precise ◮ infeasible path: derive ILP constraint to exclude the path,

recompute WCET bound

17 / 23

slide-19
SLIDE 19

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Example contd.

Squeezing the example:

◮ initially, 9 times true-block

Iteration 1:

◮ path infeasible, add constraint to exclude this path ◮ results in tighter solution

. . . Iteration 8 (terminating iteration):

◮ exact execution frequency inferred ◮ true-block once!

18 / 23

slide-20
SLIDE 20

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Constraints

Syntactic:

◮ comparable to a graph transformation ◮ introduces new ILP variables

Semantic:

◮ constraint over combined execution frequency of involved

conditions

◮ requires more symbolic executions

Combination seems most effective

◮ peel a loop iteration (syntactic) ◮ constrain combined execution frequency up to peeled

iteration

19 / 23

slide-21
SLIDE 21

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Discussion

Squeezing can be stopped at any time (time-limit) Squeezing can be run until a specified improvement is observed Relies on Partial symbolic coverage full symbolic coverage if all but one paths are infeasible

20 / 23

slide-22
SLIDE 22

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Discussion

Squeezing can be stopped at any time (time-limit) Squeezing can be run until a specified improvement is observed Relies on Partial symbolic coverage full symbolic coverage if all but one paths are infeasible All 3 presented approaches

◮ are effective ◮ require only partial symbolic coverage

20 / 23

slide-23
SLIDE 23

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Further Applications

All 3 based on a similar symbolic execution infrastructure

◮ again, requiring only partial symbolic coverage

21 / 23

slide-24
SLIDE 24

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Further Applications

All 3 based on a similar symbolic execution infrastructure

◮ again, requiring only partial symbolic coverage

Precise execution frequencies for loops

◮ iff symbolice execution is applied to find a loop bound

⇒ cheap to track execution frequencies

21 / 23

slide-25
SLIDE 25

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Further Applications

All 3 based on a similar symbolic execution infrastructure

◮ again, requiring only partial symbolic coverage

Precise execution frequencies for loops

◮ iff symbolice execution is applied to find a loop bound

⇒ cheap to track execution frequencies WCET path test-cases

◮ instantiate symbolic (input) variables (in SAT case)

⇒ use concrete values as test input

21 / 23

slide-26
SLIDE 26

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Further Applications

All 3 based on a similar symbolic execution infrastructure

◮ again, requiring only partial symbolic coverage

Precise execution frequencies for loops

◮ iff symbolice execution is applied to find a loop bound

⇒ cheap to track execution frequencies WCET path test-cases

◮ instantiate symbolic (input) variables (in SAT case)

⇒ use concrete values as test input Mode-sensitive WCET analysis

◮ modify program after WCET analysis

⇒ squeezing to automatically adapt IPET constraints accordingly

21 / 23

slide-27
SLIDE 27

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Conclusion

Symbolic execution is a powerful program analysis technique

◮ ... that “doesn’t scale” ◮ and therefore shouldn’t rely on full symbolic coverage

WCET analysis requires precise information about the program

◮ ... its result can serve as a selection mechanism ◮ to guide symbolic execution towards relevant program parts

The combination of symbolic execution is promising:

◮ WCET guidance is a remedy to the path explosion problem ◮ while symbolic execution helps inferring tighter bounds

⇒ 3 approaches successfully implemented in r-TuBound ⇒ 3 new approaches that can make use of the infrastructure

22 / 23

slide-28
SLIDE 28

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Thanks for your Attention!

Questions?

23 / 23

slide-29
SLIDE 29

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Examples - Binary Search

“Precise” analysis, e.g. array content 1) M¨ alardalen, bs.c, all data initialized

◮ from theoretic WC path of bs to real WC execution path

2) M¨ alardalen, bs.c modified, some data initialized

◮ from theoretic WC path of bs to a better WC path

3) M¨ alardalen, bs.c modified, no data initialized

◮ theoretic WC path of bs is real WC path

24 / 23

slide-30
SLIDE 30

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Case 1 – Original Benchmark

1

i n t keys [ 1 5 ] , v a l s [ 1 5 ] ;

2

i n t bs ( ) {

3

i n t x = 8 , f v a l u e = −1, mid , up = 14 , low = 0;

4

keys = { . . . }; / / ALL i n i t i a l i z e d

5

v a l s = { . . . }; / / ALL i n i t i a l i z e d

6

while ( low <= up ) {

7

mid = ( low + up ) > > 1;

8

i f ( keys [ mid ] == x ) {

9

up = low − 1;

10

f v a l u e = v a l s [ mid ] ;

11

} e l s e i f ( keys [ mid ] > x )

12

up = mid − 1;

13

e l s e low = mid + 1;

14

}

15

r e t u r n f v a l u e ;

16

}

25 / 23

slide-31
SLIDE 31

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Case 1 – Path Expression

by IPET: L1L1L1L1L1L1L1L1T

◮ L/T ... loop condition holds/does not hold ◮ 1,2,3 ... conditional blocks executed ◮ ? ... one of the conditional blocks executed

infeasible! feasible execution by SE: L2L3L2L1T

26 / 23

slide-32
SLIDE 32

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Case 2 – Modified Benchmark

1

. . .

2

i n t bs ( ) {

3

. . .

4

keys = { . . . }; / / SOME i n i t i a l i z e d

5

v a l s = { . . . }; / / SOME i n i t i a l i z e d

6

. . .

7

}

PE by IPET: L1L1L1L1L1L1L1L1T infeasible! feasible execution by SE: L2L3L?L?L?T, hence select L2L3L1L1L1T

27 / 23

slide-33
SLIDE 33

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Case 3 – Modified Benchmark

1

. . .

2

i n t bs ( ) {

3

. . .

4

keys = { . . . }; / / ALL u n i n i t i a l i z e d

5

v a l s = { . . . }; / / ALL u n i n i t i a l i z e d

6

. . .

7

}

PE by IPET: L1L1L1L1L1L1L1L1T feasible by SE! hence select L1L1L1L1L1L1L1L1T

28 / 23

slide-34
SLIDE 34

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Naive Refinement – Graph Level

Split decision nodes

◮ double part of the CFG to rule out

  • ne path

◮ might blow up ILP problem

Example 2

1

void f ( ) {

2

i f (C1) { . . . }

3

i f (C2) { . . . }

4

}

f C1 C2 ε ε ... ...

modes of operation: mutually exclusive execution parts

29 / 23

slide-35
SLIDE 35

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Graph Refinement I: Extract WC Path

f C1 C2 ε ε ... ...

IPET ⇒ PE: 11 Construct PE from IPET solution

30 / 23

slide-36
SLIDE 36

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Graph Refinement II: Split WC Path

SE ⇒ infeasible Symbolically execute PE, split if execution is infeasible.

31 / 23

slide-37
SLIDE 37

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

ILP Refinement: ILP Encoding

Step 1: as in graph approach (extract WC path) Step 2: infeasible path ⇒ ILP path constraint

N = 1 / / e n t r y b1 ≤ N c1 ≤ b1 t1 + f1 ≤ c1 b2 ≤ c1 c2 ≤ b2 t2 + f2 ≤ c2 b3 ≤ c2 X ≤ b3 X ≤ 1 / / e x i t

restriction: !(t1 ∧ t2)

N = 1 b1 ≤ N c1 ≤ b1 t1 + f1 ≤ c1 b2 ≤ c1 c2 ≤ b2 t2 + f2 ≤ c2 b3 ≤ c2 X ≤ b3 X ≤ 1 t1 + t2 ≤ 1

Step 3: add constraint and restart ILP solver. ⇒ better WCET estimate.

32 / 23

slide-38
SLIDE 38

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

ILP Refinement: Loop Blocks

Alternative 1: peel loop, reduce frequency, add path constraint. Alternative 2: path constraint including conditional block.

N = 1; c1 = N; t1 + f1 = c1 ; loopHead = 1; loopBody = loopHead * 5; loopBody = t2 + f2 ; l oo pE xi t = loopHead ; X = lo op E x i t ;

restriction: !(t1 ∧ 5t2)

N <= 1; c1 <= N; t1 + f1 <= c1 ; loopHead <= 1; loopBody <= loopHead * 5; loopBody <= t2 + f2 ; l oo pE xi t <= loopHead ; t1 + t2 ≤ 5 X = lo op E x i t ;

Add constraint and restart ILP solver.

33 / 23

slide-39
SLIDE 39

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

tb;dl

DdFR: Demand-driven Feasibility Refinement to automatically

◮ refine WCET estimates on-demand, by ◮ selective symbolic execution and ◮ automatic construction of restrictive ILP clauses

that constrain the ILP search for a new WCET candidate.

34 / 23

slide-40
SLIDE 40

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Encoding of Counterexamples

A counterexample is:

◮ infeasibility of a WC path

Control-flow graph level:

◮ naive, inefficient ◮ program transformation

ILP level:

◮ more efficient ◮ force solver to generate different solution

35 / 23

slide-41
SLIDE 41

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Further Benefits & Possibilities

Allows for and supports additional analyses

◮ before flow-fact computation (whole program) ◮ after WC path analysis (path)

Allows for combination with other approaches

◮ criticality – [Brandner/Hepp/Jordan, RTNS12] ◮ test-case generation – measurements on WC path ◮ concolic execution

36 / 23

slide-42
SLIDE 42

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Current State

WC Path extraction: automatic

◮ modified CalcWCET167

Symbolic Execution: automatic

◮ preliminary, SmacC (C subset) ◮ PE translation needed, manual

Path generation / counterexample encoding: manual

37 / 23

slide-43
SLIDE 43

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

WCET Bound

38 / 23

slide-44
SLIDE 44

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

WCET Analysis Tool Chain

further analysis, compilation,

  • ptimizations,

transformations, ... 39 / 23

slide-45
SLIDE 45

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

r-TuBound

40 / 23

slide-46
SLIDE 46

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

r-TuBound

41 / 23

slide-47
SLIDE 47

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Memory Model

◮ BTOR array/variables: memory of program / address mem ◮ special variables define valid memory

no variables declared variables x, c, i, j, malloc(4)

42 / 23

slide-48
SLIDE 48

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

Assertion Check

void main () { int i; assert (i); }

BTOR variables:

{mem, global beg, global end, heap beg,heap end, stack beg, stack end, i}

Memory assumptions:

global beg ≤ global end ∧ global end < heap beg ∧ heap beg ≤ heap end ∧ heap end < stack end ∧ stack end ≤ stack beg ∧ global beg = global end ∧ heap beg = heap end ∧ i = stack beg − 4 ∧ stack end = stack beg − 4

VC: read(mem@i) == 0

◮ “is reading value 0 at memory position i possible”? ◮ UNSAT if assertion holds (on path)

43 / 23

slide-49
SLIDE 49

The Auspicious Couple: Symbolic Execution and WCET Analysis Armin Biere, Jens Knoop, Laura Kov´ acs, Jakob Zwirchmayr Motivation Introduction Symbolic Execution in r-TuBound Symbolic Execution without Path Explosion Conclusion

(Simple) Assignment Check

◮ validity of address (addr) a value is assigned to ◮ introduce abf outside any valid memory:

abf > stack beg ∨ abf > global end ∧ abf < heap beg ∨ abf > heap end ∧ abf < stack end ∨ abf < global beg

◮ VC: abf == addr

◮ “can addr be equal to an address outside valid memory?” ◮ SAT if addr is invalid 44 / 23