analysis of path exclusions at the assembly level
play

Analysis of path exclusions at the assembly level 7th Int'l - PowerPoint PPT Presentation

Analysis of path exclusions at the assembly level 7th Int'l Workshop on Worst-Case Execution Time (WCET) Analysis Ingmar Stein, Florian Martin ingmar@absint.com The Goal A Jump conditions B C are equivalent 10 100 D E F 200 110


  1. Analysis of path exclusions at the assembly level 7th Int'l Workshop on Worst-Case Execution Time (WCET) Analysis Ingmar Stein, Florian Martin ingmar@absint.com

  2. The Goal A Jump conditions B C are equivalent 10 100 D E F 200 110 100 10 G

  3. The Goal (2) • if (flag) do_something_expensive(); /* ... */ if (flag) do_something_cheap(); else do_something_expensive(); • Generated Code

  4. Overview • Build expressions for jump conditions • trivial for high-level languages, but not for machine code • Compare those expressions using a solver library (Omega) • Use implications to generate new ILP constraints which exclude the infeasible paths

  5. Analysis • Forwards analysis • Analyses all conditional jumps where the contents of the condition register are still unknown after the value analysis • Creates backward slices with the condition register as the initial target

  6. Slices • Slice: set of program points which directly or indirectly influence the values at a given program point • Example: add r5, r3, r4 cmpi cr0, 0, r5, 0 bc 0xd, cr0, 0x2c.t

  7. Linear Slices • A slice is called linear , iff the program points in the slice can be sorted, so that each program point is dominated by its predecessor A A B C B C D D non-linear linear

  8. Slice trees bc add r5, r3, r4 0xd cmpi 0x2c.t cmpi cr0, 0, r5, 0 0 add 0 bc 0xd, cr0, 0x2c.t r3 r4 Constant Folding: (addi r5, 0, +16) ➟ 16

  9. Slice trees (2) • Nodes: instructions • Leaves: registers, memory cells, immediates

  10. Omega • “Framework and algorithms for the analysis and transformation of scientific programs” by William Pugh and the Omega Project Team • http://www.cs.umd.edu/projects/omega/ • Two Components • Omega-Test • Framework

  11. Omega-Test • Presburger Arithmetic • First-order arithmetic over the natural numbers • ∀ , ∃ ,¬, ∧ , ∨ ,+,-,=, ≠ • No multiplication! • Decidable

  12. Omega-Test (2) • Simplifies and decides Presburger formulas • Exponential runtime in the worst case • Experimentally known to be fast enough for small problems

  13. Slices ➩ Omega • Instructions in the slice tree are mapped to arithmetic and comparison operators according to their semantics bc > 0xd cmpi 0x2c.t + 0 0 add 0 r3 r4 r3 r4 Slice Omega

  14. Slices ➩ Omega (2) • Instructions with unknown semantics are treated as symbolic functions • mul r3, r4, r5 ➟ mul(r3, r4, r5) • Operator Strength Reduction helpful for multiplication

  15. Slices ➩ Omega (3) • Leaves • Immediates become integer constants • Registers and memory cells become free variables

  16. Slices ➩ Omega (4) • Given Omega trees for the basic blocks A and B • A ⇒ B? • A ⇒ ¬B? • ¬A ⇒ B?

  17. Comparing Omega trees • Compare Omega trees of slices with a common start point • Stop slicing at the beginning of a function

  18. Flow Constraints • Relative execution counts of basic blocks • Part of the ILP for the path analysis • As AIS annotation: FLOW EACH ProgramPoint 1 / ProgramPoint 2 IS MIN min MAX max

  19. Flow-Constraints (2) • A ⇒ B: A.t / B.t ≦ 1 • A ⇒ ¬B: A A.t / B.f ≦ 1 A.f A.t • ¬A ⇒ B: A.f / B.t ≦ 1 B B.f B.t • ¬A ⇒ ¬B: A.f / B.f ≦ 1 • Symmetric

  20. Implementation • Implementation of the algorithm for the PowerPC architecture • Additional architectures need their own mapping of the semantics • Uses the generic slicer by Marc Schlickling • Integrated into a special aiT version

  21. Evaluation without flow with flow constraints constraints Synthetic 3054 cycles 2290 cycles example WBBC 2964 cycles 2961 cycles FCGU 1247 cycles 1221 cycles

  22. Future Work • Other Architectures • Non-linear slices • Per-context flow constraints • Dead code elimination • Information about path exclusions can be used for other things besides flow constraints • May be beneficial to PAG-generated analyzers

  23. Summary • A method to find path implications in the control flow graph • Application in the path analysis • Can improve the WCET prediction by eliminating infeasible paths • May be used to improve PAG analyzers

  24. ?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend