erichkeane (Erich Keane)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 28 2016, 8:37 AM (125 w, 1 d)

Recent Activity

Yesterday

erichkeane updated the diff for D51650: Implement target_clones multiversioning.

Fix @rsmith s comments, rebase on the big CPUDispatch refactor.

Wed, Nov 21, 10:23 AM

Tue, Nov 20

erichkeane committed rL347322: [NFC] Remove MS line endings in diagnostics file..
[NFC] Remove MS line endings in diagnostics file.
Tue, Nov 20, 8:35 AM
erichkeane committed rC347322: [NFC] Remove MS line endings in diagnostics file..
[NFC] Remove MS line endings in diagnostics file.
Tue, Nov 20, 8:35 AM

Mon, Nov 19

erichkeane added a comment to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Submitter: Any update on the status? It seems that Richard's feedback should be trivial enough, so I was wondering if you need this taken up?

Mon, Nov 19, 9:45 AM
erichkeane updated the diff for D54653: Correct CreateAlignmentAssumption to check sign and power-of-2 (LLVM Part).
Mon, Nov 19, 7:06 AM
erichkeane updated the summary of D54654: Correct CreateAlignmentAssumption to check sign and power-of-2 (Clang Part).
Mon, Nov 19, 6:53 AM

Fri, Nov 16

erichkeane added a comment to D54654: Correct CreateAlignmentAssumption to check sign and power-of-2 (Clang Part).
Fri, Nov 16, 3:01 PM
erichkeane added a dependent revision for D54653: Correct CreateAlignmentAssumption to check sign and power-of-2 (LLVM Part): D54654: Correct CreateAlignmentAssumption to check sign and power-of-2 (Clang Part).
Fri, Nov 16, 3:01 PM
erichkeane added a dependency for D54654: Correct CreateAlignmentAssumption to check sign and power-of-2 (Clang Part): D54653: Correct CreateAlignmentAssumption to check sign and power-of-2 (LLVM Part).
Fri, Nov 16, 3:01 PM
erichkeane created D54654: Correct CreateAlignmentAssumption to check sign and power-of-2 (Clang Part).
Fri, Nov 16, 2:59 PM
erichkeane created D54653: Correct CreateAlignmentAssumption to check sign and power-of-2 (LLVM Part).
Fri, Nov 16, 2:59 PM
erichkeane added a comment to D54547: PTH-- Remove feature entirely-.

