Page MenuHomePhabricator

erichkeane (Erich Keane)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 28 2016, 8:37 AM (186 w, 5 d)

Recent Activity

Thu, Jan 23

erichkeane accepted D73005: [Codegen] If reasonable, materialize clang's `AssumeAlignedAttr` as llvm's Alignment Attribute on call-site function return value.
Thu, Jan 23, 9:43 AM · Restricted Project
erichkeane accepted D73019: [Sema] Don't disallow placing `__attribute__((alloc_align(param_idx)))` on `std::align_val_t`-typed parameters.

This makes a lot of sense to me.

Thu, Jan 23, 9:25 AM · Restricted Project
erichkeane accepted D73006: [Codegen] If reasonable, materialize clang's `AllocAlignAttr` as llvm's Alignment Attribute on call-site function return value.
Thu, Jan 23, 9:25 AM · Restricted Project
erichkeane added inline comments to D73005: [Codegen] If reasonable, materialize clang's `AssumeAlignedAttr` as llvm's Alignment Attribute on call-site function return value.
Thu, Jan 23, 9:25 AM · Restricted Project
erichkeane accepted D72996: [Sema] Attempt to perform call-size-specific `__attribute__((alloc_align(param_idx)))` validation.
Thu, Jan 23, 9:19 AM · Restricted Project
erichkeane accepted D72994: [Sema] Sanity-check alignment requested via `__attribute__((assume_aligned(imm)))`.

LGTM. note to other reviewers, D72998 fixes the max alignment constant in this.

Thu, Jan 23, 9:15 AM · Restricted Project, Restricted Project
erichkeane accepted D72998: [IR] Attribute/AttrBuilder: use Value::MaximumAlignment magic constant.
Thu, Jan 23, 9:15 AM · Restricted Project, Restricted Project

Tue, Jan 21

erichkeane added inline comments to D72996: [Sema] Attempt to perform call-size-specific `__attribute__((alloc_align(param_idx)))` validation.
Tue, Jan 21, 1:19 PM · Restricted Project
erichkeane added inline comments to D31337: Use virtual functions in ParsedAttrInfo instead of function pointers.
Tue, Jan 21, 10:39 AM · Restricted Project
erichkeane added a comment to D72998: [IR] Attribute/AttrBuilder: use Value::MaximumAlignment magic constant.

Can we, at least, put this constant in a header file so we don't repeat it in several places?

Remember, we can't use llvm::Value::MaximumAlignment itself in clang sema.
Which header do you have in mind?

Also, can we write it as 0x20000000 so that it's more obvious what the value is.

Sure, will do.

Tue, Jan 21, 7:55 AM · Restricted Project, Restricted Project
erichkeane added inline comments to D72996: [Sema] Attempt to perform call-size-specific `__attribute__((alloc_align(param_idx)))` validation.
Tue, Jan 21, 7:50 AM · Restricted Project
erichkeane accepted D72979: [Codegen] Emit both AssumeAlignedAttr and AllocAlignAttr assumptions if they exist.
Tue, Jan 21, 7:47 AM · Restricted Project
erichkeane added inline comments to D31337: Use virtual functions in ParsedAttrInfo instead of function pointers.
Tue, Jan 21, 7:16 AM · Restricted Project

Mon, Jan 13

erichkeane added inline comments to D72621: PR44514: Fix recovery from noexcept with non-convertible expressions.
Mon, Jan 13, 2:02 PM · Restricted Project
erichkeane committed rGf0719bf2196c: PR44514: Fix recovery from noexcept with non-convertible expressions (authored by erichkeane).
PR44514: Fix recovery from noexcept with non-convertible expressions
Mon, Jan 13, 1:53 PM
erichkeane closed D72621: PR44514: Fix recovery from noexcept with non-convertible expressions.
Mon, Jan 13, 1:52 PM · Restricted Project
erichkeane committed rG349636d2bfc3: Implement VectorType conditional operator GNU extension. (authored by erichkeane).
Implement VectorType conditional operator GNU extension.
Mon, Jan 13, 1:34 PM
erichkeane closed D71463: Implement VectorType conditional operator GNU extension..
Mon, Jan 13, 1:34 PM · Restricted Project
erichkeane created D72621: PR44514: Fix recovery from noexcept with non-convertible expressions.
Mon, Jan 13, 8:22 AM · Restricted Project

Wed, Jan 8

