From ed180e6d9f55251a7223208ad6790ae9710a420d Mon Sep 17 00:00:00 2001 From: Mandeep Singh Grang Date: Wed, 15 Aug 2018 21:46:11 -0700 Subject: [PATCH] Updated README --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2ed37f6..694d6a9 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,12 @@ ## INTRODUCTION A C++ compiler exhibits non-deterministic behavior if, for the same input program, the object code generated by the compiler differs from run to run. In -this work, I first explore the causes of such non-determinism. Then we -outline the scenarios where non-determinism is observed and examine why such -behavior is undesirable. I then present a case study on my work to uncover -and fix non-deterministic behavior in the LLVM compiler. Finally, I report on -the impact that my work has had on the LLVM community, the total number of -bugs found and how I fixed them. +this work, I first explore the causes of such non-determinism. Then I outline +the scenarios where non-determinism is observed and examine why such behavior +is undesirable. I then present a case study on my work to uncover and fix +non-deterministic behavior in the **LLVM C++ Compiler**. Finally, I report on +the impact that my work has had on the LLVM community, the total number of bugs +found and how I fixed them. ## RELEVANCE Millions of C++ developers around the world use compilers to develop their @@ -18,7 +18,7 @@ the behavior of a compiler may not always be deterministic. For the same input program, it may generate different code in different scenarios. This non-determinism can make debugging difficult, result in hard-to-reproduce bugs, cause unexpected runtime crashes or unpredictable performance. My work -attempts to uncover non-deterministic behavior in the LLVM C++ compiler thereby +attempts to uncover non-deterministic behavior in the LLVM compiler thereby making LLVM more robust. ## DISCUSSION @@ -62,8 +62,8 @@ values. The following upstream buildbot tracks this mode: http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win -Some best practices I followed in LLVM to avoid or fix non-deterministic -behavior are: +Some best practices that were followed in LLVM to avoid or fix +non-deterministic behavior are: 1. Sort the container before iteration 2. Use a stronger sort predicate 3. Use a stable sort function