Page MenuHomePhabricator

sepavloff (Serge Pavlov)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 13 2013, 7:26 AM (318 w, 3 d)

Recent Activity

Dec 6 2018

sepavloff committed rC348473: Diagnose friend function template redefinitions..
Diagnose friend function template redefinitions.
Dec 6 2018, 1:39 AM
sepavloff committed rL348473: Diagnose friend function template redefinitions..
Diagnose friend function template redefinitions.
Dec 6 2018, 1:39 AM
sepavloff closed D21508: Diagnose friend function template redefinitions.
Dec 6 2018, 1:39 AM

Dec 4 2018

sepavloff updated the diff for D21508: Diagnose friend function template redefinitions.

Updated patch

Dec 4 2018, 10:40 PM

Aug 14 2018

sepavloff added a comment to D21767: Fix instantiation of friend function templates.

Shouldn't there just be a link in the AST from the instantiated FunctionTemplateDecl back to the original pattern? Maybe a generalization of InstantiatedFromMember in RedeclarablableTemplateDecl?

Aug 14 2018, 10:31 AM

Aug 13 2018

sepavloff updated the diff for D21508: Diagnose friend function template redefinitions.

Rebased the patch

Aug 13 2018, 1:09 AM

Aug 12 2018

sepavloff added reviewers for D21767: Fix instantiation of friend function templates: rjmccall, faisalv, fpichet.
Aug 12 2018, 11:32 PM
sepavloff updated the diff for D21767: Fix instantiation of friend function templates.

Rebased the patch, it is still actual.

Aug 12 2018, 11:31 PM

Aug 8 2018

sepavloff abandoned D24649: Treat instantiations of variable templates as definitions.

Fixed in r319605.

Aug 8 2018, 12:03 AM

Aug 7 2018

sepavloff removed a reviewer for D24649: Treat instantiations of variable templates as definitions: rsmith.
Aug 7 2018, 10:06 PM

Jul 28 2018

sepavloff committed rC338199: [UBSan] Strengthen pointer checks in 'new' expressions.
[UBSan] Strengthen pointer checks in 'new' expressions
Jul 28 2018, 8:33 AM
sepavloff committed rL338199: [UBSan] Strengthen pointer checks in 'new' expressions.
[UBSan] Strengthen pointer checks in 'new' expressions
Jul 28 2018, 8:33 AM
sepavloff closed D49589: [UBSan] Strengthen pointer checks in 'new' expressions.
Jul 28 2018, 8:33 AM

Jul 27 2018

sepavloff added a comment to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

@rjmccall Thank you!

Jul 27 2018, 10:36 AM
sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 27 2018, 6:05 AM

Jul 26 2018

sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 26 2018, 9:50 PM
sepavloff added a comment to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Also, please remember that your analysis is not the only thing happening in the compiler. isChecked is not a meaningful name taken out of context.

Jul 26 2018, 10:13 AM
sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 26 2018, 10:04 AM

Jul 25 2018

sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 25 2018, 10:29 AM

Jul 24 2018

sepavloff added inline comments to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.
Jul 24 2018, 12:25 PM
sepavloff updated the diff for D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Updated patch

Jul 24 2018, 12:09 PM

Jul 23 2018

sepavloff added a comment to D49589: [UBSan] Strengthen pointer checks in 'new' expressions.

Did you consider dividing the patch into two separate changes to solve the two described issues independently?

Jul 23 2018, 1:48 AM

Jul 19 2018

sepavloff created D49589: [UBSan] Strengthen pointer checks in 'new' expressions.
Jul 19 2018, 10:24 PM

Jul 4 2018

sepavloff committed rCXXA336312: [demangler] Avoid alignment warning.
[demangler] Avoid alignment warning
Jul 4 2018, 11:31 PM
sepavloff committed rL336312: [demangler] Avoid alignment warning.
[demangler] Avoid alignment warning
Jul 4 2018, 11:29 PM
sepavloff committed rL336311: [demangler] Avoid alignment warning.
[demangler] Avoid alignment warning
Jul 4 2018, 11:27 PM
sepavloff closed D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.
Jul 4 2018, 11:27 PM
sepavloff added inline comments to D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.
Jul 4 2018, 11:25 PM
sepavloff updated the diff for D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.

Updated patch

Jul 4 2018, 7:18 AM
sepavloff added a comment to D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.

We don't need 16-byte alignment on MSVC, we only need 8 because alignof(max_align_t) is 8 on that platform, and malloc is required to provide memory that's aligned to that boundary.

Jul 4 2018, 7:17 AM

Jul 3 2018