erichkeane added a comment to D71499: Add builtins for aligning and checking alignment of pointers and integers.

Sorry, I didn't realize you were waiting for me. This seems fine as it is, I don't see the attribute buying us anything.

Wed, Jan 8, 5:01 PM · Restricted Project

Mon, Jan 6

erichkeane added a comment to D72242: Fix crash on value dependent bitfields in if conditions in templates.

I'm concerned about just making this fallthrough to 'false'. These ARE integral promotions, we just don't know the type size. What happens if you instantiate this template? Will it still give the correct answer/type/diagnosis?

Mon, Jan 6, 6:17 AM

Fri, Jan 3

erichkeane added a comment to D72110: [X86] ABI compat bugfix for MSVC vectorcall.

I don't see anything I have a problem with, but still want @ctopper to have a bit of time to take a look. Ping me monday on both if he doesn't respond.

Fri, Jan 3, 6:48 AM · Restricted Project
erichkeane added a comment to D72114: [MS] Overhaul how clang passes overaligned args on x86_32.

I think this is alright, I want @ctopper to take a look before I approve it though. Additionally, do you know if this modifies the regcall calling convention at all? Should it?

Fri, Jan 3, 6:47 AM · Restricted Project

Thu, Jan 2

erichkeane added a comment to D71463: Implement VectorType conditional operator GNU extension..

Ping?

Thu, Jan 2, 9:58 AM · Restricted Project

Dec 27 2019

erichkeane added a comment to D71463: Implement VectorType conditional operator GNU extension..

It looks good, I was just thinking whether it would be possible to share more common infrastructure. There is Sema::CheckVectorOperands that corresponding OpenCL methods are using internally. Do you think it is possible to share the code more?

Dec 27 2019, 9:09 AM · Restricted Project

Dec 24 2019

erichkeane added a comment to D71463: Implement VectorType conditional operator GNU extension..

@eli.friedman @rjmccall Do you have further comments on these?

Dec 24 2019, 10:38 AM · Restricted Project

Dec 20 2019

erichkeane updated the diff for D71463: Implement VectorType conditional operator GNU extension..

@aaron.ballman s comments done.

Dec 20 2019, 2:08 PM · Restricted Project
erichkeane added a comment to D71463: Implement VectorType conditional operator GNU extension..

New patch coming as soon as my build finishes.

Dec 20 2019, 1:47 PM · Restricted Project

Dec 18 2019

erichkeane added a comment to D71463: Implement VectorType conditional operator GNU extension..

Ping :)

Dec 18 2019, 6:28 AM · Restricted Project

Dec 17 2019

erichkeane committed rG1ed832e42446: Reland [NFC-I] Remove hack for fp-classification builtins (authored by erichkeane).
Reland [NFC-I] Remove hack for fp-classification builtins
Dec 17 2019, 6:59 AM

Dec 16 2019

erichkeane added a reverting change for rGb1e542f302c1: [NFC-I] Remove hack for fp-classification builtins: rG3f22b4721e6c: Revert "[NFC-I] Remove hack for fp-classification builtins".
Dec 16 2019, 2:07 PM
erichkeane committed rG3f22b4721e6c: Revert "[NFC-I] Remove hack for fp-classification builtins" (authored by erichkeane).
Revert "[NFC-I] Remove hack for fp-classification builtins"
Dec 16 2019, 2:07 PM
erichkeane committed rGb1e542f302c1: [NFC-I] Remove hack for fp-classification builtins (authored by erichkeane).
[NFC-I] Remove hack for fp-classification builtins
Dec 16 2019, 1:05 PM
erichkeane updated subscribers of D71463: Implement VectorType conditional operator GNU extension..
Dec 16 2019, 12:34 PM · Restricted Project
erichkeane added a comment to D71467: [FPEnv] Generate constrained FP comparisons from clang.

I did the compare operators that didn't work right, and will do a separate patch for the fp-classification type ones: f02d6dd6c7afc08f871a623c0411f2d77ed6acf8

Thanks! Now I'm getting the correct output for the float test cases as well, and I've added them to the patch.

As to fp-classification, I think there is an additional complication here: according to IEEE and the proposed C2x standard, these builtins should never raise any exception, not even when receiving a signaling NaN as input. Strictly speaking, this means that they cannot possibly be implemented in terms of any comparison operation.

