Seminar • Software Engineering — Compiler Validation via Equivalence Modulo InputsExport this event to calendar

Tuesday, April 3, 2018 — 10:30 AM EDT

Chengnian Sun, Software Engineer
Google Inc., Mountain View, USA

As an integral component of the foundation of our digital world, compilers are among the most important system software. Thus their correctness is crucial to everyone’s daily life, directly or indirectly. In this talk, I present our continuous efforts on validating optimizing compilers with equivalence modulo inputs (EMI), a general and effective methodology to generate equivalent programs from existing valid programs. Specifically, I will present two different state-of-the-art techniques to realize EMI, i.e., Athena and Hermes. 

In the past three years, these techniques have helped us find ~1500 new, real bugs in GCC and LLVM, of which ~1000 are already fixed by the compiler developers. In the future, I plan to maintain this continuous, extensive effort in stress-testing production compilers, and generalize our testing experience and techniques to testing a more general scope of software.


Bio: Dr. Chengnian Sun is currently a software engineer at Google, working on large-scale static analyses and Java/Android compiler toolchain. Prior to joining Google, he was a postdoctoral fellow at Department of Computer Science, University of California, Davis, USA. He obtained his Ph.D. from National University of Singapore in 2013. 

His research interests include software testing, software debugging, and software analytics. Currently, he is intrigued by and focusing on designing effective techniques to test various aspects of optimizing compilers, which have helped detect hundreds of bugs in GCC and LLVM, two widely used production compilers.

Chengnian Sun's website

Location 
DC - William G. Davis Computer Research Centre
1304
200 University Avenue West

Waterloo, ON N2L 3G1
Canada

S M T W T F S
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  1. 2020 (190)
    1. December (1)
    2. November (2)
    3. October (7)
    4. September (21)
    5. August (28)
    6. July (14)
    7. June (18)
    8. May (16)
    9. April (20)
    10. March (16)
    11. February (25)
    12. January (22)
  2. 2019 (255)
    1. December (21)
    2. November (25)
    3. October (16)
    4. September (20)
    5. August (18)
    6. July (12)
    7. June (23)
    8. May (23)
    9. April (32)
    10. March (25)
    11. February (16)
    12. January (24)
  3. 2018 (217)
  4. 2017 (36)
  5. 2016 (21)
  6. 2015 (36)
  7. 2014 (33)
  8. 2013 (23)
  9. 2012 (4)
  10. 2011 (1)
  11. 2010 (1)
  12. 2009 (1)
  13. 2008 (1)