ayartsev (Anton Yartsev)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 19 2013, 10:53 PM (239 w, 2 d)

Recent Activity

Jul 3 2017

ayartsev committed rL307053: [legalize-types] Clean up softening machinery..
[legalize-types] Clean up softening machinery.
Jul 3 2017, 6:09 PM
ayartsev closed D31946: [legalize-types] Clean up softening machinery. by committing rL307053: [legalize-types] Clean up softening machinery..
Jul 3 2017, 6:09 PM

Jun 28 2017

ayartsev updated the diff for D31946: [legalize-types] Clean up softening machinery..

Updated the patch, changed the title.

Jun 28 2017, 6:40 PM
ayartsev retitled D31946: [legalize-types] Clean up softening machinery. from [legalize-types] Make softening result use a single map for replacements. to [legalize-types] Clean up softening machinery..
Jun 28 2017, 5:25 PM

May 11 2017

ayartsev added a comment to D31946: [legalize-types] Clean up softening machinery..

If you look at other legalization functions (ExpandFloatResult/Operand, PromoteIntegerResult/Operand, e.t.c) you can see that they all share the same logic in node processing: functions, that handle node results (e.g. ExpandFloatResult) perform their actions and place the resulting node to the corresponding map (e.g. ExpandFloats) for further use, while functions that process operands (e.g. ExpandFloatOperand) perform their action and replace the old nodes with the new ones (that is update the ReplacedValues map).
It is also seen from the code that for a given node legalization of node results preceed processing of this node as operand of another node, so values from maps like SoftenFloats (placed there by result legalizing routines) will be used for replacement/subtitution, if needed, by operand processing routines in the fullness of time.
SoftenFloatResult() routine design breaks this scheme - it puts a result to the SoftenFloats map AND replaces this result in place by calling ReplaceSoftenFloatResult() for dubious benefit. It forces us to specially remember and skip all this replacement cases in SoftenFloatOperand() by calling CanSkipSoftenFloatOperand(). It also makes a key present both in SoftenFloats and ReplacedValues maps under some circumstances that expensive check detects. It took an effort to understand whats going on. D29265 doesn't fix the problem with the same value in multiple maps and just makes the code more unclear.
Actually, softening really slightly differs from other legalization routines, its trait is that nothing should be done with the node result (except ISD::LOAD) if the result can be kept in HW registers. This trait gave the idea for, IMHO, unsuccessful improvement with replacing a result in place by calling ReplaceSoftenFloatResult().
So my patch makes SoftenFloatResult/Operand logic just the same as all other legalization routines have: SoftenFloatResult() fills the SoftenFloats map and SoftenFloatOperand() perform all needed replacements. With the special case for values, that can be kept in HW registers - in this case SoftenFloatResult() just does nothing. I intended to get rid of calling SoftenFloatResult() for HW suitable values at all, but ISD::LOAD creates a precedent. I've also analyzed all usages of the SoftenFloats map and didn't find any need for holding values that map to itself.
Hope this answers most of your questions.

May 11 2017, 6:22 AM

Apr 26 2017

ayartsev updated the diff for D31946: [legalize-types] Clean up softening machinery..

Great! Here ISD::FNEG caused the problem at least in two tests. Updated the patch. Hope this was the last regression.

Apr 26 2017, 10:44 AM

Apr 19 2017

ayartsev added a comment to D31946: [legalize-types] Clean up softening machinery..

Does the new patch work with my previous attached c.zip?
I don't see new changes related to CopyToReg.

Apr 19 2017, 3:20 PM
ayartsev added inline comments to D31946: [legalize-types] Clean up softening machinery..
Apr 19 2017, 12:25 PM
ayartsev updated the diff for D31946: [legalize-types] Clean up softening machinery..

Thanks for the review.
Addressed the issue, updated the patch.

Apr 19 2017, 12:24 PM

Apr 11 2017

ayartsev created D31946: [legalize-types] Clean up softening machinery..
Apr 11 2017, 9:35 AM

Feb 10 2017

ayartsev abandoned D27113: Expensive checks: support promoted floats..

Clone to D28187.

Feb 10 2017, 12:05 AM

Dec 24 2016

ayartsev committed rL290505: Fix for PR15623 (corrected r290413 reverted at 290415). The patch eliminates….
Fix for PR15623 (corrected r290413 reverted at 290415). The patch eliminates…
Dec 24 2016, 5:08 PM

Dec 22 2016

