Jack Howarth via llvm-dev
2017-Jul-09 16:19 UTC
[llvm-dev] Uncovering non-determinism in LLVM - The Next Steps
FYI, I just successfully performed a 3-stage bootstrap with stage2/stage3 object file comparison on x86_64-apple-darwin16 for llvm/clang/clang-tools-extra/compiler-rt/libcxx/openmp/polly using our custom fink packaging scripts with the -DLLVM_REVERSE_ITERATION:BOOL=ON cmake option. There were no stage2/stage3 object file comparison failures or test suite regressions. I do have one question though. Is there any particular reason not to leave this option on for deployed release builds of the compiler? Other than possibly running into some extreme corner case of non-deterministism that the stage2/stage3 comparisons and test suites miss, is there any performance issues introduced in compile time by leaving -DLLVM_REVERSE_ITERATION:BOOL=ON defaulted on? Thanks in advance for any clarifications. Jack ps Is it still the case that none of the llvm.org build bots are doing a full 3-stage bootstrap with stage2/stage3 file comparison (ala FSF gcc)? If so, that seems like an unfortunate gap in the llvm compiler testing.
Daniel Berlin via llvm-dev
2017-Jul-09 17:26 UTC
[llvm-dev] Uncovering non-determinism in LLVM - The Next Steps
On Sun, Jul 9, 2017 at 9:19 AM, Jack Howarth via llvm-dev < llvm-dev at lists.llvm.org> wrote:> FYI, I just successfully performed a 3-stage bootstrap with > stage2/stage3 object file comparison on x86_64-apple-darwin16 for > llvm/clang/clang-tools-extra/compiler-rt/libcxx/openmp/polly using our > custom fink packaging scripts with the > -DLLVM_REVERSE_ITERATION:BOOL=ON cmake option. There were no > stage2/stage3 object file comparison failures or test suite > regressions. > I do have one question though. Is there any particular reason > not to leave this option on for deployed release builds of the > compiler?Because it wouldn't accomplish anything. The goal is to have a different iteration order than the default. If you make this the default, that doesn't help, because now the default is reverse> Other than possibly running into some extreme corner case of > non-deterministism that the stage2/stage3 comparisons and test suites > miss, is there any performance issues introduced in compile time by > leaving -DLLVM_REVERSE_ITERATION:BOOL=ON defaulted on?Thanks in> advance for any clarifications. > Jack > ps Is it still the case that none of the llvm.org build bots are doing > a full 3-stage bootstrap with stage2/stage3 file comparison (ala FSF > gcc)?Errr, last i looked, a ton were doing so? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170709/3dfc63b3/attachment.html>
Jack Howarth via llvm-dev
2017-Jul-09 22:57 UTC
[llvm-dev] Uncovering non-determinism in LLVM - The Next Steps
On Sun, Jul 9, 2017 at 1:26 PM, Daniel Berlin <dberlin at dberlin.org> wrote:> > > On Sun, Jul 9, 2017 at 9:19 AM, Jack Howarth via llvm-dev > <llvm-dev at lists.llvm.org> wrote: >> >> FYI, I just successfully performed a 3-stage bootstrap with >> stage2/stage3 object file comparison on x86_64-apple-darwin16 for >> llvm/clang/clang-tools-extra/compiler-rt/libcxx/openmp/polly using our >> custom fink packaging scripts with the >> -DLLVM_REVERSE_ITERATION:BOOL=ON cmake option. There were no >> stage2/stage3 object file comparison failures or test suite >> regressions. >> I do have one question though. Is there any particular reason >> not to leave this option on for deployed release builds of the >> compiler? > > > Because it wouldn't accomplish anything. > The goal is to have a different iteration order than the default. > If you make this the default, that doesn't help, because now the default is > reverse >So perhaps I am doing this wrong? Should I have have the stage2 build without -DLLVM_REVERSE_ITERATION:BOOL=ON and stage3 with that option so that any variation in the object files generated for the llvm build is picked up?>> >> Other than possibly running into some extreme corner case of >> non-deterministism that the stage2/stage3 comparisons and test suites >> miss, is there any performance issues introduced in compile time by >> leaving -DLLVM_REVERSE_ITERATION:BOOL=ON defaulted on? > > >> Thanks in >> advance for any clarifications. >> Jack >> ps Is it still the case that none of the llvm.org build bots are doing >> a full 3-stage bootstrap with stage2/stage3 file comparison (ala FSF >> gcc)? >Really? From https://llvm.org/svn/llvm-project/zorg/trunk/buildbot/osuosl/master/config/builders.py, it seemed like those where commented out. no? # {'name' : "clang-3stage-ubuntu", # 'slavenames' : ["ps4-buildslave1a"], # 'builddir' : "clang-3stage-ubuntu", # 'factory': ClangLTOBuilder3Stage.get3StageClangLTOBuildFactory( # clean=True, # env=None, # build_gold=True, # cmake_cache_file="../llvm.src/tools/clang/cmake/caches/3-stage.cmake", # extra_cmake_options=[ # '-GNinja', # '-DLLVM_TARGETS_TO_BUILD=all', # '-DLLVM_BINUTILS_INCDIR=/opt/binutils/include'])},,> > Errr, last i looked, a ton were doing so?