Now, on SystemZ (and many other platforms, I think) there are in fact specialized instructions that will implement the required semantics without raising any exceptions, but there seems to be no way to represent those at the LLVM IR level. We'll probably need some extensions here (some new IR-level builtins?) ...

(But I'd say that problem is unrelated to this patch, so I'd prefer to decouple that problem from the question of whether this patch is the right solution for comparisons.)

Dec 16 2019, 9:57 AM · Restricted Project, Restricted Project
erichkeane added a comment to D71467: [FPEnv] Generate constrained FP comparisons from clang.

The bug with __builtin_isless should be a really easy fix; the builtin just needs to be flagged as having custom type-checking, and then we need to make sure we do appropriate promotions on the arguments (but we probably do).

I think I convinced @erichkeane to look at it on Monday.

Everything but fpclassify is pretty trivial, I just needed to write a test but needed to go home. I'll commit that Monday when I get to it. Fpclassify will take a touch longer since the int arguments need to be dealt with, but that shouldn't be more than a little work.

Dec 16 2019, 7:21 AM · Restricted Project, Restricted Project
erichkeane committed rGf02d6dd6c7af: Fix floating point builtins to not promote float->double (authored by erichkeane).
Fix floating point builtins to not promote float->double
Dec 16 2019, 7:21 AM

Dec 13 2019

erichkeane added a comment to D71467: [FPEnv] Generate constrained FP comparisons from clang.

The bug with __builtin_isless should be a really easy fix; the builtin just needs to be flagged as having custom type-checking, and then we need to make sure we do appropriate promotions on the arguments (but we probably do).

I think I convinced @erichkeane to look at it on Monday.

Dec 13 2019, 3:54 PM · Restricted Project, Restricted Project
erichkeane updated the diff for D71463: Implement VectorType conditional operator GNU extension..

Rebase + @eli.friedman s comments.

Dec 13 2019, 1:18 PM · Restricted Project
erichkeane added a comment to D71463: Implement VectorType conditional operator GNU extension..

Can you update https://clang.llvm.org/docs/LanguageExtensions.html#langext-vectors with a description of the interaction between the different language features here?

Dec 13 2019, 1:18 PM · Restricted Project
erichkeane committed rG348f22eac83d: Correct gcc vector splat conversion from float to int-vector (authored by erichkeane).
Correct gcc vector splat conversion from float to int-vector
Dec 13 2019, 12:33 PM
erichkeane created D71463: Implement VectorType conditional operator GNU extension..
Dec 13 2019, 6:34 AM · Restricted Project
erichkeane added a comment to D71463: Implement VectorType conditional operator GNU extension..

Sorry in advance for the reviewer choices... Blame got me you all for all touching these things in the early 2010s. Since then, Richard and I seem to be the only one to have touched these types.

Dec 13 2019, 6:34 AM · Restricted Project

Dec 12 2019

erichkeane committed rG654c0daef75a: Suppress -Wwarn-unused-variables when we don't know the constructor (authored by erichkeane).
Suppress -Wwarn-unused-variables when we don't know the constructor
Dec 12 2019, 3:55 PM

Dec 9 2019

erichkeane added a comment to D70691: Optimization record for bytecode input missing- PR44000.

I looked at the test failure, the REQUIRES line is necessary because the test calls emit-obj. I've asked Zahira to commit it to fix the bots.

Dec 9 2019, 6:22 AM · Restricted Project

Dec 6 2019

erichkeane accepted D71159: [Attr] Move ParsedTargetAttr out of the TargetAttr class.
Dec 6 2019, 7:09 PM · Restricted Project
erichkeane added a comment to D71159: [Attr] Move ParsedTargetAttr out of the TargetAttr class.

Should this be in a namespace? Can't tell from the header file, is it at least in clang?

Dec 6 2019, 6:14 PM · Restricted Project

Dec 5 2019

erichkeane added a comment to D69950: Reapply "Fix crash on switch conditions of non-integer types in templates".

