[cfe-dev] Integration of Z3 for constraint solving [r299463]
Dominic Chen via cfe-dev
cfe-dev at lists.llvm.org
Fri Aug 18 17:11:55 PDT 2017
It should be committed in rL311213.
Thanks,
Dominic
> On Aug 18, 2017, at 7:13 PM, Hans Wennborg <hans at chromium.org> wrote:
>
> Yes, that's excellent.
>
> Would you like to commit that, or would you like me to do it for you?
>
> Thanks,
> Hans
>
> On Fri, Aug 18, 2017 at 3:47 PM, Dominic Chen <d.c.ddcc at gmail.com> wrote:
>> Is a short summary sufficient? For example, "The static analyzer now
>> supports using the z3 theorem prover from Microsoft Research as an
>> external constraint solver. This allows reasoning over more complex
>> queries, but performance is ~15x slower than the default range-based
>> constraint solver. To enable the z3 solver backend, clang must be built
>> with the `CLANG_ANALYZER_BUILD_Z3=ON` option, and the `-Xanalyzer
>> -analyzer-constraints=z3` arguments passed at runtime."
>>
>> Thanks,
>>
>> Dominic
>>
>> On 8/18/2017 6:30 PM, Hans Wennborg wrote:
>>> Do you want to add something about this in the release notes?
>>>
>>> On Mon, Apr 10, 2017 at 12:21 PM, Dominic Chen via cfe-dev
>>> <cfe-dev at lists.llvm.org> wrote:
>>>> This is for the clang static analyzer, when performing symbolic
>>>> execution on input C code. Since the variables are all fixed-width
>>>> bitvectors, and there are no existential/universal quantifiers, in
>>>> practice the performance is decent, although still slower than the
>>>> current range-based constraint manager. However, it allows for reasoning
>>>> over more complex queries, e.g. involving multiple symbolic variables,
>>>> symbolic truncation/extension, and symbolic floating-point expressions
>>>> (these are all follow-up patches that have not yet been merged). There's
>>>> a longer discussion and more concrete performance numbers starting
>>>> around comment https://reviews.llvm.org/D28952#652510 .
>>>>
>>>> Thanks,
>>>>
>>>> Dominic
>>>>
>>>> On 4/10/2017 10:01 AM, Paulo Matos via cfe-dev wrote:
>>>>> Hi,
>>>>>
>>>>> I just noticed that Z3 was integrated into the clang frontend to solve
>>>>> some kind of constraints: https://reviews.llvm.org/rL299463
>>>>>
>>>>> What kinds of constraints are these, i.e. which problem are they
>>>>> solving, and is there a possibility of running into an exponential runtime?
>>>>>
>>>>> Kind regards,
>>>>
>>>> _______________________________________________
>>>> cfe-dev mailing list
>>>> cfe-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>
>>
More information about the cfe-dev
mailing list