[llvm-dev] Uncovering non-determinism in LLVM - The Next Steps
Jack Howarth via llvm-dev
llvm-dev at lists.llvm.org
Mon Jul 10 03:45:32 PDT 2017
On Sun, Jul 9, 2017 at 7:07 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
> On Sun, Jul 9, 2017 at 3:57 PM, Jack Howarth
> <howarth.mailing.lists at gmail.com> wrote:
>> 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
>> -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?
> This would be ideal, yes :)
This produces no regressions in the file comparison between stage2 and
stage3 except for the expected...
--- stage2/include/llvm/Config/abi-breaking.h 2017-07-09
+++ stage3/include/llvm/Config/abi-breaking.h 2017-07-09
@@ -16,7 +16,7 @@
#define LLVM_ENABLE_ABI_BREAKING_CHECKS 0
/* Define to enable reverse iteration of unordered llvm containers */
-#define LLVM_ENABLE_REVERSE_ITERATION 1
+#define LLVM_ENABLE_REVERSE_ITERATION 0
/* Allow selectively disabling link-time mismatch checking so that header-only
ADT content from LLVM can be used without linking libSupport. */
when stage2 is passed -DLLVM_REVERSE_ITERATION:BOOL=ON and stage3 is not for
a llvm/clang/clang-tools-extra/compiler-rt/libcxx/openmp/polly 3-stage
bootstrap on x86_64-apple-darwin16.
More information about the llvm-dev