GNU Cauldron 2012, Prague, talk14: Part 2/2
Sign in to YouTube
Sign in to YouTube
Sign in to YouTube
Published on Jul 19, 2012
Control-flow preservation in GCC for safety-critical uses
Presenter: Olivier Hainque
The proposed presentation is about the introduction of a "-fpreserve-control-flow" option in GCC, which directs the compiler operations so that the control-flow expressed in a source persists in the generated assembly code.
The interest is twofold: Facilitate source to object traceability analysis, sometimes required as part of safety critical certification processes Allow non-intrusive coverage analysis using an instrumented execution environment instead of program instrumentation, also attractive in certification contexts Beyond traceability analysis requirements, control flow preservation is key to support the non-intrusive analysis of coverage criteria that care about source boolean expressions and their operands, such as the "Decision" or "MCDC" coverage metrics in the avionics certification area (DO178-B standard).
The basic idea is to allow inferring which values were taken by boolean operands or expressions from information on the execution flow at the corresponding machine branch points (provided by the instrumented execution environment). Very roughly, we need the relevant branches to remain there and accurate enough debug info to map them to source expressions in presence of arbitrarily complex constructs, which poses a few challenges to solve in the compiler.
At this point, we have a stable implementation in our local gcc 4.5 series, supporting optimizations up to -O1. We use this to offer a non-intrusive coverage analysis framework, using valgrind or qemu as virtual execution environments instrumented to produce execution traces.
We are about to port this to gcc 4.7 and would be happy to contribute to mainline after exchanging with other developers on the approach.
The presentation will include an introduction to the major motivations for this work general implementation scheme challenges encountered and resolutions current status & results future plans
-
Category
-
License
Creative Commons Attribution license (reuse allowed)
Loading...
Loading...
Loading...
Loading...
-
44:18
GNU Cauldron 2012, Prague, talk15: Part 1/2by ITIaKAM
121 views
-
44:17
GNU Cauldron 2012, Prague, talk14: Part 1/2by ITIaKAM
61 views
-
1:14:29
Richard Stallman at UofCby Gordon McDowell
79,832 views
-
44:19
GNU Cauldron 2012, Prague, talk2: Part 1/2by ITIaKAM
308 views
-
44:15
GNU Cauldron 2012, Prague, talk16: Part 1/2by ITIaKAM
269 views
-
33:19
GNU Compiler Collection dev history 1989-2012by Canal de paraipan13
13,892 views
-
44:16
GNU Cauldron 2012, Prague, talk6: Part 1/2by ITIaKAM
61 views
-
2:34
GNU Cauldron 2012, Prague, talk15: Part 2/2by ITIaKAM
38 views
-
1:27:11
[UNИX][GNU/Linux] Лекция 4. Права доступаby eSyr's video
6,817 views
-
1:29:56
[UNИX][GNU/Linux] Лекция 3. FHS и процессы.by evgSyr
9,953 views
-
44:21
GNU Cauldron 2012, Prague, talk13: Part 1/2by ITIaKAM
148 views
-
44:07
GNU Cauldron 2012, Prague, talk7by ITIaKAM
58 views
-
1:26:40
[UNИX][GNU/Linux] Лекция 1. Что такое Linux? «Инварианты»by eSyr's video
30,245 views
-
11:36
Richard Stallman - Facebook and Google+ Mistreat Their Usersby thenextweb
80,247 views
-
44:18
GNU Cauldron 2012, Prague, talk4: Part 1/2by ITIaKAM
71 views
-
44:17
GNU Cauldron 2012, Prague, talk3: Part 1/2by ITIaKAM
222 views
-
40:03
Make, GDB, and Valgrindby PSU-CS Tutors
218 views
-
33:41
GNU Cauldron 2012, Prague, talk5by ITIaKAM
61 views
-
6:42
GNU Cauldron 2012, Prague, talk13: Part 2/2by ITIaKAM
43 views
-
5:09
GNU Linux Vs Linuxby Brandon Wirtz
4,062 views
- Loading more suggestions...
All Comments (0)