[llvm-dev] Uncovering non-determinism in LLVM - The Next Steps
Jack Howarth via llvm-dev
llvm-dev at lists.llvm.org
Sun Jul 9 15:57:44 PDT 2017
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?
More information about the llvm-dev
mailing list