This (when reapplied in https://reviews.llvm.org/rG878a24ee244a24c39d1c57e9af2) broke compilation of code that earlier built fine. A reduced example:

namespace glslang {
class TPoolAllocator {
  void operator=(TPoolAllocator);
};
template <class> class a {
  TPoolAllocator *b;
  void c() { allocator = *b; }
  TPoolAllocator allocator;
};
} // namespace glslang

With this patch, some errors in templates are diagnosed earlier (i.e. does not wait till instantiation). Since 'allocator' and 'b' aren't dependent, I think this is a valid diagnosis. GCC throws an error on this code upon instantiation. https://godbolt.org/z/X9Y-Vy

The original non-reduced case does build fine with GCC though (I'm fairly sure). I can try to reduce one later that still builds with GCC but fails with current clang.

Yes. The reduced example here builds fine with GCC as well, unless template is instantiated. However I don't think Clang always matches GCC behavior when diagnosing errors in templates (See example from cpplearner here - https://reviews.llvm.org/D61027). Clang diagnoses several errors even if template is not instantiated (unlike GCC). I am not sure what the 'correct' behavior is / whether we should match GCC here. @erichkeane @rnk could you please take a look?

Dec 5 2019, 11:40 AM · Restricted Project

Dec 4 2019

erichkeane added a comment to D62731: Add support for options -frounding-math, -ftrapping-math, -ffp-model=, and -ffp-exception-behavior=, : Specify floating point behavior.

The tests fail on Windows, http://45.33.8.238/win/3405/step_6.txt

Please take a look, and if it takes a while to fix please revert while you investigte.

Dec 4 2019, 12:26 PM · Restricted Project, Restricted Project
erichkeane added a comment to D70691: Optimization record for bytecode input missing- PR44000.

Otherwise I think I'm OK. @thegameg ?

Dec 4 2019, 8:17 AM · Restricted Project

Dec 3 2019

erichkeane abandoned D70791: Workaround for MSVC 16.3.* pre-c++17 type trait linkage.

Microsoft recently released 16.4 and has ceased support for the 16.3 line, so it isn't really important to me anymore. I'd thought this was a 'hold our nose and do it' type fix, but I don't think that is justified any longer now that Microsoft doesn't even support it.

Dec 3 2019, 2:08 PM

Dec 2 2019

erichkeane added inline comments to D70451: [FPEnv] IRBuilder should not put strictfp on function definitions automatically.
Dec 2 2019, 11:01 AM · Restricted Project
erichkeane added a comment to D70691: Optimization record for bytecode input missing- PR44000.

unique_ptr already has a 'bool' builtin to its state (one that this code checks later anyway), so there isn't a good reason to return a bool here. Otherwise I think I'm OK with this.

Dec 2 2019, 6:19 AM · Restricted Project

Nov 28 2019

erichkeane added a comment to D68050: WIP Make attribute target work better with AArch64.

Hi Eric,

Thanks for putting up the initial patch. Are you interested in pushing it forward? Or would you prefer someone else taking over?

Cheers,
Florian

Nov 28 2019, 9:16 AM · Restricted Project

Nov 27 2019

erichkeane added a comment to D70791: Workaround for MSVC 16.3.* pre-c++17 type trait linkage.
In D70791#1762155, @rnk wrote:

My version of cl.exe claims to have version 19.23.28107 and my headers are in Tools/MSVC/14.23.28105/include, and I see that this is fixed in xtr1common. is_integral_v and the helpers are defined with implicit template instantiations. There are no fully specialized template definitions in that header. So, my hope is that this problem will go away as users run the VS updater. Although, for buildbots and users such as myself who rarely start the IDE, that may take longer than we'd like.

Nov 27 2019, 11:51 AM
erichkeane added a comment to D70791: Workaround for MSVC 16.3.* pre-c++17 type trait linkage.
In D70791#1762081, @rnk wrote:

I thought we agreed to remove the workaround that we had for this and just declare that the old MSVC STL release was buggy and users should update:
https://bugs.llvm.org/show_bug.cgi?id=42027
It's a point release that preserves ABI compatibility, so there's less motivation for us to add a compat hack.

In general, we should seriously think about sunsetting some MS compat hacks that aren't needed for new SDK/STL versions to save on clang maintenance costs. The complexity they add is surprisingly expensive. For example, -fdelayed-template-parsing is a recurring source of compat issues in clang-tools-extra (see the commit logs), and I would like to revive D66394 to get it disabled by default soon. (+@thakis)

Nov 27 2019, 10:55 AM
erichkeane created D70791: Workaround for MSVC 16.3.* pre-c++17 type trait linkage.
Nov 27 2019, 9:41 AM

Nov 25 2019

erichkeane added a reviewer for D70691: Optimization record for bytecode input missing- PR44000: thegameg.
Nov 25 2019, 12:46 PM · Restricted Project
erichkeane accepted D70539: [clang][CodeGen] Implicit Conversion Sanitizer: handle increment/derement (PR44054).
Nov 25 2019, 8:06 AM · Restricted Project, Restricted Project, Restricted Project

Nov 21 2019

erichkeane added a comment to D70539: [clang][CodeGen] Implicit Conversion Sanitizer: handle increment/derement (PR44054).

I haven't looked at the tests because I don't terribly understand the sanitizer IR (hopefully someone else can take a look), but the logic/motivation seems solid to me.

Nov 21 2019, 7:03 AM · Restricted Project, Restricted Project, Restricted Project

Nov 18 2019

erichkeane committed rG0213adde2185: [NFC] Fix 'target' condition in checkTargetFeatures (authored by erichkeane).
[NFC] Fix 'target' condition in checkTargetFeatures
Nov 18 2019, 1:44 PM

Nov 5 2019

erichkeane added a comment to D68824: Fix __builtin_assume_aligned with too large values..

We hit this in V8 which is annotating some pointers as being 4GB-aligned. Does anyone know what it would take to raise Clang's limit here?

Nov 5 2019, 1:42 AM

Oct 11 2019

erichkeane committed rGadd0786dbaa8: Fix test failure with 374562 on Hexagon (authored by erichkeane).
Fix test failure with 374562 on Hexagon
Oct 11 2019, 9:38 AM
erichkeane committed rL374569: Fix test failure with 374562 on Hexagon.
Fix test failure with 374562 on Hexagon
Oct 11 2019, 9:28 AM
erichkeane committed rGf75939599421: Reland r374450 with Richard Smith's comments and test fixed. (authored by erichkeane).
Reland r374450 with Richard Smith's comments and test fixed.
Oct 11 2019, 8:05 AM
erichkeane committed rL374562: Reland r374450 with Richard Smith's comments and test fixed..
Reland r374450 with Richard Smith's comments and test fixed.
Oct 11 2019, 8:05 AM
erichkeane updated subscribers of D68824: Fix __builtin_assume_aligned with too large values..

This seems to be missing a CodeGen test for what IR we generate on an overly-large alignment. (The warning says the alignment is ignored, but I don't see where you're actually doing anything different in that case when generating IR.)

Oct 11 2019, 6:12 AM

Oct 10 2019

erichkeane committed rG31e454c1ecac: Fix __builtin_assume_aligned with too large values. (authored by erichkeane).
Fix __builtin_assume_aligned with too large values.
Oct 10 2019, 2:15 PM
erichkeane added an edge to rL374450: Fix __builtin_assume_aligned with too large values.: D68824: Fix __builtin_assume_aligned with too large values..
Oct 10 2019, 2:15 PM
erichkeane closed D68824: Fix __builtin_assume_aligned with too large values..
Oct 10 2019, 2:15 PM
erichkeane added 1 commit(s) for D68824: Fix __builtin_assume_aligned with too large values.: rL374450: Fix __builtin_assume_aligned with too large values..
Oct 10 2019, 2:15 PM
erichkeane removed an edge from rL374450: Fix __builtin_assume_aligned with too large values.: D68824: Fix __builtin_assume_aligned with too large values..
Oct 10 2019, 2:15 PM
erichkeane removed 1 commit(s) for D68824: Fix __builtin_assume_aligned with too large values.: rL374450: Fix __builtin_assume_aligned with too large values..
Oct 10 2019, 2:15 PM
erichkeane committed rL374450: Fix __builtin_assume_aligned with too large values..
Fix __builtin_assume_aligned with too large values.
Oct 10 2019, 2:06 PM
erichkeane updated the diff for D68824: Fix __builtin_assume_aligned with too large values..

cant use llvm::Value in Sema without some linker issues.

Oct 10 2019, 1:07 PM
erichkeane updated the diff for D68824: Fix __builtin_assume_aligned with too large values..

Hal's comments

Oct 10 2019, 12:57 PM
erichkeane updated the diff for D68824: Fix __builtin_assume_aligned with too large values..

Remove unused code

Oct 10 2019, 12:39 PM
erichkeane created D68824: Fix __builtin_assume_aligned with too large values..
Oct 10 2019, 12:28 PM

Oct 9 2019

erichkeane added inline comments to D68521: [PATCH 36/38] [noalias] Clang CodeGen for restrict-qualified pointers.
Oct 9 2019, 2:32 PM · Restricted Project
erichkeane added inline comments to D68519: [PATCH 35/38] [noalias] D9403: llvm.noalias - Clang CodeGen for local restrict-qualified pointers.
Oct 9 2019, 2:31 PM

Oct 8 2019

erichkeane added inline comments to D68627: [Sema][X86] Consider target attribute into the checks in validateOutputSize and validateInputSize..
Oct 8 2019, 9:24 AM · Restricted Project

Oct 7 2019

erichkeane committed rG8a410bcef02c: Fix Calling Convention through aliases (authored by erichkeane).
Fix Calling Convention through aliases
Oct 7 2019, 10:16 PM
erichkeane committed rL373929: Fix Calling Convention through aliases.
Fix Calling Convention through aliases
Oct 7 2019, 10:16 PM
erichkeane closed D68584: Fix Calling Convention through aliases.
Oct 7 2019, 10:16 PM · Restricted Project
erichkeane created D68584: Fix Calling Convention through aliases.
Oct 7 2019, 8:46 AM · Restricted Project

Sep 30 2019

erichkeane committed rG98f089994210: Make function static that didn't need linkage. (authored by erichkeane).
Make function static that didn't need linkage.
Sep 30 2019, 2:24 PM
erichkeane committed rL373268: Make function static that didn't need linkage..
Make function static that didn't need linkage.
Sep 30 2019, 2:23 PM
erichkeane committed rGa60ef724b4bb: Fix failure caused by r373247 (authored by erichkeane).
Fix failure caused by r373247
Sep 30 2019, 1:46 PM
erichkeane committed rL373259: Fix failure caused by r373247.
Fix failure caused by r373247
Sep 30 2019, 1:43 PM
erichkeane committed rG5c2c60d2fc27: Teach CallGraph to look into Generic Lambdas. (authored by erichkeane).
Teach CallGraph to look into Generic Lambdas.
Sep 30 2019, 12:11 PM
erichkeane committed rL373247: Teach CallGraph to look into Generic Lambdas..
Teach CallGraph to look into Generic Lambdas.
Sep 30 2019, 12:10 PM

Sep 27 2019

erichkeane updated subscribers of D68050: WIP Make attribute target work better with AArch64.

Ah, Ugg... GCC must implement the target parsing handling different on a per-architecture basis (ARM vs X86). We've only got parsing in place to do the x86 way. That ends up making this a much more difficult thing to maintain I suspect.

Sep 27 2019, 10:36 AM · Restricted Project

Sep 26 2019

erichkeane added inline comments to D68050: WIP Make attribute target work better with AArch64.
Sep 26 2019, 6:06 AM · Restricted Project

Sep 25 2019

erichkeane created D68050: WIP Make attribute target work better with AArch64.
Sep 25 2019, 2:00 PM · Restricted Project

Sep 23 2019

erichkeane accepted D67924: [Sema] Fix the atomic expr rebuilding order..
Sep 23 2019, 11:36 AM · Restricted Project, Restricted Project
erichkeane added a comment to D67924: [Sema] Fix the atomic expr rebuilding order..

Seems your test changes have disappeared as well? Otherwise, 1 comment then I'm ok with this.

Sep 23 2019, 11:12 AM · Restricted Project, Restricted Project
erichkeane added a comment to D67924: [Sema] Fix the atomic expr rebuilding order..

Also, can you add a test for GNUCmpXchg in both situations (inside a template, and outside)? It is the most complicated, and would best reflect the issue.

Sep 23 2019, 11:00 AM · Restricted Project, Restricted Project
erichkeane added a comment to D67924: [Sema] Fix the atomic expr rebuilding order..

It kinda stinks that we have to do this at such a late step. I'd have much preferred doing this as a part of the rebuild, but it appears that the 'form' takes quite a bit to calculate. Also, I'd likely have preferred that the initial reordering happened in codegen instead of this early, though perhaps thats too large of a change to do here.

Sep 23 2019, 10:47 AM · Restricted Project, Restricted Project
erichkeane added inline comments to D67924: [Sema] Fix the atomic expr rebuilding order..
Sep 23 2019, 10:21 AM · Restricted Project, Restricted Project
erichkeane added a comment to D67924: [Sema] Fix the atomic expr rebuilding order..

Yikes, good catch!

Sep 23 2019, 10:21 AM · Restricted Project, Restricted Project