I have some experience with PTH implementation, because had to fix it for Java-port of Clang (https://github.com/java-port/clank).

It was sometime ago, but making it completely workable was not hard.
As I remember the key fix was just to have PTH be EMITTED using raw-Lex mode (where real keyword-IDs are not used, so all Token Kinds nicely fit 8-bits).
It worked, because on token automatically became keyword by PTHLexer::Lex:
...

   // Change the kind of this identifier to the appropriate token kind, e.g.
   // turning "for" into a keyword.
Tok.setKind(II->getTokenID());

...

We used PTH, because multiple translation units are parsed in the context of single run.
In this case preprocessing phase was upto 10x faster when token stream was deserialized from PTH (i.e. for all system headers lexed once).
Also it was helpful, because we were able to parse from concurrent threads using the same shared immutable mmaped PTH.

I thought clang-d service is using it to speed up indexing.

Fri, Nov 16, 10:54 AM
erichkeane added a comment to D54547: PTH-- Remove feature entirely-.

Would it be better to deprecate the use of PTH right now for the current release, so that the users will be aware that we will remove PTH support in LLVM 9 once they upgrade to LLVM 8? Then we can remove it right after LLVM 8 branch is created.

Fri, Nov 16, 10:13 AM

Thu, Nov 15

erichkeane committed rC346996: Fix parens warning in assert in ASTMatchFinder.
Fix parens warning in assert in ASTMatchFinder
Thu, Nov 15, 1:38 PM
erichkeane committed rL346996: Fix parens warning in assert in ASTMatchFinder.
Fix parens warning in assert in ASTMatchFinder
Thu, Nov 15, 1:38 PM
erichkeane updated the diff for D54547: PTH-- Remove feature entirely-.

Added to the release notes. Also, an email was sent out to cfe-dev.

Thu, Nov 15, 7:21 AM

Wed, Nov 14

erichkeane added inline comments to D54547: PTH-- Remove feature entirely-.
Wed, Nov 14, 2:42 PM
erichkeane created D54547: PTH-- Remove feature entirely-.
Wed, Nov 14, 2:37 PM

Tue, Nov 13

erichkeane added inline comments to D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".
Tue, Nov 13, 11:09 AM · Restricted Project
erichkeane added inline comments to D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".
Tue, Nov 13, 8:36 AM · Restricted Project
erichkeane committed rC346757: [NFC] Move storage of dispatch-version to GlobalDecl.
[NFC] Move storage of dispatch-version to GlobalDecl
Tue, Nov 13, 7:51 AM
erichkeane committed rL346757: [NFC] Move storage of dispatch-version to GlobalDecl.
[NFC] Move storage of dispatch-version to GlobalDecl
Tue, Nov 13, 7:50 AM
This revision was not accepted when it landed; it landed in state Needs Review.
Tue, Nov 13, 7:50 AM
erichkeane updated subscribers of D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".

You'll not be able to get the C++ spelling without it getting into the standard. Additionally, it seems easy enough to calculate upon need, so storing it in the AST is a waste. @aaron.ballman is likely another person who can review this.

Tue, Nov 13, 6:38 AM · Restricted Project

Mon, Nov 12

erichkeane committed rL346705: Fix the 'fixit' for inline namespace replacement..
Fix the 'fixit' for inline namespace replacement.
Mon, Nov 12, 1:11 PM
erichkeane committed rC346705: Fix the 'fixit' for inline namespace replacement..
Fix the 'fixit' for inline namespace replacement.
Mon, Nov 12, 1:11 PM
erichkeane committed rL346696: [NFC] Fix formatting in inline nested namespace definition..
[NFC] Fix formatting in inline nested namespace definition.
Mon, Nov 12, 11:32 AM
erichkeane committed rC346696: [NFC] Fix formatting in inline nested namespace definition..
[NFC] Fix formatting in inline nested namespace definition.
Mon, Nov 12, 11:32 AM
erichkeane committed rC346677: Implement P1094R2 (nested inline namespaces).
Implement P1094R2 (nested inline namespaces)
Mon, Nov 12, 9:22 AM
erichkeane committed rL346677: Implement P1094R2 (nested inline namespaces).
Implement P1094R2 (nested inline namespaces)
Mon, Nov 12, 9:22 AM

Thu, Nov 1

erichkeane committed rL345839: Multiversioning- Ensure all MV functions are emitted..
Multiversioning- Ensure all MV functions are emitted.
Thu, Nov 1, 8:15 AM
erichkeane committed rC345839: Multiversioning- Ensure all MV functions are emitted..
Multiversioning- Ensure all MV functions are emitted.
Thu, Nov 1, 8:15 AM
erichkeane committed rL345838: CPU-Dispatch- Fix type of a member function, prevent deferrals.
CPU-Dispatch- Fix type of a member function, prevent deferrals
Thu, Nov 1, 8:15 AM
erichkeane committed rC345838: CPU-Dispatch- Fix type of a member function, prevent deferrals.
CPU-Dispatch- Fix type of a member function, prevent deferrals
Thu, Nov 1, 8:15 AM
erichkeane committed rL345826: CPU-Dispatch-- Fix conflict between 'generic' and 'pentium'.
CPU-Dispatch-- Fix conflict between 'generic' and 'pentium'
Thu, Nov 1, 5:53 AM
erichkeane committed rC345826: CPU-Dispatch-- Fix conflict between 'generic' and 'pentium'.
CPU-Dispatch-- Fix conflict between 'generic' and 'pentium'
Thu, Nov 1, 5:53 AM

Mon, Oct 29

erichkeane committed rL345543: Add parens to fix incorrect assert check..
Add parens to fix incorrect assert check.
Mon, Oct 29, 2:24 PM

Thu, Oct 25

erichkeane closed D53718: Change keep-static-consts to work on static storage duration, not storage class..

rL345302

Thu, Oct 25, 12:17 PM
erichkeane added an edge to rL345302: Change keep-static-consts to work on static storage duration, not: D53718: Change keep-static-consts to work on static storage duration, not storage class..
Thu, Oct 25, 12:17 PM
erichkeane added 1 commit(s) for D53718: Change keep-static-consts to work on static storage duration, not storage class.: rL345302: Change keep-static-consts to work on static storage duration, not.
Thu, Oct 25, 12:17 PM
erichkeane committed rL345302: Change keep-static-consts to work on static storage duration, not.
Change keep-static-consts to work on static storage duration, not
Thu, Oct 25, 12:16 PM
erichkeane committed rC345302: Change keep-static-consts to work on static storage duration, not.
Change keep-static-consts to work on static storage duration, not
Thu, Oct 25, 12:16 PM
erichkeane updated the diff for D53718: Change keep-static-consts to work on static storage duration, not storage class..

Add to the test

Thu, Oct 25, 12:14 PM
erichkeane added a comment to D53718: Change keep-static-consts to work on static storage duration, not storage class..

Will this work for the following variable?

constexpr int N = 3;
Thu, Oct 25, 12:11 PM
erichkeane committed rC345298: Implement Function Multiversioning for Non-ELF Systems..
Implement Function Multiversioning for Non-ELF Systems.
Thu, Oct 25, 11:59 AM
erichkeane committed rL345298: Implement Function Multiversioning for Non-ELF Systems..
Implement Function Multiversioning for Non-ELF Systems.
Thu, Oct 25, 11:59 AM
erichkeane closed D53586: Implement Function Multiversioning for Non-ELF Systems..
Thu, Oct 25, 11:59 AM
erichkeane added a comment to D53586: Implement Function Multiversioning for Non-ELF Systems..
In D53586#1276198, @rnk wrote:

Here's a thought. What happens if different TUs observe different overload sets, perhaps because of ifdefs? Different TUs will generate different resolvers, but they won't dispatch to the same sets of targets. I'm guessing we'd treat that as an ODR violation, no diagnostic required?

Anyway, I think this is ready to commit. Thanks!

Thu, Oct 25, 11:23 AM
erichkeane added a comment to D40925: Add option -fkeep-static-consts.
In D40925#1276114, @rnk wrote:

My coworker, @zturner, asked if I knew a way to force emit all constants, and I mentioned this flag, but we noticed it doesn't work on cases when the constant is implicitly static, like this:

const int foo = 42;

If I add static to it, it gets emitted with -fkeep-static-consts, but as is, it doesn't get emitted.

Do you think it's worth extending the logic to handle this case? GCC seems to that global foo regardless of the flag setting.

Thu, Oct 25, 11:17 AM
erichkeane created D53718: Change keep-static-consts to work on static storage duration, not storage class..
Thu, Oct 25, 11:13 AM
erichkeane updated the diff for D53713: Add extension to always default-initialize nullptr_t..

Update the 2 failing tests. Would love some help looking at the Analysis fix, it seems to no longer have to 'assume' stuff due to the this now being defined behavior.

Thu, Oct 25, 10:13 AM
erichkeane added a comment to D53713: Add extension to always default-initialize nullptr_t..

Woops, apparently a couple of tests fail on this that I somehow missed the 1st time. Looking into it.

Thu, Oct 25, 9:54 AM
erichkeane abandoned D49403: More aggressively complete RecordTypes with Function Pointers.
Thu, Oct 25, 9:53 AM
erichkeane created D53713: Add extension to always default-initialize nullptr_t..
Thu, Oct 25, 9:45 AM
erichkeane updated the diff for D53586: Implement Function Multiversioning for Non-ELF Systems..

ACTUALLY add the test this time :/ sorry about that!

Thu, Oct 25, 9:12 AM
erichkeane updated the diff for D53586: Implement Function Multiversioning for Non-ELF Systems..

Added test as requested by @rnk. How's it look? I hope I got the balance of check-lines right.

Thu, Oct 25, 7:19 AM

Wed, Oct 24

erichkeane updated the diff for D53586: Implement Function Multiversioning for Non-ELF Systems..

did everything suggested by @rnk as far as I know. Thanks again for the reviews!

Wed, Oct 24, 2:40 PM
erichkeane added a comment to D53586: Implement Function Multiversioning for Non-ELF Systems..

@rnk: I looked into the EmitMustTailThunk code, and don't terribly see what I'm doing wrong. I clearly cannot CALL that function (since this works with non-CXXMethodDecls), so I looked into using it. However, I saw that it does a couple of small things that seem useful, but not anything that seems to fix your concerns.

Wed, Oct 24, 8:26 AM
erichkeane committed rC345145: Remove a pair of unused dispatch multiversion declarations..
Remove a pair of unused dispatch multiversion declarations.
Wed, Oct 24, 7:36 AM
erichkeane committed rL345145: Remove a pair of unused dispatch multiversion declarations..
Remove a pair of unused dispatch multiversion declarations.
Wed, Oct 24, 7:36 AM
erichkeane added a comment to D53586: Implement Function Multiversioning for Non-ELF Systems..
In D53586#1273546, @rnk wrote:

Seems reasonable. Should the resolver still be called ?foo@.resolver, or should it get a new name, since it is quite functionally different now?

Wed, Oct 24, 6:17 AM

Tue, Oct 23

erichkeane updated subscribers of D53586: Implement Function Multiversioning for Non-ELF Systems..
Tue, Oct 23, 9:38 AM
erichkeane created D53586: Implement Function Multiversioning for Non-ELF Systems..
Tue, Oct 23, 9:38 AM

Oct 22 2018

erichkeane committed rC344957: Give Multiversion-inline functions linkonce linkage.
Give Multiversion-inline functions linkonce linkage
Oct 22 2018, 2:23 PM
erichkeane committed rL344957: Give Multiversion-inline functions linkonce linkage.
Give Multiversion-inline functions linkonce linkage
Oct 22 2018, 2:22 PM
erichkeane added a comment to D53460: [X86] When checking the bits in cpu_features for function multiversioning dispatcher in the resolver, make sure all the required bits are set. Not just one of them.

Yikes, good catch!

Oct 22 2018, 6:10 AM

Oct 16 2018

erichkeane abandoned D52000: Feedback/direction Review for cpu-dispatch emit stage into GlobalDecl.

Superseding with a version that seems to work

Oct 16 2018, 2:15 PM
erichkeane created D53341: Add MV-index to GlobalDecl, spread GlobalDecl through CodeGen (CPU-Dispatch cleanup).
Oct 16 2018, 2:15 PM

Oct 12 2018

erichkeane added a comment to D52000: Feedback/direction Review for cpu-dispatch emit stage into GlobalDecl.

@aaron.ballman or @rsmith any chance you guys could give me a hand on the direction here? I'm growing GlobalDecl by quite a bit, so I want to make sure this is both permissible and the right way to go. Additionally, feedback on how to get a GlobalDecl down to getFunctionFeatureMap would be appreciated.

Oct 12 2018, 10:11 AM

Oct 4 2018

erichkeane accepted D52875: Fix definitions of __builtin_(add|sub|mul)_overflow.
Oct 4 2018, 6:48 AM
erichkeane added a comment to D52875: Fix definitions of __builtin_(add|sub|mul)_overflow.

Can you write tests for this please? Particularly validate the results in a constexpr context.

Oct 4 2018, 6:23 AM

Oct 3 2018

erichkeane added inline comments to D52835: [Diagnostics] Check integer to floating point number implicit conversions.
Oct 3 2018, 12:31 PM
erichkeane added a comment to D46535: Correct warning on Float->Integer conversions..

Hello, @erichkeane

I am working on int to float checker but I haven't found yet a way how to check if integer fits to float's significant bits. Maybe you can recommend me something? I already tried some LLVM APIs but no success. (cc @spatel as you will probably know the right function to do it)

Oct 3 2018, 6:18 AM

Sep 19 2018

erichkeane added a reviewer for D52268: [AST] Squeeze some bits in LinkageComputer: george.burgess.iv.
Sep 19 2018, 10:09 AM · Restricted Project
erichkeane updated subscribers of D52268: [AST] Squeeze some bits in LinkageComputer.

Does this still work with 32 bit hosts? Does PointerIntPair have 3 bits in that case? Is the alignof static_assert valid in that case?

I think it does since Decl is manually over-aligned to 8 bytes. But you are right that the static_assert is probably not needed
here since llvm::PointerIntPair checks that the low bits are available.

I'm not sure how often this ever gets modified, but it is a touch scary to me that we've already maxed out the size of this struct.

I am not sure either... It was just a quick change I spotted and this is borderline not worth doing. If you think that we ought to keep
some space left I will abandon this revision.

Sep 19 2018, 10:09 AM · Restricted Project
erichkeane added a comment to D52268: [AST] Squeeze some bits in LinkageComputer.

Does this still work with 32 bit hosts? Does PointerIntPair have 3 bits in that case? Is the alignof static_assert valid in that case?

Sep 19 2018, 9:01 AM · Restricted Project
erichkeane added a comment to D52267: [AST] Various optimizations + refactoring in DeclarationName(Table).

A few drive-by comments... This is a patch with interactions I'm not sure I feel comfortable approving myself, so I'll count on @rjmccall to do so.

Sep 19 2018, 8:54 AM · Restricted Project

Sep 13 2018

erichkeane committed rC342152: [NFC]Refactor MultiVersion Resolver Emission to combine types.
[NFC]Refactor MultiVersion Resolver Emission to combine types
Sep 13 2018, 9:59 AM
erichkeane committed rL342152: [NFC]Refactor MultiVersion Resolver Emission to combine types.
[NFC]Refactor MultiVersion Resolver Emission to combine types
Sep 13 2018, 9:59 AM

Sep 12 2018

erichkeane created D52000: Feedback/direction Review for cpu-dispatch emit stage into GlobalDecl.
Sep 12 2018, 12:47 PM

Sep 10 2018

erichkeane committed rC341871: Fix test regression in r341862.
Fix test regression in r341862
Sep 10 2018, 2:59 PM
erichkeane committed rL341871: Fix test regression in r341862.
Fix test regression in r341862
Sep 10 2018, 2:59 PM
erichkeane committed rC341862: Move AESNI generation to Skylake and Goldmont.
Move AESNI generation to Skylake and Goldmont
Sep 10 2018, 2:13 PM
erichkeane committed rL341862: Move AESNI generation to Skylake and Goldmont.
Move AESNI generation to Skylake and Goldmont
Sep 10 2018, 2:13 PM
erichkeane closed D51510: Move AESNI generation to Skylake and Goldmont.
Sep 10 2018, 2:13 PM
erichkeane committed rL341861: Move FeatureAES from SLM, WSM and SNB to GLM and SKL.
Move FeatureAES from SLM, WSM and SNB to GLM and SKL
Sep 10 2018, 2:13 PM
erichkeane closed D51565: Move FeatureAES from SLM, WSM and SNB to GLM and SKL.
Sep 10 2018, 2:13 PM
erichkeane added a comment to D51650: Implement target_clones multiversioning.

Thanks for the feedback @rsmith! I'm working through the lambda issue and a few other things, but will get to this as soon as I can.

Sep 10 2018, 11:30 AM
erichkeane added a comment to D51650: Implement target_clones multiversioning.

Based on feedback from @rsmith I've been trying to get this to work with Lambdas like GCC does, though I'm quite confused about how to go about it here. It seems that the lambda definition call operator is deferred, however I'm having a hard time making sure that this happens in the "IFunc" case. I'm still working on it, but it might be a bit.

Sep 10 2018, 10:43 AM
erichkeane committed rC341833: Prevent cpu-specific/cpu-dispatch from giong on a lambda..
Prevent cpu-specific/cpu-dispatch from giong on a lambda.
Sep 10 2018, 7:33 AM
erichkeane committed rL341833: Prevent cpu-specific/cpu-dispatch from giong on a lambda..
Prevent cpu-specific/cpu-dispatch from giong on a lambda.
Sep 10 2018, 7:33 AM

Sep 6 2018

erichkeane updated the diff for D51650: Implement target_clones multiversioning.

fix aaron's comments.

Sep 6 2018, 11:26 AM

Sep 5 2018

erichkeane committed rC341484: Test Commit for git-svn-cleanup comment..
Test Commit for git-svn-cleanup comment.
Sep 5 2018, 10:15 AM
erichkeane committed rL341484: Test Commit for git-svn-cleanup comment..
Test Commit for git-svn-cleanup comment.
Sep 5 2018, 10:15 AM

Sep 4 2018

erichkeane created D51650: Implement target_clones multiversioning.
Sep 4 2018, 11:41 AM

Aug 21 2018

erichkeane added inline comments to D51026: [CodeGen] Implicitly set stackrealign on the main function, if custom stack alignment is used.
Aug 21 2018, 5:52 AM

Aug 17 2018

erichkeane committed rL340025: Fix for bug 38508 - Don't do PCH processing when only generating preprocessor….
Fix for bug 38508 - Don't do PCH processing when only generating preprocessor…
Aug 17 2018, 6:44 AM
erichkeane committed rC340025: Fix for bug 38508 - Don't do PCH processing when only generating preprocessor….
Fix for bug 38508 - Don't do PCH processing when only generating preprocessor…
Aug 17 2018, 6:44 AM
erichkeane closed D50640: Fix for bug 38508 - Don't do PCH processing when only generating preprocessor output.
Aug 17 2018, 6:44 AM

Aug 15 2018

erichkeane accepted D50643: [AST] Pack the bits of TemplateSpecializationType into Type.
Aug 15 2018, 7:13 AM · Restricted Project