Page MenuHomePhabricator
Feed Advanced Search

Sep 30 2018

DmitryPolukhin accepted D52696: Update ifunc attribute support documentation.

LGTM

Sep 30 2018, 7:01 AM

May 17 2017

DmitryPolukhin added a comment to D32428: Fix for Itanium mangler issue with templates (bug: 31405).

David, could you please take a look to this patch. It fixes potential issue and should have no side effects. If you have no objections, I'll commit it for Serge.

May 17 2017, 1:16 AM

Apr 24 2017

DmitryPolukhin added a comment to D32428: Fix for Itanium mangler issue with templates (bug: 31405).

LGTM

Apr 24 2017, 7:25 AM

Oct 5 2016

DmitryPolukhin accepted D24932: Fix PR 30440.

I think we need to fix this regression.

Oct 5 2016, 10:53 AM

Sep 26 2016

DmitryPolukhin added a comment to D24932: Fix PR 30440.

LGTM, added Richard in case he has something to add.

Sep 26 2016, 12:30 PM
DmitryPolukhin added a reviewer for D24932: Fix PR 30440: rsmith.
Sep 26 2016, 12:28 PM

Sep 21 2016

DmitryPolukhin closed D24704: PR30401: Fix substitutions for functions with abi_tag.

Committed as rL282059

Sep 21 2016, 1:39 AM

Sep 20 2016

DmitryPolukhin added a comment to D24704: PR30401: Fix substitutions for functions with abi_tag.

Richard, please take another look.

Sep 20 2016, 12:58 AM

Sep 19 2016

DmitryPolukhin added inline comments to D24704: PR30401: Fix substitutions for functions with abi_tag.
Sep 19 2016, 1:41 AM
DmitryPolukhin updated the diff for D24704: PR30401: Fix substitutions for functions with abi_tag.
Sep 19 2016, 1:41 AM

Sep 18 2016

DmitryPolukhin added inline comments to D24704: PR30401: Fix substitutions for functions with abi_tag.
Sep 18 2016, 12:00 PM
DmitryPolukhin retitled D24704: PR30401: Fix substitutions for functions with abi_tag from to PR30401: Fix substitutions for functions with abi_tag.
Sep 18 2016, 1:08 AM

Jul 19 2016

DmitryPolukhin abandoned D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .
Jul 19 2016, 7:09 AM
DmitryPolukhin closed D21228: Deprecated (legacy) string literal conversion to 'char *' causes strange overloading resolution.

Committed as rL275970

Jul 19 2016, 4:39 AM
DmitryPolukhin added inline comments to D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .
Jul 19 2016, 3:10 AM
DmitryPolukhin added a comment to D21970: Add attribute abi_tag to the release notes.

Hi Hans, it seems that you've just created release branch for 3.9 and this patch should go directly to the branch, right? If so could you please commit this patch for me because I'm working with git-svn and there is no instruction how to work with release LLVM branches from git so I'm worry that my setup could break things. I'm absolutely fine with moving abi_tag above --build-id. Thanks!

Jul 19 2016, 1:55 AM

Jul 14 2016

DmitryPolukhin updated the diff for D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .
  • defer var generation if their type is class with dllimport.
Jul 14 2016, 4:15 AM
DmitryPolukhin added a comment to D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .

A flag on CXXRecordDecl which is sensitive to the most recent expression evaluation might not be the best way to go.
Perhaps we should be able to use the VFTableBuilder to build imported and local vftables for the same vftable? Not entirely sure though...

Jul 14 2016, 4:13 AM

Jul 13 2016

DmitryPolukhin updated the diff for D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .

Sorry for delay with patch rework, PTAL!

  • added local vftable for constexpr
  • added use of imported vftable
Jul 13 2016, 4:49 AM

Jul 12 2016

DmitryPolukhin added a comment to D21970: Add attribute abi_tag to the release notes.

Friendly ping, PTAL!

Jul 12 2016, 1:33 AM

Jul 7 2016

DmitryPolukhin added a comment to D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .

Thinking about this some more, it is possible for clang to emit code that will make everybody happy:

If a class is being constructed in a constexpr context and all the vftable entries it references are marked import, emit local vftables and reference them in the object. If a vftable entry it references is not marked import, report an error.