sepavloff created D48889: [demangler] Ensure proper alignment in BumpPointerAllocator.
Jul 3 2018, 11:51 AM

Jun 8 2018

sepavloff committed rL334344: Use uniform mechanism for OOM errors handling.
Use uniform mechanism for OOM errors handling
Jun 8 2018, 10:24 PM

May 30 2018

sepavloff added a reverting change for rL333506: Use uniform mechanism for OOM errors handling: rL333518: Revert commit 333506.
May 30 2018, 2:05 AM
sepavloff committed rL333518: Revert commit 333506.
Revert commit 333506
May 30 2018, 2:05 AM

May 29 2018

sepavloff committed rL333506: Use uniform mechanism for OOM errors handling.
Use uniform mechanism for OOM errors handling
May 29 2018, 10:17 PM
sepavloff added a reverting change for rL333390: Use uniform mechanism for OOM errors handling: rL333395: Reverted commits 333390, 333391 and 333394.
May 29 2018, 12:10 AM
sepavloff committed rL333395: Reverted commits 333390, 333391 and 333394.
Reverted commits 333390, 333391 and 333394
May 29 2018, 12:10 AM
sepavloff added a reverting change for rL333391: Added system header cstdlib to MemAlloc.h: rL333395: Reverted commits 333390, 333391 and 333394.
May 29 2018, 12:10 AM
sepavloff added a reverting change for rL333394: Added library LLVMSupport to dependencies of LLVMDemangle: rL333395: Reverted commits 333390, 333391 and 333394.
May 29 2018, 12:10 AM

May 28 2018

sepavloff committed rL333394: Added library LLVMSupport to dependencies of LLVMDemangle.
Added library LLVMSupport to dependencies of LLVMDemangle
May 28 2018, 11:53 PM
sepavloff committed rL333391: Added system header cstdlib to MemAlloc.h.
Added system header cstdlib to MemAlloc.h
May 28 2018, 11:08 PM
sepavloff committed rL333390: Use uniform mechanism for OOM errors handling.
Use uniform mechanism for OOM errors handling
May 28 2018, 10:43 PM
sepavloff closed D47440: Use uniform mechanism for OOM errors handling.
May 28 2018, 10:43 PM
sepavloff created D47440: Use uniform mechanism for OOM errors handling.
May 28 2018, 12:31 AM

May 22 2018

sepavloff accepted D47166: use zeroinitializer for (trailing zero portion of) large array initializers more reliably.

Now I understand your idea about moving the logic to tryEmitPrivateForMemory. Indeed it is more general and consistent solution.
Thank you.

May 22 2018, 10:34 AM

May 21 2018

sepavloff committed rL332847: [CodeGen] Recognize more cases of zero initialization.
[CodeGen] Recognize more cases of zero initialization
May 21 2018, 9:14 AM
sepavloff committed rC332847: [CodeGen] Recognize more cases of zero initialization.
[CodeGen] Recognize more cases of zero initialization
May 21 2018, 9:14 AM
sepavloff closed D46241: [CodeGen] Recognize more cases of zero initialization.
May 21 2018, 9:14 AM

May 20 2018

sepavloff added a comment to D44607: Recompute invalidated iterator in insertTargetAndModeArgs.

Can this be backported to release_60 branch too please ?

May 20 2018, 7:45 PM

May 15 2018

sepavloff added a comment to D46241: [CodeGen] Recognize more cases of zero initialization.

@rsmith Do yo think this patch is OK to apply?

May 15 2018, 7:31 AM

May 10 2018

sepavloff added inline comments to D46241: [CodeGen] Recognize more cases of zero initialization.
May 10 2018, 10:03 PM
sepavloff updated the diff for D46241: [CodeGen] Recognize more cases of zero initialization.

Updated patch

May 10 2018, 1:40 AM

May 8 2018

sepavloff updated subscribers of D46241: [CodeGen] Recognize more cases of zero initialization.
May 8 2018, 11:12 AM
sepavloff added a comment to D46241: [CodeGen] Recognize more cases of zero initialization.

Hmm. In C++, a static object which isn't constant-initialized is zero-initialized, which is required to set any padding bits to zero (N4640 [dcl.init]p6) in both structs and unions. In C, a static object which doesn't have an initializer also has all any padding bits set to zero (N1548 6.7.9p10). Now, this object has an initializer (that acts as a constant-initializer in C++), so those rules don't directly apply; but I would argue that the intent of the standards is not that padding bits become undefined when you happen to have an initializer. So I actually think the zeroinitializer emission is more correct.

