Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of 2019
DOI: 10.1145/3338906.3338907
|View full text |Cite
|
Sign up to set email alerts
|

Understanding GCC builtins to develop better tools

Abstract: C programs can use compiler builtins to provide functionality that the C language lacks. On Linux, GCC provides several thousands of builtins that are also supported by other mature compilers, such as Clang and ICC. Maintainers of other tools lack guidance on whether and which builtins should be implemented to support popular projects. To assist tool developers who want to support GCC builtins, we analyzed builtin use in 4,913 C projects from GitHub. We found that 37% of these projects relied on at least one b… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2020
2020
2022
2022

Publication Types

Select...
4
2

Relationship

2
4

Authors

Journals

citations
Cited by 9 publications
(2 citation statements)
references
References 58 publications
0
2
0
Order By: Relevance
“…While CPUs have flags set whenever an overflow occurs, it is impossible to directly access them in C/C++. However, compiler builtins such as __builtin_add_overflow are provided by mature compilers [Rigger et al 2019], which, apart from performing the arithmetic, also return the overflow flag status. The multi-versioned hot loops are implemented in terms of such intrinsics: arithmetic operations are checked, and the overflow status is reported to the dispatcher.…”
Section: Transprecision Computingmentioning
confidence: 99%
“…While CPUs have flags set whenever an overflow occurs, it is impossible to directly access them in C/C++. However, compiler builtins such as __builtin_add_overflow are provided by mature compilers [Rigger et al 2019], which, apart from performing the arithmetic, also return the overflow flag status. The multi-versioned hot loops are implemented in terms of such intrinsics: arithmetic operations are checked, and the overflow status is reported to the dispatcher.…”
Section: Transprecision Computingmentioning
confidence: 99%
“…Although languages often define a large number of builtins, not all of them are frequently used. For example, Rigger et al [52,53] found out that most software projects in the C language only use a small subset of the inline assembly and compiler-specific builtins available.…”
Section: Propagation Semanticsmentioning
confidence: 99%