[llvm-dev] Uncovering non-determinism in LLVM - The Next Steps

John Regehr via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 6 10:10:29 PDT 2017


How much of a priority is it to find codegen changes triggered by flags 
such as -g? As long as the effects are reliable between runs this shoud 
be really easy to attack using C-Reduce. I can look into it if this is 
important.

John



On 7/6/17 11:12 AM, Robinson, Paul via llvm-dev wrote:
>> Out of curiosity
>> what kinds of changes arise from the presence/absence of -g? (It's not
>> just the expected presence/absence of the debug info?)
>
> Adding -g does have codegen effects, the most common reason being
> that it adds IR instructions, some of which have uses of variables,
> and sometimes passes don't ignore those things properly.  I think
> all the really egregious cases have been fixed by now (at one point
> they were counted in inlining costs, which meant that -g affected
> inlining decisions!), but we see it now and again.
>
> There can also be minor instruction-ordering effects because -g wants
> to emit unwind info, which appears in the form of assembler .cfi_*
> directives, and those appear to be instruction-ordering barriers.
> That's the one that pops to mind as something we haven't tried to fix.
>
> There might be others, I haven't looked at that stuff lately.
> --paulr
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>


More information about the llvm-dev mailing list