Skip to content

Commit

Permalink
Updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
Mandeep Singh Grang committed Aug 16, 2018
1 parent 690f6dd commit ed180e6
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit ed180e6

Please sign in to comment.