If a class is constructed via operator new and all the vftable entries it references are marked import, emit local vftables and store it in the object after the constructors run. If a vftable entry it references is not marked import, report an error.

If a class is constructed via a local or global variable and all the vftable entries it references are marked import, create a dllimport available_externally vftable. Otherwise create a normal dllimport external vftable.

I believe this behavior captures the best behavior across the spectrum of functionality we all care about: it supports devirtualization, constexpr and importing classes which don't have all their vftable methods exported.

Jul 7 2016, 4:49 AM

Jul 6 2016

DmitryPolukhin added a comment to D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .

Here is B::foo is not exported but required to build vftable for D.

What happens if D also had a virtual destructor?

Jul 6 2016, 11:25 AM
DmitryPolukhin added a comment to D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .

Wait, can you give an example of MSVC exporting a vftable but not all the virtual methods (other than the deleting destructor)? I don't believe I've ever come across an example of this.

Jul 6 2016, 10:58 AM
DmitryPolukhin added a comment to D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .

David, do you know real programs that relay on constexpr and dllexport semantic that doesn't work on MSVC?

Yes, Chrome relied on these semantics.

Jul 6 2016, 4:00 AM
DmitryPolukhin added a comment to D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .

I found the patch that prevents using imported vftable, http://llvm.org/viewvc/llvm-project?view=revision&revision=260548 but the patch has no examples of constexpr + dllimport.

Jul 6 2016, 2:34 AM
DmitryPolukhin added a comment to D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .

David, do you know real programs that relay on constexpr and dllexport semantic that doesn't work on MSVC? If not, I think we might want to report error message instead of miss-compile it as MSVC does. Anyway current implementation is not compatible with MSVC in much more common case without constexp. At the moment my patch works with your example just because it only changes mangling but don't use imported vftable that seems to be wrong. Is it you changes somewhere that prevent using imported vftable?

