Manuel Rigger, Hanspeter Mössenböck, Stefan Marr, Bram Adams,
"Understanding GCC Builtins to Develop Better Tools"
: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Tallinn, Estonia, ACM, Seite(n) 74-85, 8-2019
Understanding GCC Builtins to Develop Better Tools
Sprache des Titels:
Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Tallinn, Estonia
C programs frequently use compiler builtins for functionality that the C standard library lacks. On Linux, GCC provides several thousand builtins, and most other tools that process C code support only a subset of them. To assist tool developers that want to support the GCC builtins in their tools, we analyzed their use in 4912 C projects that we obtained from GitHub. We found that 37.6% of the projects relied at least on one builtin. We determined that the effort needed for implementing builtins is exponential; however, by implementing only 10 builtins already over 30% of the projects could be supported. Since we found that many builtins were not used in any project, the effort needed to support 99% of projects is moderate with around 1600 builtins that need to be implemented. We analyzed the builtin development over time time and found that projects mostly added builtin usages; nevertheless, sometimes they were removed, for example, to reduce the technical debt associated with their usage.