Hi, here is my proposal for the above idea. Please review and suggest necessary changes.
https://docs.google.com/document/d/11MNhuuD7dbwAfSW6ZgFrAys9My1Lw1PuMVcAqeNGr7A/edit?usp=sharing Thanks. Shubham On Mon, Feb 18, 2019 at 11:55 PM Martin Jambor <mjam...@suse.cz> wrote: > Hello Shubham, > > On Sun, Feb 10 2019, Shubham Narlawar wrote: > > 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. > > > > Thank you very much for sending us your project idea. I have noted > it down and am looking forward to your project submission (assuming > Google approves us as a participating organization, of course). > > Meanwhile, if you have any technical questions, regarding the GCC > extensions you listed above, feel free to ask here on the list. > > Thank you, > > Martin >