May 8 2018, 11:11 AM
sepavloff updated the diff for D46241: [CodeGen] Recognize more cases of zero initialization.

Added treatment of structures/unions

May 8 2018, 11:07 AM

May 7 2018

sepavloff added inline comments to D46241: [CodeGen] Recognize more cases of zero initialization.
May 7 2018, 5:32 AM
sepavloff updated the diff for D46241: [CodeGen] Recognize more cases of zero initialization.

Avoid redundant initializer calculation

May 7 2018, 4:29 AM

May 3 2018

sepavloff accepted D46286: [Driver] Don't warn about unused inputs in config files.

With additional changes the fix is OK.

May 3 2018, 9:52 PM
sepavloff added inline comments to D46241: [CodeGen] Recognize more cases of zero initialization.
May 3 2018, 10:48 AM
sepavloff updated the diff for D46241: [CodeGen] Recognize more cases of zero initialization.

Small simplification

May 3 2018, 10:34 AM

May 2 2018

sepavloff added inline comments to D46241: [CodeGen] Recognize more cases of zero initialization.
May 2 2018, 10:04 AM
sepavloff updated the diff for D46241: [CodeGen] Recognize more cases of zero initialization.

Addressed review notes.

May 2 2018, 10:01 AM
sepavloff accepted D46286: [Driver] Don't warn about unused inputs in config files.

Indeed, this is a missing case. Thank you for fixing it!

May 2 2018, 12:15 AM

Apr 29 2018

sepavloff created D46241: [CodeGen] Recognize more cases of zero initialization.
Apr 29 2018, 10:56 PM

Apr 26 2018

sepavloff committed rL330927: Make test more platform neutral.
Make test more platform neutral
Apr 26 2018, 1:11 AM
sepavloff committed rC330927: Make test more platform neutral.
Make test more platform neutral
Apr 26 2018, 1:11 AM

Apr 25 2018

sepavloff committed rL330926: [ConfigFiles] Update argument strings when merging argrument lists.
[ConfigFiles] Update argument strings when merging argrument lists
Apr 25 2018, 11:33 PM
sepavloff committed rC330926: [ConfigFiles] Update argument strings when merging argrument lists.
[ConfigFiles] Update argument strings when merging argrument lists
Apr 25 2018, 11:33 PM
sepavloff added a comment to D45964: [Driver] Fix implicit config files from prefixed symlinks.

Added an isEmpty() method.

Apr 25 2018, 11:38 AM

Apr 24 2018

sepavloff accepted D45964: [Driver] Fix implicit config files from prefixed symlinks.

Thank you for fixing this issue!

Apr 24 2018, 10:56 AM

Mar 25 2018

sepavloff updated the diff for D21767: Fix instantiation of friend function templates.

Rebased patch

Mar 25 2018, 8:25 PM

Mar 19 2018

sepavloff committed rC327863: [Driver] Avoid invalidated iterator in insertTargetAndModeArgs.
[Driver] Avoid invalidated iterator in insertTargetAndModeArgs
Mar 19 2018, 9:16 AM
sepavloff committed rL327863: [Driver] Avoid invalidated iterator in insertTargetAndModeArgs.
[Driver] Avoid invalidated iterator in insertTargetAndModeArgs
Mar 19 2018, 9:16 AM
sepavloff closed D44607: Recompute invalidated iterator in insertTargetAndModeArgs.
Mar 19 2018, 9:16 AM
sepavloff added a comment to D21508: Diagnose friend function template redefinitions.