ayartsev committed rL290415: Revert changes made by r290413 until regression is fixed..
Revert changes made by r290413 until regression is fixed.
Dec 22 2016, 8:19 PM
ayartsev committed rL290413: Fix for PR15623. The patch eliminates unwanted ProgramState checker data….
Fix for PR15623. The patch eliminates unwanted ProgramState checker data…
Dec 22 2016, 7:41 PM

Nov 24 2016

ayartsev retitled D27113: Expensive checks: support promoted floats. from to Expensive checks: support promoted floats..
Nov 24 2016, 12:25 PM

Nov 21 2016

ayartsev updated the diff for D22862: [analyzer] Fix for PR15623: eliminate unwanted ProgramState checker data propagation..

The updated patch implements Devin's solution. Please review.

Nov 21 2016, 5:43 PM

Oct 14 2016

ayartsev closed D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..

Closed by r283499.

Oct 14 2016, 8:45 AM

Oct 6 2016

ayartsev committed rL283499: [analyzer] Add explanation why analyzer report is not generated (fix for….
[analyzer] Add explanation why analyzer report is not generated (fix for…
Oct 6 2016, 2:51 PM

Sep 12 2016

ayartsev updated the diff for D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..

Updated the patch. Important change in Options.td was missing in the last patch + indentation fixed.
Still Ok to commit?

Sep 12 2016, 2:43 PM

Sep 8 2016

ayartsev updated the diff for D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..

Updated the patch, added help entry for the "--analyzer-output" driver option. Please review.

Sep 8 2016, 5:52 PM

Aug 31 2016

ayartsev added inline comments to D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..
Aug 31 2016, 3:37 PM
ayartsev added inline comments to D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..
Aug 31 2016, 3:32 PM
ayartsev added a comment to D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..

Gentle ping.

Aug 31 2016, 3:08 PM

Aug 15 2016

ayartsev added a comment to D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..

Ping.

Aug 15 2016, 4:31 PM

Aug 13 2016

ayartsev added a comment to D22862: [analyzer] Fix for PR15623: eliminate unwanted ProgramState checker data propagation..

@zaks.anna, sorry for the noise about the "misc-ps-region-store.m" test, my mistake.

Aug 13 2016, 6:32 PM

Aug 5 2016

ayartsev added inline comments to D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..
Aug 5 2016, 4:46 AM

Jul 28 2016

ayartsev added inline comments to D22862: [analyzer] Fix for PR15623: eliminate unwanted ProgramState checker data propagation..
Jul 28 2016, 12:11 AM

Jul 27 2016

ayartsev added inline comments to D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..
Jul 27 2016, 11:49 PM
ayartsev retitled D22862: [analyzer] Fix for PR15623: eliminate unwanted ProgramState checker data propagation. from to [analyzer] Fix for PR15623: eliminate unwanted ProgramState checker data propagation..
Jul 27 2016, 6:43 AM

Jul 26 2016

ayartsev added inline comments to D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..
Jul 26 2016, 7:54 AM
ayartsev updated the diff for D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421)..
Jul 26 2016, 7:53 AM

Jul 18 2016

ayartsev retitled D22494: [analyzer] Explain why analyzer report is not generated (fix for PR12421). from to [analyzer] Explain why analyzer report is not generated (fix for PR12421)..
Jul 18 2016, 6:07 PM

May 19 2016

ayartsev committed rL270154: [analyzer] Fix for PR23790 : constrain return value of strcmp() rather than….
[analyzer] Fix for PR23790 : constrain return value of strcmp() rather than…
May 19 2016, 4:10 PM

Feb 21 2016

ayartsev added a comment to D17091: [analyzer][scan-build-py] Non-existing directory for scan-build output..

the semicolon at the end of line 39 is an issue for PEP8. please remove it.

Done.

Feb 21 2016, 9:11 AM
ayartsev committed rL261480: [analyzer][scan-build] Non-existing directory for scan-build output..
[analyzer][scan-build] Non-existing directory for scan-build output.
Feb 21 2016, 9:09 AM

Feb 17 2016

ayartsev added a comment to D17091: [analyzer][scan-build-py] Non-existing directory for scan-build output..

Ping.

Feb 17 2016, 9:54 AM

Feb 15 2016

ayartsev added a comment to D16317: [Analyzer] Fix for PR23790: bind real value returned from strcmp when modelling strcmp..

Ping.

Feb 15 2016, 3:44 PM

Feb 10 2016

ayartsev retitled D17091: [analyzer][scan-build-py] Non-existing directory for scan-build output. from to [analyzer][scan-build-py] Non-existing directory for scan-build output..
Feb 10 2016, 12:45 PM
ayartsev committed rL260420: [analyzer] Windows: launch scan-build from an arbitrary location..
[analyzer] Windows: launch scan-build from an arbitrary location.
Feb 10 2016, 11:51 AM

Feb 8 2016

ayartsev added a comment to D16317: [Analyzer] Fix for PR23790: bind real value returned from strcmp when modelling strcmp..

Ping.

Feb 8 2016, 9:02 AM

Feb 1 2016

ayartsev updated the diff for D16317: [Analyzer] Fix for PR23790: bind real value returned from strcmp when modelling strcmp..

Updated the patch, please review.

Feb 1 2016, 8:09 AM

Jan 19 2016

ayartsev retitled D16317: [Analyzer] Fix for PR23790: bind real value returned from strcmp when modelling strcmp. from to [Analyzer] Fix for PR23790: bind real value returned from strcmp when modelling strcmp..
Jan 19 2016, 6:34 AM

Dec 28 2015

ayartsev added a comment to D14629: [analyzer] Configuration file for scan-build..

Ping.

Dec 28 2015, 12:50 PM

Dec 21 2015

ayartsev added a comment to D14629: [analyzer] Configuration file for scan-build..

Ping

Dec 21 2015, 8:07 AM

Dec 14 2015

ayartsev added a comment to D14629: [analyzer] Configuration file for scan-build..

Upd: Forgot to remove the printHash() subroutine from libscanbuild.pm. Using it locally for debug purpose.

Dec 14 2015, 2:37 PM
ayartsev updated the diff for D14629: [analyzer] Configuration file for scan-build..

Updated the patch following Laszlo's advises:
+ Changed config file format to YAML.
+ Dump current configuration.
+ Search for config file from the current folder and upper.

Dec 14 2015, 2:31 PM

Nov 16 2015

ayartsev updated subscribers of D9600: Add scan-build python implementation.
Nov 16 2015, 3:15 PM

Nov 13 2015

ayartsev added a comment to D14629: [analyzer] Configuration file for scan-build..

CommonStuff.pm (which could stand to have a more descriptive name, libscanbuild.pm maybe?) and scan-build.cfg belong in share.

Got it, I'll rename CommonStuff.pm and put it to share in the next patch iteration.

Nov 13 2015, 4:16 AM

Nov 12 2015

ayartsev retitled D14629: [analyzer] Configuration file for scan-build. from to [analyzer] Configuration file for scan-build..
Nov 12 2015, 3:47 PM

Oct 28 2015

ayartsev committed rL251552: [analyzer] Preserve the order checkers were enabled/disabled..
[analyzer] Preserve the order checkers were enabled/disabled.
Oct 28 2015, 1:45 PM
ayartsev committed rL251524: [analyzer] Make inclusion/exclusion of checkers less ambiguous..
[analyzer] Make inclusion/exclusion of checkers less ambiguous.
Oct 28 2015, 9:31 AM

Sep 21 2015

ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Ping.

Sep 21 2015, 4:15 PM

Sep 16 2015

ayartsev committed rL247828: [analyzer] Improved behavior if Clang was not found, part II.
[analyzer] Improved behavior if Clang was not found, part II
Sep 16 2015, 11:13 AM
ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Ping.

Sep 16 2015, 10:22 AM

Sep 12 2015

ayartsev added a comment to D12827: [analyzer] fix an error finding clang path.

Thanks, Honggyu!

Sep 12 2015, 1:31 PM

Sep 11 2015

ayartsev updated the diff for D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Updated the patch after r246978. Please review!

Sep 11 2015, 1:49 PM
ayartsev committed rL247466: [analyzer] Improve behavior if Clang not found..
[analyzer] Improve behavior if Clang not found.
Sep 11 2015, 1:42 PM

Sep 7 2015

ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Ping.

Sep 7 2015, 3:46 PM

Sep 2 2015

ayartsev added a comment to D6551: Improvements to scan-build..

Removed trailing whitespaces and committed as r246710.
Thanks for reviews and assistance!

Sep 2 2015, 2:10 PM
ayartsev committed rL246710: [analyzer] Refactoring: bring together scan-build options and environment….
[analyzer] Refactoring: bring together scan-build options and environment…
Sep 2 2015, 2:03 PM

Sep 1 2015

ayartsev added inline comments to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..
Sep 1 2015, 3:02 PM
ayartsev updated the diff for D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..
Sep 1 2015, 3:01 PM
ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Ping

Sep 1 2015, 1:41 PM

Aug 25 2015

ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Please review!

Aug 25 2015, 3:13 PM
ayartsev updated the diff for D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..
Aug 25 2015, 3:12 PM
ayartsev closed D8273: [analyzer] Implementation of potential undefbehavior.ZeroAllocDereference checker..
Aug 25 2015, 2:30 PM
ayartsev accepted D8273: [analyzer] Implementation of potential undefbehavior.ZeroAllocDereference checker..
Aug 25 2015, 2:30 PM
ayartsev closed D9357: [analyzer] Support spaces in compiler path and arguments..

Merged with D8774.

Aug 25 2015, 2:25 PM
ayartsev closed D8774: [analyzer] Prevent ccc/c++-analyzer from hanging on Windows..

Committed as r241201

Aug 25 2015, 2:22 PM

Aug 24 2015

ayartsev updated the diff for D6551: Improvements to scan-build..

Updated the patch with r245621.
OK to commit?

Aug 24 2015, 9:20 AM

Aug 20 2015

ayartsev committed rL245621: [analyzer] Fix for PR24112 (scan-build doesn't work with --use-analyzer="path….
[analyzer] Fix for PR24112 (scan-build doesn't work with --use-analyzer="path…
Aug 20 2015, 2:53 PM

Aug 14 2015

ayartsev added inline comments to D11832: [Patch] [Analyzer] false positive: Potential leak connected with memcpy (PR 22954).
Aug 14 2015, 6:31 AM

Aug 11 2015

ayartsev updated the diff for D6551: Improvements to scan-build..

Hi Honggyu,
thanks for updating the patch!

Aug 11 2015, 2:57 PM
ayartsev committed rL244673: [analyzer] Incorrect env variable replaced..
[analyzer] Incorrect env variable replaced.
Aug 11 2015, 2:25 PM
ayartsev added inline comments to D11832: [Patch] [Analyzer] false positive: Potential leak connected with memcpy (PR 22954).
Aug 11 2015, 6:08 AM

Jul 20 2015

ayartsev added a comment to D6551: Improvements to scan-build..

Ping!

Jul 20 2015, 5:41 AM

Jul 3 2015

ayartsev updated the diff for D6551: Improvements to scan-build..

Updated the patch.

Jul 3 2015, 9:35 AM

Jul 1 2015

ayartsev committed rL241201: [analyzer] Prevent ccc/c++-analyzer from hanging on Windows..
[analyzer] Prevent ccc/c++-analyzer from hanging on Windows.
Jul 1 2015, 3:36 PM

Jun 26 2015

ayartsev added a comment to D8774: [analyzer] Prevent ccc/c++-analyzer from hanging on Windows..

In scan-build we know exactly what arguments we pass to clang and piped 'open' is sufficient here. With 'system' we'd have to redirect streams to capture output.

Jun 26 2015, 4:30 AM

Jun 25 2015

ayartsev updated the diff for D8774: [analyzer] Prevent ccc/c++-analyzer from hanging on Windows..

Updated the patch.
Now used list form of 'system' to invoke compilers. PerlDoc says: "On Windows, only the system PROGRAM LIST syntax will reliably avoid using the shell". Tested the solution on Windows 7, Ubuntu and OS X - all shell metacharacters and spaces are preserved. Please review!

Jun 25 2015, 6:33 PM

Jun 17 2015

ayartsev added a comment to D9357: [analyzer] Support spaces in compiler path and arguments..

Finally addressed issues with arguments. I had a patch for D8774 (Prevent ccc/c++-analyzer from hanging on Windows) applied locally (because I was unable to use scan-build without that patch) and that was the reason for the arguments being processed differently .
I replaced all calls to 'system' and 'exec' (that pass arguments to the system's command shell for processing) with calls to pipe form of 'open' and this solution worked consistently under Windows 7, OS X, Ubuntu and different Windows perl ports. Merged this patch with D8774. Please review!

Jun 17 2015, 7:11 PM
ayartsev updated the diff for D8774: [analyzer] Prevent ccc/c++-analyzer from hanging on Windows..

Updated the patch.
The patch now includes the fix for D9357 that happen to be related to this issue. Perl 'system' and 'exec' routines process arguments differently depending on the perl port (tested with MSYS Perl, Dwimperl, Strawberry Perl and ActiveState Perl, got different results in terms of processing quotes and escaped characters) and on the OS (because arguments are passed to the system's command shell for parsing).
The patch replaces all 'exec' and 'system' calls with pipe form of 'open' that behaves consistently in all tested perl ports and operating systems (Windows 7, OS X, Ubuntu).
Tested with arguments like -DMACRO="\"'A=a' 'B=b'\"" and -DMACRO='"include.h"'.
Please review!

Jun 17 2015, 6:52 PM
ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Ping.

Jun 17 2015, 5:43 PM
ayartsev committed rL239971: [analyzer] Cleanup: $Status is always 0 here..
[analyzer] Cleanup: $Status is always 0 here.
Jun 17 2015, 4:30 PM
ayartsev committed rL239970: [analyzer] Close file handle before output to file from external command..
[analyzer] Close file handle before output to file from external command.
Jun 17 2015, 4:16 PM

Jun 1 2015

ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

The request is cancelled, unix.Malloc already handles both cases (usage after free and leak if realloc fails and reallocated memory is not freed.

Jun 1 2015, 6:42 AM

May 27 2015

ayartsev updated the diff for D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Got it. Attached is an updated patch, please review.

May 27 2015, 5:03 PM
ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Ping.

May 27 2015, 8:34 AM

May 26 2015

ayartsev added a comment to D9357: [analyzer] Support spaces in compiler path and arguments..

The $line that hold arguments is the raw output from Clang with -### option passed. An output is consistent: each item in the output is double-quoted, each macro definition is split into "-D" and "definition".
In scan-build we call 'quotewords' to extract items. If we call 'quotewords' with the false 'keep' parameter we "remove all quotes and backslashes that are not themselves backslash-escaped or inside of single quotes" (perldoc). Here the problem with paths that have spaces arises (at least under Windows).
If we pass true to 'quotewords' 'keep' parameter we preserve all quotes and backslashes and this worked for me under Windows, but the regressions were reported in comments to r236423 like the following:
clang: error: no such file or directory: '"-cc1"'
clang: error: no such file or directory: '"-analyze"'
...

May 26 2015, 3:33 PM

May 22 2015

ayartsev updated the diff for D9357: [analyzer] Support spaces in compiler path and arguments..

Another try: we preserve all quotes and backslashes as is by passing 'true' to quotewords() and only remove quotes from macro definitions and arguments without spaces.

May 22 2015, 3:35 PM

May 19 2015

ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Yes, the behavior for realloc returning NULL remained unchanged (reallocPtrZero2() test handles this).

May 19 2015, 6:11 AM
ayartsev updated the diff for D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Updated the patch. Left an old behavior for C89. Please review.

May 19 2015, 4:31 AM

May 14 2015

ayartsev added a comment to D9040: [analyzer] Make realloc(ptr, 0) handling equivalent to malloc(0)..

Ping.

May 14 2015, 5:24 PM
ayartsev added a comment to D9357: [analyzer] Support spaces in compiler path and arguments..

Ping.

May 14 2015, 5:23 PM

May 6 2015

ayartsev updated the diff for D9357: [analyzer] Support spaces in compiler path and arguments..

The patch, committed as r236423 caused at least two types of regressions:

  1. (not reproduced on Windows) :

clang: error: no such file or directory: '"-cc1"'
clang: error: no such file or directory: '"-triple"'
...

May 6 2015, 4:54 PM

May 5 2015

ayartsev updated the diff for D8774: [analyzer] Prevent ccc/c++-analyzer from hanging on Windows..

Updated the patch (after changes introduced by r236533).

May 5 2015, 3:27 PM
ayartsev committed rL236533: [analyzer] This eliminates regression caused by r236423..
[analyzer] This eliminates regression caused by r236423.
May 5 2015, 12:47 PM

May 4 2015

ayartsev updated the diff for D8774: [analyzer] Prevent ccc/c++-analyzer from hanging on Windows..

Updated the patch, tested that the patch successfully applies at ToT (r236425).
Let us forget about http://reviews.llvm.org/D6551 for a while until the current patch gets in. I recommend to get fresh 'scan-build' and 'ccc-analyzer' files from svn (I've slightly modified 'ccc-analyzer' at r236423) and apply the current patch over. Please test!

May 4 2015, 9:37 AM
ayartsev committed rL236423: [analyzer] scan-build: support spaces in compiler path and arguments..
[analyzer] scan-build: support spaces in compiler path and arguments.
May 4 2015, 6:41 AM

Apr 30 2015

ayartsev added a comment to D9357: [analyzer] Support spaces in compiler path and arguments..

Ok to commit the solution with passing true to quotewords?

Apr 30 2015, 5:30 PM