Jul 6 2016, 2:19 AM
DmitryPolukhin updated subscribers of D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .
Jul 6 2016, 12:34 AM
DmitryPolukhin retitled D22034: [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor from to [MSVC][DLL] use local vftable mangling only exported classes with virtual destructor .
Jul 6 2016, 12:15 AM

Jul 4 2016

DmitryPolukhin retitled D21970: Add attribute abi_tag to the release notes from to Add attribute abi_tag to the release notes.
Jul 4 2016, 6:31 AM

Jun 30 2016

DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Richard, thank you for the review!

Jun 30 2016, 2:53 AM

Jun 29 2016

DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Use SmallVector instead of SmallSetVector and sort the vector when needed.

Jun 29 2016, 6:27 AM

Jun 22 2016

DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Fixed issue with substitution from function name used in bare type encoding and added test. With this patch Clang passes self build with GCC 5.3.1 headers and C++ libraries so it gives some level of confidence that it works on real apps.

Jun 22 2016, 11:42 PM

Jun 21 2016

DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.
  • removed wrong asserts that I used for an experiment
Jun 21 2016, 4:18 AM
DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

This patch set contains serious refactoring to make it closer to what Richard suggested. Unfortunately there is no way to fully implement Richard's idea because we have to mangle twice name of functions and variables. But this patch reuse mangled bare function type generated during tags calculation.

Jun 21 2016, 4:14 AM

Jun 7 2016

DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Yes, I definitely want us to implement this for GCC compatibility. And now that we have a specification for this feature, we can evaluate whether this is doing the right thing. On that basis:

I still want this refactored so that the normally-mangled part of a function name is only mangled once, rather than being mangled twice (once to find the implicit tag set and once to actually produce the mangled name). As suggested, you can achieve this by first computing the set of tags from the return type, then mangling the encoding to a separate buffer (collecting tags as you go) if the set is non-empty, and finally writing any remaining tags and the buffer contents.

Please factor out a function to mangle the source name and ABI tags for a NamedDecl rather than duplicating that pair of calls throughout the patch.

Current discussion on the ABI list suggests that it is not correct to mangle the return type / variable type to get the implicit tag set. The set of available attributes should be determined by a recursive walk of the original type (prior to any substitution), not by mangling it and seeing what it references. It's not yet clear whether that's the actual design intent or just the emergent behavior of the GCC implementation, however.

Jun 7 2016, 4:47 AM

Jun 3 2016

DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.
Jun 3 2016, 3:19 AM

May 26 2016

DmitryPolukhin abandoned D18641: [PP] Handle #include_next after include found relative to current one same as GCC.

It seems that there is no interest in this patch, abandon.

May 26 2016, 7:55 AM
DmitryPolukhin retitled D20683: [MSVC2015] Fix mangling for static variables initialization guards from to [MSVC2015] Fix mangling for static variables initialization guards.
May 26 2016, 7:52 AM

May 23 2016

DmitryPolukhin added a comment to D20422: [MSVC2015] dllexport for defaulted special class members.

PTAL

May 23 2016, 6:36 AM
DmitryPolukhin updated the diff for D20422: [MSVC2015] dllexport for defaulted special class members.
  • drop dllexport for trivial defaulted x-tors for compatibility with MSVC2015
  • move checks to CheckCompletedCXXClass because completed class definition is required to detect if x-tor is trivial
May 23 2016, 6:28 AM
DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Fix test/PCH/attrs.c failure due to warning about unsupported abi_tag attribute (committed in rL269869).
This patch implements abi_tag so the warning is not expected with this patch.

May 23 2016, 2:03 AM

May 19 2016

DmitryPolukhin added inline comments to D20422: [MSVC2015] dllexport for defaulted special class members.
May 19 2016, 10:33 PM
DmitryPolukhin updated the diff for D20422: [MSVC2015] dllexport for defaulted special class members.

Comments resolved, PTAL.

May 19 2016, 10:33 PM
DmitryPolukhin retitled D20422: [MSVC2015] dllexport for defaulted special class members from to [MSVC2015] dllexport for defaulted special class members.
May 19 2016, 4:53 AM
DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

One more friendly ping...... :(

May 19 2016, 3:18 AM

May 13 2016

DmitryPolukhin closed D19156: [ms][dll] #27212: Generating of implicit special members should take into account MSVC compatibility version.

Committed as rL269400

May 13 2016, 2:14 AM

May 12 2016

DmitryPolukhin updated subscribers of D19156: [ms][dll] #27212: Generating of implicit special members should take into account MSVC compatibility version.
May 12 2016, 8:08 AM

May 10 2016

DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Richard, friendly ping. It seems that your counterexample cause no issue with this patch. I added tests to prove it. Could you please take another look?

May 10 2016, 3:00 AM

May 9 2016

DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.
  • fixed tests for i686 when function may have hidden parameter
May 9 2016, 8:01 AM

May 7 2016

DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Thank you for reporting this issue, I'll take a look.
I'm mostly testing on x86_64 so I may not notice the problem.

May 7 2016, 1:29 PM

May 6 2016

DmitryPolukhin retitled D20011: [OpenMP 4.5] Parse+Sema for '#pragma omp declare target' clauses from to [OpenMP 4.5] Parse+Sema for '#pragma omp declare target' clauses.
May 6 2016, 1:48 AM

May 4 2016

DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

+ rebase
+ added testcase with Richard's example

May 4 2016, 3:24 AM

May 3 2016

DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Richard, could you please share your counterexample so I could test it on my patch and GCC?

May 3 2016, 12:51 PM

Apr 27 2016

DmitryPolukhin added a comment to D18641: [PP] Handle #include_next after include found relative to current one same as GCC.

I'm a little concerned about the possibility of this breaking uses of this feature on platforms where Clang is the system compiler. For instance, this pattern would be broken by your change:

// stddef.h
#include "stddef-helper.h"
 
// stddef-helper.h
#include_next <stddef.h>

Conversely, I don't think any important library is likely to be relying on the GCC behavior, because compilations with gcc -I- would effectively get the current Clang behavior (because relative-looking paths would be found in the relevant include search path rather than as relative paths).

Apr 27 2016, 5:09 AM

Apr 26 2016

DmitryPolukhin added a comment to D18641: [PP] Handle #include_next after include found relative to current one same as GCC.

Richard, friendly ping, PTAL!

Apr 26 2016, 2:35 AM
DmitryPolukhin added a comment to D19477: [MSVC] PR27337: allow static_cast from private base to derived for WTL.

Thank you for the review!

Apr 26 2016, 2:28 AM

Apr 25 2016

DmitryPolukhin retitled D19477: [MSVC] PR27337: allow static_cast from private base to derived for WTL from to [MSVC] PR27337: allow static_cast from private base to derived for WTL.
Apr 25 2016, 3:15 AM

Apr 22 2016

DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Weekly friendly ping, PTAL!

Apr 22 2016, 12:46 AM

Apr 15 2016

DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Richard, this is just weekly friendly ping about abi_tag support.

Apr 15 2016, 1:21 AM

Apr 14 2016

DmitryPolukhin added a comment to D19056: [MSVC] Fix check for wchar_t type in case of -fno-wchar.

I added few more negative tests. Thank you for the review!

Apr 14 2016, 2:58 AM

Apr 13 2016

DmitryPolukhin retitled D19056: [MSVC] Fix check for wchar_t type in case of -fno-wchar from to [MSVC] Fix check for wchar_t type in case of -fno-wchar.
Apr 13 2016, 5:16 AM

Apr 11 2016

DmitryPolukhin added inline comments to D18823: Implementation of VlA of GNU C++ extension.
Apr 11 2016, 7:57 AM
DmitryPolukhin added a comment to D18823: Implementation of VlA of GNU C++ extension.

The patch itself looks good to me but the main question do we want to support VLA in C++ in GNU extension mode.

Apr 11 2016, 7:37 AM
DmitryPolukhin added a comment to D15524: [GCC] Attribute ifunc support in clang.

Sorry, I was out for couple days.

Apr 11 2016, 12:35 AM

Apr 7 2016

DmitryPolukhin closed D18859: [IFUNC] Fix ifunc-asm.ll test.

Committed as rL265770

Apr 7 2016, 11:52 PM
DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Richard, Reid and David,

Apr 7 2016, 7:28 AM
DmitryPolukhin retitled D18859: [IFUNC] Fix ifunc-asm.ll test from to [IFUNC] Fix ifunc-asm.ll test.
Apr 7 2016, 7:09 AM
DmitryPolukhin updated the diff for D15524: [GCC] Attribute ifunc support in clang.
  • rebase after committing llvm patch
Apr 7 2016, 5:40 AM

Apr 6 2016

DmitryPolukhin updated the diff for D15525: [GCC] Attribute ifunc support in llvm.
  • fixed comments
Apr 6 2016, 7:23 AM
DmitryPolukhin closed D18542: [OPENMP] Parsing and Sema support for 'omp declare target' directive.

Committed as rL265530

Apr 6 2016, 4:56 AM

Apr 5 2016

DmitryPolukhin updated the diff for D18542: [OPENMP] Parsing and Sema support for 'omp declare target' directive.
  • fixed all comments
  • rebase
Apr 5 2016, 7:39 AM
DmitryPolukhin added a comment to D18542: [OPENMP] Parsing and Sema support for 'omp declare target' directive.

Alexey, please review OpenMP specific things.

Apr 5 2016, 3:20 AM
DmitryPolukhin updated the diff for D15525: [GCC] Attribute ifunc support in llvm.

Rebased on top of D18754

Apr 5 2016, 2:29 AM

Apr 4 2016

DmitryPolukhin retitled D18754: [IFUNC] Use GlobalIndirectSymbol when aliases and ifuncs have something similar from to [IFUNC] Use GlobalIndirectSymbol when aliases and ifuncs have something similar.
Apr 4 2016, 6:46 AM

Apr 1 2016

DmitryPolukhin added inline comments to D15525: [GCC] Attribute ifunc support in llvm.
Apr 1 2016, 6:55 AM
DmitryPolukhin updated the diff for D18542: [OPENMP] Parsing and Sema support for 'omp declare target' directive.
  • implemented ad hoc solution for printing
  • added documentation for the attrbute
  • reabse
Apr 1 2016, 4:25 AM

Mar 31 2016

DmitryPolukhin updated the diff for D15525: [GCC] Attribute ifunc support in llvm.
  • rebease on top of GlobalIndirectSymbol committed to LLVM
  • removed C interface for ifunc, it seems that it is not required for now
Mar 31 2016, 7:48 AM
DmitryPolukhin retitled D18641: [PP] Handle #include_next after include found relative to current one same as GCC from to [PP] Handle #include_next after include found relative to current one same as GCC.
Mar 31 2016, 5:06 AM
DmitryPolukhin added a comment to D18542: [OPENMP] Parsing and Sema support for 'omp declare target' directive.

Could you please take a look to OMPDeclareTargetDecl attribute implementation and printPrettyEnd approach in general?
For post print mechanism alternative approach is to use ad hoc solution in DeclPrinter.

Mar 31 2016, 1:24 AM

Mar 30 2016

DmitryPolukhin updated the diff for D18542: [OPENMP] Parsing and Sema support for 'omp declare target' directive.
  • Added test for templates in declare target region
Mar 30 2016, 8:36 AM
DmitryPolukhin added a comment to D18433: [IFUNC] Introduce GlobalIndirectSymbol as a base class for aliases and ifuncs.

Friendly ping, please take a look! This patch is relatively short and has no functional changes, just class hierarchy preparation.

Mar 30 2016, 1:13 AM
DmitryPolukhin added a comment to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Friendly ping, please take a look!

Mar 30 2016, 1:10 AM

Mar 29 2016

DmitryPolukhin retitled D18542: [OPENMP] Parsing and Sema support for 'omp declare target' directive from to [OPENMP] Parsing and Sema support for 'omp declare target' directive.
Mar 29 2016, 1:51 AM

Mar 24 2016

DmitryPolukhin added a comment to D15525: [GCC] Attribute ifunc support in llvm.

Extracted GlobalIndirectSymbol creation to separate patch http://reviews.llvm.org/D18433

Mar 24 2016, 2:25 AM
DmitryPolukhin retitled D18433: [IFUNC] Introduce GlobalIndirectSymbol as a base class for aliases and ifuncs from to [IFUNC] Introduce GlobalIndirectSymbol as a base class for aliases and ifuncs.
Mar 24 2016, 2:22 AM

Mar 23 2016

DmitryPolukhin added a comment to D15525: [GCC] Attribute ifunc support in llvm.

Eric, that you for looking to the code! I'll split the patch and send first part for review ASAP.

Mar 23 2016, 6:51 AM
DmitryPolukhin added inline comments to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.
Mar 23 2016, 5:44 AM
DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Fixed comments.

Mar 23 2016, 5:44 AM

Mar 14 2016

DmitryPolukhin added inline comments to D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.
Mar 14 2016, 11:15 PM
DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

All comments resolved.

Mar 14 2016, 11:15 PM
DmitryPolukhin added a comment to D12834: add gcc abi_tag support.

Hi Pavel,

Mar 14 2016, 1:45 AM

Mar 11 2016

DmitryPolukhin updated the diff for D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support.

Re-base to resolve merge conflicts with r263109.

Mar 11 2016, 3:56 AM

Mar 10 2016

DmitryPolukhin retitled D18035: [GCC] PR23529 Mangler part of attrbute abi_tag support from to [GCC] PR23529 Mangler part of attrbute abi_tag support.
Mar 10 2016, 4:56 AM

Mar 9 2016

DmitryPolukhin added a comment to D17567: [GCC] PR23529 Sema part of attrbute abi_tag support.

Thank you for the comments!

Mar 9 2016, 2:12 AM
DmitryPolukhin updated the diff for D17567: [GCC] PR23529 Sema part of attrbute abi_tag support.
  • fixed comments
  • rebase with resolving conflicts
Mar 9 2016, 2:11 AM

Mar 2 2016

DmitryPolukhin updated the diff for D17567: [GCC] PR23529 Sema part of attrbute abi_tag support.

Rebase

Mar 2 2016, 7:05 AM
DmitryPolukhin added a comment to D17567: [GCC] PR23529 Sema part of attrbute abi_tag support.

Aaron, friendly ping, please take a look!

Mar 2 2016, 4:51 AM

Feb 24 2016

DmitryPolukhin retitled D17567: [GCC] PR23529 Sema part of attrbute abi_tag support from [GCC] Sema part of attrbute abi_tag support to [GCC] PR23529 Sema part of attrbute abi_tag support.
Feb 24 2016, 3:42 AM
DmitryPolukhin retitled D17567: [GCC] PR23529 Sema part of attrbute abi_tag support from to [GCC] Sema part of attrbute abi_tag support.
Feb 24 2016, 3:37 AM

Feb 12 2016

DmitryPolukhin retitled D17197: [OPENMP] NFC rewrite ParseOpenMPDirectiveKind from to [OPENMP] NFC rewrite ParseOpenMPDirectiveKind.
Feb 12 2016, 5:10 AM