Other compilers successfully recognize errors (checked using https://godbolt.org/). For instance, the code:

template<typename T> inline void func_35(T *x);
template<typename T1>
struct C35a {
  template<typename T> friend void func_35(T *x) {}
};
template<typename T1>
struct C35b {
  template<typename T> friend void func_35(T *x) {}
};
C35a<int> v35a;
C35b<int> v35b;

is rejected by MSVC 19:

example.cpp
<source>(7): error C2995: 'void func_37(T *)': function template has already been defined
<source>(1): note: see declaration of 'func_37'
Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.
Compiler returned: 2

by gcc 7.3:

<source>:7:27: error: redefinition of 'template<class T> void func_37(T*)'
 template<typename T> void func_37(T *x) {}
                           ^~~~~~~
<source>:1:27: note: 'template<class T> void func_37(T*)' previously declared here
 template<typename T> void func_37(T *x);
                           ^~~~~~~
Compiler returned: 1

and icc 18:

<source>(7): error: function template "func_37" has already been defined
  template<typename T> void func_37(T *x) {}
                            ^
compilation aborted for <source> (code 2)
Compiler returned: 2
Mar 19 2018, 7:35 AM
sepavloff accepted D44607: Recompute invalidated iterator in insertTargetAndModeArgs.

Thank you!

Mar 19 2018, 6:12 AM
sepavloff added a comment to D44607: Recompute invalidated iterator in insertTargetAndModeArgs.

Good catch, thank you.

Mar 19 2018, 2:24 AM

Mar 13 2018

sepavloff updated the diff for D21508: Diagnose friend function template redefinitions.

Updated patch

Mar 13 2018, 11:42 PM

Mar 8 2018

sepavloff updated subscribers of D43805: Optionally use nameless IR types.

Any feedback?

Mar 8 2018, 4:43 AM

Mar 7 2018

sepavloff updated the diff for D43805: Optionally use nameless IR types.

Use more consistent option names

Mar 7 2018, 1:39 AM

Mar 6 2018

sepavloff added a comment to D43805: Optionally use nameless IR types.
In D43805#1029479, @pcc wrote:

If the backend will be changed so that it will not depend on IR type names

Are you referring to D43199? If so it seems to me that this should be a cc1 flag that defaults to whether -flto=thin is passed. In any case it seems like a bad idea to deliberately generate different code depending on whether we were compiled with NDEBUG.

Mar 6 2018, 9:18 PM
sepavloff added inline comments to D43805: Optionally use nameless IR types.
Mar 6 2018, 8:36 PM
sepavloff added a comment to D43805: Optionally use nameless IR types.
In D43805#1029455, @pcc wrote:

Why is this a driver flag? This seems like it ought to be a cc1-only flag to me.

Mar 6 2018, 8:31 PM

Mar 5 2018

sepavloff committed rL326763: Updated docs in CrashRecoveryContext.h.
Updated docs in CrashRecoveryContext.h
Mar 5 2018, 8:03 PM
sepavloff closed D43200: Updated docs in CrashRecoveryContext.h.
Mar 5 2018, 8:02 PM

Mar 1 2018

sepavloff added a comment to D43200: Updated docs in CrashRecoveryContext.h.

If there are no objections, I would commit this change in a couple of days.

Mar 1 2018, 9:45 AM

Feb 28 2018

sepavloff added a comment to D30170: Function definition may have uninstantiated body.

Thank you!

Feb 28 2018, 11:11 PM
sepavloff committed rC326419: Function definition may have uninstantiated body.
Function definition may have uninstantiated body
Feb 28 2018, 11:07 PM
sepavloff committed rL326419: Function definition may have uninstantiated body.
Function definition may have uninstantiated body
Feb 28 2018, 11:06 PM
sepavloff closed D30170: Function definition may have uninstantiated body.
Feb 28 2018, 11:06 PM
sepavloff added a comment to D30170: Function definition may have uninstantiated body.

The issue is still observed in trunk. Other compilers process the tests correctly (checked using https://godbolt.org/). For instance, the code:

Feb 28 2018, 10:51 AM

Feb 27 2018

sepavloff added inline comments to D43805: Optionally use nameless IR types.
Feb 27 2018, 9:02 AM
sepavloff updated the diff for D43805: Optionally use nameless IR types.

Updated patch

Feb 27 2018, 8:53 AM

Feb 26 2018

sepavloff abandoned D40506: Add stream class raw_abbrev_ostream.

Using llvm type names is considered a wrong direction.

Feb 26 2018, 8:42 PM
sepavloff abandoned D40508: Replace long type names in IR with hashes.

Using llvm type names is considered a wrong direction.

Feb 26 2018, 8:42 PM
sepavloff abandoned D40567: Always show template parameters in IR type names.

The feedback here, in D40508 and in the mail list (http://lists.llvm.org/pipermail/llvm-dev/2017-December/119585.html) demonstrates that this is a wrong direction.
Part of this patch is used in D43805, which implements in some sense an opposite approach, - using nameless llvm types.

Feb 26 2018, 8:39 PM
sepavloff created D43805: Optionally use nameless IR types.
Feb 26 2018, 8:32 PM
sepavloff added a comment to D43200: Updated docs in CrashRecoveryContext.h.

This change is mainly obvious. The only thing that probably need checking is the comment to CrashRecoveryContextCleanupRegistrar. Description in it was obtained as a result of code investigation.

Feb 26 2018, 7:51 PM
sepavloff added a reviewer for D43200: Updated docs in CrashRecoveryContext.h: krememek.
Feb 26 2018, 7:50 PM

Feb 20 2018

sepavloff committed rC325661: Clean up use of C allocation functions.
Clean up use of C allocation functions
Feb 20 2018, 6:05 PM