Lecture Notes in Computer Science
DOI: 10.1007/978-3-540-78791-4_6
|View full text |Cite
|
Sign up to set email alerts
|

Automatic Transformation of Bit-Level C Code to Support Multiple Equivalent Data Layouts

Abstract: Abstract.Portable low-level C programs must often support multiple equivalent in-memory layouts of data, due to the byte or bit order of the compiler, architecture, or external data formats. Code that makes assumptions about data layout often consists of multiple highly similar pieces of code, each designed to handle a different layout. Writing and maintaining this code is difficult and bug-prone: Because the differences among data layouts are subtle, implicit, and inherently low-level, it is difficult to unde… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

1
2
0

Publication Types

Select...
4
1
1

Relationship

1
5

Authors

Journals

citations
Cited by 6 publications
(3 citation statements)
references
References 18 publications
1
2
0
Order By: Relevance
“…Because of this dynamically-checked, physical subtyping, pointer-to-pointer casts can be treated as the identity. Similar ideas arise in other formalizations of low-level language semantics [24,25].…”
Section: The Llvm Flattened Values and Memory Accessessupporting
confidence: 63%
“…Because of this dynamically-checked, physical subtyping, pointer-to-pointer casts can be treated as the identity. Similar ideas arise in other formalizations of low-level language semantics [24,25].…”
Section: The Llvm Flattened Values and Memory Accessessupporting
confidence: 63%
“…This includes techniques for adapter specification [46], for component adaptation using formal specifications of components [39], [42], [43], [60], [5]. Component adaptation has also been performed at the Java bytecode level [30], as well as the C bitcode level [40]. Behavior sampling [44] is a similar area of research for finding equivalence over a small set of input samples.…”
Section: Component Adaptationmentioning
confidence: 99%
“…In our own prior work [17], we designed a small extension to the C language that allows programmers to eliminate subsets of the program that are used to handle alternative data layouts (e.g., little-vs. big-endian) by using a declarative mapping language to specify how one layout relates to another. Then, the alternatives are automatically generated.…”
Section: Related Workmentioning
confidence: 99%