Manuel Rigger, Hanspeter Mössenböck, Stefan Marr, Bram Adams,
"Understanding GCC Builtins to Develop Better Tools"
, in ACM: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Tallinn, Estonia, 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.