This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
GCC GSOC 2019
- From: Shubham Narlawar <gsocshubham at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Cc: Andi Kleen <ak at linux dot intel dot com>
- Date: Sun, 10 Feb 2019 00:44:37 +0530
- Subject: GCC GSOC 2019
Hi,
I am Shubham Narlawar. Currently, I am a Computer Engineering undergrad
student at Pune University, India. I am interested in contributing to GCC
for GSOC 2019.
We have done a project from GCC GSOC 2018 idea list which is implementing
Csmith fuzzer leveraging GCC C Extensions under the guidance of Andi Kleen.
Csmith is a C fuzzer which generates standard C code but no extensions. We
implemented few of GCC C extensions in Csmith (which now we call it as
"Extended Csmith"). Extended Csmith is now able to fuzz extensions along
with standard C code.
Following GCC C Extensions are implemented in Csmith currently -
1. Labels as Values (Computed Goto)
2. Local Labels
3. Typeof
4. __int128 - Signed and unsigned integer of size 128 bits.
5. Cast to Union
6. Label attributes - hot cold
7. Variable attributes - a) aligned
b) unused
c) section
8. Binary constants
9. Statement Expression
10. Transactional memory relaxed - tm_relaxed (not a GCC C extension)
Note - Different Combinations of these extensions can be used while
generating random C code using extended csmith.
Here is the github link of the project.
https://github.com/Sameeranjoshi/csmith/tree/gcc-extensions
Currently, We are running extended csmith on gcc10 of GCC Compile Farm
Project and found following bugs -
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89135
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89153
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87118
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89223
We expect to find more bugs in GCC as the gcc compiler is being stress
tested now.
Code coverage - Csmith vs Extended Csmith
Csmith i.e. [without gcc extn ]
line - 35.2
function - 43.2
branch - 25.7
Extended Csmith [with gcc extn]
line - 35.7
function - 43.9
branch - 26.1
%gain
line - 0.5%
function - 0.7%
branch - 0.4%
For GSOC 2019, I am proposing below project idea -
Implementation of following extensions in the Csmith -
1. Function attributes - aligned, alloc_align, always_inline, hot, cold,
deprecated, nothrow, used, etc
2. Vector extensions
3. Transactional Memory extensions
4. Type attributes
and remaining GCC C extensions.
Benefits to GCC -
1. Increased code coverage.
2. There is a possibility of finding more bugs after adding the above
extensions.
Thanks and Regards.
Shubham Narlawar