Displaying 20 results from an estimated 10000 matches similar to: "Writing static analyzers to detect non-deterministic behavior?"
2018 Aug 09
3
Writing static analyzers to detect non-deterministic behavior?
Thanks for your response David.
1) I'm not sure it's do-able. I don't know of any nice way to track
whether an ordered walk of an unordered container leaks out into the
final output of the program. Only iterating over an unordered container
is probably not a sufficient hint (it'd have a high false positive rate
to warn on every instance of that) - and I don't have any
2017 Jul 06
5
Uncovering non-determinism in LLVM - The Next Steps
Hi all,
Last year I had shared with the community my findings about instances of
non-determinism in llvm codegen. The major source of which was the
iteration of unordered containers resulting in non-deterministic
iteration order. In order to uncover such instances we had introduced
"reverse iteration" of unordered containers (currently only enabled for
SmallPtrSet).
I would now
2017 Jul 06
2
Uncovering non-determinism in LLVM - The Next Steps
On Thu, Jul 6, 2017 at 8:02 AM, Robinson, Paul via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
>
>
> > -----Original Message-----
> > From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of
> > Grang, Mandeep Singh via llvm-dev
> > Sent: Thursday, July 06, 2017 2:56 AM
> > To: llvm-dev at lists.llvm.org
> > Subject: [llvm-dev]
2016 Nov 15
9
Non-determinism in LLVM codegen
Everyone,
There is non-determinism in LLVM codegen in the following scenarios:
1. Between back-to-back runs of the same LLVM toolchain
2. Between Release vs Release+Asserts toolchains
3. Between Linux vs Windows toolchains
The main reasons for the non-determinism in codegen are:
1. Iteration of unordered containers (like SmallPtrSet, DenseMap, etc)
where the iteration order is undefined
2.
2017 Jul 06
3
Uncovering non-determinism in LLVM - The Next Steps
On Thu, Jul 6, 2017 at 12:34 PM, Sean Silva <chisophugis at gmail.com> wrote:
>
>
> On Thu, Jul 6, 2017 at 10:20 AM, Daniel Berlin via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>>
>>
>> On Thu, Jul 6, 2017 at 8:02 AM, Robinson, Paul via llvm-dev <
>> llvm-dev at lists.llvm.org> wrote:
>>
>>>
>>>
>>>
2016 Dec 14
0
Non-determinism in LLVM codegen
Everyone,
The following patch to reverse iterate SmallPtrSet's has now been merged:
https://reviews.llvm.org/D26718
This is how LLVM behavior will change due to this patch:
- In LLVM builds with *assertions enabled*, SmallPtrSet's would always
be reverse iterated by default.
This default behavior can be overridden via the flag "-mllvm
-reverse-iterate=<true/false>".
2016 Nov 16
2
Non-determinism in LLVM codegen
> On 2016-Nov-15, at 15:16, Hal Finkel <hfinkel at anl.gov> wrote:
>
> ----- Original Message -----
>> From: "Mandeep Singh via llvm-dev Grang" <llvm-dev at lists.llvm.org>
>> To: llvm-dev at lists.llvm.org, "mehdi amini" <mehdi.amini at apple.com>, dexonsmith at apple.com, zinob at codeaurora.org
>> Sent: Tuesday, November 15, 2016
2016 Feb 10
2
[FYI] CMake's Ninja generator is non-deterministic
It is with great sadness that I must tell everyone CMake’s Ninja generator is non-deterministic (https://public.kitware.com/Bug/view.php?id=15968 <https://public.kitware.com/Bug/view.php?id=15968>).
I’m not sure if this impacts all versions of CMake, but it certainly impacts all the recent releases. You might ask why this matters? Sadly the non-determinism *does* impact determinism in the
2017 Aug 28
5
[5.0.0 Release] Please write release notes
I'm sorry, but I don't think LLDB has any release notes.
On Sat, Aug 26, 2017 at 9:49 PM, Kamil Rytarowski <n54 at gmx.com> wrote:
> LLDB:
>
> Switched the NetBSD platform to new remote tracing capable framework.
>
> Preliminary support for tracing NetBSD(/amd64) processes and core files
> with a single thread.
>
> On 25.08.2017 02:44, Hans Wennborg via
2017 Aug 29
2
Uncovering non-determinism in LLVM - An Update
Hi All,
I wanted to share a couple of updates on the effort to uncover
non-determinism in LLVM through reverse iteration.
1. Reverse iteration has now been enabled for DenseMap
(https://reviews.llvm.org/D35043)
2. We have setup a nightly reverse iteration buildbot
(http://lab.llvm.org:8011/builders/reverse-iteration).
This builds all LLVM targets with reverse iteration ON and runs ninja
2017 Aug 31
2
[cfe-dev] Uncovering non-determinism in LLVM - An Update
On 30 August 2017 at 18:51, David Blaikie via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
>
>
> On Tue, Aug 29, 2017 at 11:45 AM Grang, Mandeep Singh via cfe-dev
> <cfe-dev at lists.llvm.org> wrote:
>>
>> Hi All,
>>
>> I wanted to share a couple of updates on the effort to uncover
>> non-determinism in LLVM through reverse iteration.
>>
2017 Jun 01
5
[SemaCXX] Should we fix test failing due to reverse iteration?
I see that the following test fails if reverse iteration of SmallPtrSet
is enabled:
/clang/test/SemaCXX/warn-loop-analysis.cpp/
This is because in SemaStmt.cpp we iterate SmallPtrSet and output
warnings about the variables not used in the loop.
Expected output: /warning: variables 'i', 'j', and 'k' used in loop
condition not modified/
Output with reverse iteration:
2017 Jun 30
2
llvm-profdata determinism
I haven't tested it, but it looks to me like llvm-profdata merge (well,
InstrProfWriter specifically) would not have deterministic output.
Certainly the textual output iterates over FunctionData which is a
StringMap of SmallDenseMaps, neither of which has deterministic iteration.
The binary writing looks like it'd have similar issues - looping through
these unordered maps & writing
2018 Apr 13
2
llvm::sort - A new wrapper to std::sort
r327219 added a new wrapper function called *llvm::sort*. If
EXPENSIVE_CHECKS is enabled, llvm::sort will randomly shuffle the
container before invoking std::sort. This will help uncover
non-deterministic ordering of objects having the same key.
All occurrences of std::sort have been changed to llvm::sort in
llvm/clang/polly repos.
Going forward please make sure to avoid use of std::sort and
2016 May 03
8
RFC: Should the default LLVM build be deterministic?
Hello LLVM-Dev,
Today if a user checks out LLVM, configures with no options specified, and builds the result is non-deterministic. Meaning if you clean and build again the binaries are not identical. This impacts all target platforms equally and is caused by the default value of LLVM_ENABLE_TIMESTAMPS being On.
I believe this is incorrect behavior, and I’m curious what the wider community
2017 Jun 30
2
llvm-profdata determinism
On Thu, Jun 29, 2017 at 7:03 PM Xinliang David Li <davidxl at google.com>
wrote:
> On Thu, Jun 29, 2017 at 6:27 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>> I haven't tested it, but it looks to me like llvm-profdata merge (well,
>> InstrProfWriter specifically) would not have deterministic output.
>>
>> Certainly the textual output iterates
2016 Dec 14
0
Non-determinism in LLVM codegen
On Tue, Dec 13, 2016 at 6:39 PM, Hans Wennborg <hans at chromium.org> wrote:
> On Tue, Dec 13, 2016 at 4:57 PM, Grang, Mandeep Singh via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> Everyone,
>>
>> The following patch to reverse iterate SmallPtrSet's has now been merged:
>> https://reviews.llvm.org/D26718
>>
>> This is how LLVM
2017 Jun 30
0
llvm-profdata determinism
On Thu, Jun 29, 2017 at 7:26 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>
> On Thu, Jun 29, 2017 at 7:03 PM Xinliang David Li <davidxl at google.com>
> wrote:
>
>> On Thu, Jun 29, 2017 at 6:27 PM, David Blaikie <dblaikie at gmail.com>
>> wrote:
>>
>>> I haven't tested it, but it looks to me like llvm-profdata merge (well,
2015 Feb 04
2
[LLVMdev] Question on Machine Combiner Pass
Ping
From: Mandeep Singh Grang [mailto:mgrang at codeaurora.org]
Sent: Tuesday, February 03, 2015 4:34 PM
To: 'llvmdev at cs.uiuc.edu'
Cc: 'ghoflehner at apple.com'; 'apazos at codeaurora.org'; mgrang at codeaurora.org
Subject: Question on Machine Combiner Pass
Hi,
In the file lib/CodeGen/MachineCombiner.cpp I see that in the function
2017 Apr 05
2
Difference in EHType between ARM and AArch64
Joerg,
Referring to your patch https://reviews.llvm.org/rL291172.
/ switch (MAI->getExceptionHandlingType()) {//
// case ExceptionHandling::SjLj://
// case ExceptionHandling::DwarfCFI://
// case ExceptionHandling::ARM://
//*isCFIMoveForDebugging = true;*//
//*if (MAI->getExceptionHandlingType() != ExceptionHandling::DwarfCFI)*/*/
/**/ break;/*/
// for (auto &F: