rsmith (Richard Smith - zygoloid)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 12 2012, 2:19 PM (266 w, 4 d)

Recent Activity

Fri, Aug 18

rsmith added a comment to D36855: Fixed pointer to const& member function on rvalues, P0704r1.

Thanks, will you need someone to commit this for you?

Fri, Aug 18, 11:04 AM
rsmith accepted D34992: Emit static constexpr member as available_externally definition.

I'd like to also see a testcase for the situation where we trigger the emission of a declaration with an available_externally definition and then find we need to promote it to a "full" definition:

Fri, Aug 18, 10:57 AM
rsmith added inline comments to D36876: [IRGen] Evaluate constant static variables referenced through member expressions.
Fri, Aug 18, 10:45 AM

Thu, Aug 17

rsmith added a comment to D36855: Fixed pointer to const& member function on rvalues, P0704r1.

Oh, and you'll need an accompanying test case before this can be committed (look at the existing tests in test/SemaCXX for ideas).

Thu, Aug 17, 6:10 PM
rsmith added a comment to D36855: Fixed pointer to const& member function on rvalues, P0704r1.

Thanks!

Thu, Aug 17, 6:06 PM
rsmith committed rL311139: Increase tail dup threshold for -O3 from 3 to 4..
Increase tail dup threshold for -O3 from 3 to 4.
Thu, Aug 17, 4:40 PM
rsmith closed D36775: Increase tail dup threshold for -O3 from 3 to 4 by committing rL311139: Increase tail dup threshold for -O3 from 3 to 4..
Thu, Aug 17, 4:40 PM
rsmith committed rL311115: PR34161: support evaluation of 'void()' expressions in C++14 onwards..
PR34161: support evaluation of 'void()' expressions in C++14 onwards.
Thu, Aug 17, 12:37 PM

Tue, Aug 15

rsmith committed rL310983: PR19668, PR23034: Fix handling of move constructors and deleted copy.
PR19668, PR23034: Fix handling of move constructors and deleted copy
Tue, Aug 15, 6:52 PM
rsmith committed rL310982: Add test that we get the correct calling convention and mangling for va_list..
Add test that we get the correct calling convention and mangling for va_list.
Tue, Aug 15, 6:48 PM
rsmith added a reviewer for D36775: Increase tail dup threshold for -O3 from 3 to 4: davidxl.
Tue, Aug 15, 6:08 PM
rsmith added inline comments to D35020: [Modules] Add ability to specify module name to module file mapping.
Tue, Aug 15, 5:57 PM
rsmith accepted D35678: Omit sumbodule semantics for TS modules.

My understanding of your comment is that the rest is ok for now (since there will probably be a redesign in this area). If, however, I misunderstood and you sill want to move the id flattening to the caller, let me know.

Tue, Aug 15, 5:11 PM
rsmith committed rL310978: Add missing test for warning added in r310803..
Add missing test for warning added in r310803.
Tue, Aug 15, 5:07 PM
rsmith created D36775: Increase tail dup threshold for -O3 from 3 to 4.
Tue, Aug 15, 4:47 PM
rsmith committed rL310972: Do not look through pack expansions when looking for unexpanded parameter packs..
Do not look through pack expansions when looking for unexpanded parameter packs.
Tue, Aug 15, 4:00 PM
rsmith committed rL310946: PR33082: Improve tracking of unexpanded parameter packs within variadic generic….
PR33082: Improve tracking of unexpanded parameter packs within variadic generic…
Tue, Aug 15, 12:12 PM

Mon, Aug 14

rsmith added a comment to D36338: BlockPlacement: Consider hotness of blocks relative to a loop iteration rather than relative to the loop as a whole.

This looks fine to me. Is there any performance data with PGO?

Mon, Aug 14, 12:57 PM

Sun, Aug 13

rsmith committed rL310805: Rename cxx1z -> cxx17 across all diagnostic IDs..
Rename cxx1z -> cxx17 across all diagnostic IDs.
Sun, Aug 13, 4:40 PM
rsmith committed rL310804: Replace remaining user-visible mentions of C++1z with C++17..
Replace remaining user-visible mentions of C++1z with C++17.
Sun, Aug 13, 3:29 PM
rsmith committed rL310803: [c++2a] Treat 'concept' and 'requires' as keywords, add compat warning for….
[c++2a] Treat 'concept' and 'requires' as keywords, add compat warning for…
Sun, Aug 13, 2:33 PM

Fri, Aug 11

rsmith accepted D36641: [index] Update indexing to handle CXXDeductionGuideDecls properly.
Fri, Aug 11, 7:05 PM
rsmith committed rL310776: PR34163: Don't cache an incorrect key function for a class if queried between.
PR34163: Don't cache an incorrect key function for a class if queried between
Fri, Aug 11, 6:47 PM
rsmith committed rL310773: D36604: PR34148: Do not assume we can use a copy relocation for an….
D36604: PR34148: Do not assume we can use a copy relocation for an…
Fri, Aug 11, 4:53 PM
rsmith closed D36604: PR34148: Do not assume we can use a copy relocation for an `external_weak` global by committing rL310773: D36604: PR34148: Do not assume we can use a copy relocation for an….
Fri, Aug 11, 4:53 PM
rsmith accepted D36280: Fix access to undefined weak symbols in pic code.

This looks reasonable to me. Please consider whether we should take D36604 too.

Fri, Aug 11, 12:09 PM

Thu, Aug 10

rsmith committed rL310694: Implement latest feature test macro recommendations, P0096R4..
Implement latest feature test macro recommendations, P0096R4.
Thu, Aug 10, 8:40 PM
rsmith committed rL310693: Update cxx_status to mention the upcoming Clang 5 release..
Update cxx_status to mention the upcoming Clang 5 release.
Thu, Aug 10, 8:19 PM
rsmith committed rL310692: PR33850: Update cxx_dr_status for Clang 5 branch..
PR33850: Update cxx_dr_status for Clang 5 branch.
Thu, Aug 10, 8:15 PM
rsmith created D36604: PR34148: Do not assume we can use a copy relocation for an `external_weak` global.
Thu, Aug 10, 8:04 PM
rsmith added inline comments to D36280: Fix access to undefined weak symbols in pic code.
Thu, Aug 10, 7:59 PM
rsmith added inline comments to D36280: Fix access to undefined weak symbols in pic code.
Thu, Aug 10, 7:58 PM
rsmith committed rL310691: PR33489: A function-style cast to a deduced class template specialization type….
PR33489: A function-style cast to a deduced class template specialization type…
Thu, Aug 10, 7:05 PM
rsmith added a comment to D35941: Fix -Wshadow false positives with function-local classes..

IIUC, most cases where -Wshadow warnings are issued is when a declaration from an enclosing scope would be accessible if there was no declaration that shadows it. In this case the the local variable of a function would not be accessible inside the local class anyway

Thu, Aug 10, 4:52 PM
rsmith added inline comments to D35817: Ban implicit _Complex to scalar conversions in C++.
Thu, Aug 10, 4:31 PM

Wed, Aug 9

rsmith accepted D36563: Add a getName accessor for ModuleMacros.
Wed, Aug 9, 5:53 PM
rsmith accepted D36532: Add -std=c++17.
Wed, Aug 9, 12:48 PM

Tue, Aug 8

rsmith created D36501: add flag to undo ABI change in r310401.
Tue, Aug 8, 7:25 PM
rsmith committed rL310401: PR19668, PR23034: Fix handling of move constructors and deleted copy.
PR19668, PR23034: Fix handling of move constructors and deleted copy
Tue, Aug 8, 12:14 PM
rsmith closed D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.

Committed as r310401.

Tue, Aug 8, 12:13 PM
rsmith added inline comments to D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.
Tue, Aug 8, 11:08 AM

Mon, Aug 7

rsmith added a comment to D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.
In D35056#834705, @rnk wrote:

I also removed some incorrect assumptions from the Win64 ABI code; this changed the behavior of one testcase from uncopyable-args.cpp (implicitly_deleted_copy_ctor::A is now passed indirect).

That's probably not correct, let me take a look... I remember breaking the rules for small types here.

Mon, Aug 7, 10:25 PM
rsmith updated the diff for D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.

Remove added calls to DeclareImplicit* and ShouldDeleteSpecialMember. In their place, figure out whether an implicit special member would be deleted or not by querying the AST.

Mon, Aug 7, 6:30 PM
rsmith commandeered D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.
Mon, Aug 7, 5:12 PM
rsmith added a comment to D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.

As requested by Vassil, I'm going to upload another version of this that avoids declaring implicit special members so frequently.

Mon, Aug 7, 5:11 PM

Sun, Aug 6

rsmith added inline comments to D36353: Postpone instantiation of constexpr functions.
Sun, Aug 6, 11:02 AM

Sat, Aug 5

rsmith requested changes to D36353: Postpone instantiation of constexpr functions.

The current behaviour is correct according to the latest discussions of CWG. We shouldn't be delaying instantiation; we just need to fix the recent regression for functions where we try to instantiate functions that don't have a complete body yet.

Sat, Aug 5, 11:16 AM

Fri, Aug 4

rsmith added a comment to D36338: BlockPlacement: Consider hotness of blocks relative to a loop iteration rather than relative to the loop as a whole.

Should we adjust the ratio if it's not specified explicitly and no profile data is available?

Fri, Aug 4, 3:30 PM
rsmith added a comment to D36296: BlockPlacement: add a flag to force cold block outlining w/o a profile..

FWIW, I see a 10% performance improvement on one of our internal benchmarks with this patch + force-precise-rotation-cost, compared to force-precise-rotation-cost alone.

Fri, Aug 4, 1:59 PM
rsmith created D36338: BlockPlacement: Consider hotness of blocks relative to a loop iteration rather than relative to the loop as a whole.
Fri, Aug 4, 1:56 PM
rsmith accepted D36296: BlockPlacement: add a flag to force cold block outlining w/o a profile..
LGTM
Fri, Aug 4, 1:35 PM

Thu, Aug 3

rsmith added inline comments to D34992: Emit static constexpr member as available_externally definition.
Thu, Aug 3, 5:11 PM
rsmith added a comment to D35678: Omit sumbodule semantics for TS modules.

This will need a test case.

Thu, Aug 3, 12:40 PM
rsmith closed D34045: [Sema] Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

Landed in r309975.

Thu, Aug 3, 12:26 PM
rsmith committed rL309976: Revert accidentally-committed files..
Revert accidentally-committed files.
Thu, Aug 3, 12:25 PM
rsmith committed rL309975: Don't emit undefined-internal warnings for CXXDeductionGuideDecls..
Don't emit undefined-internal warnings for CXXDeductionGuideDecls.
Thu, Aug 3, 12:25 PM
rsmith added a comment to D34045: [Sema] Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

Sorry for the delay. Let's get this in for Clang 5.0. Thank you!

Thu, Aug 3, 12:11 PM

Wed, Aug 2

rsmith accepted D36253: [Sema] Add a comment on an identified bug on default arguments..
Wed, Aug 2, 5:10 PM
rsmith added a comment to D34512: Add preliminary Cross Translation Unit support library.

Organizationally, this seems fine. Carry on :)

Wed, Aug 2, 2:02 PM

Sun, Jul 30

rsmith accepted D36070: [coroutines] Evaluate the operand of void `co_return` expressions..
Sun, Jul 30, 11:38 PM
rsmith accepted D35297: [Sema] Fix operator lookup to consider local extern declarations..

LGTM, thanks!

Sun, Jul 30, 5:19 PM
rsmith added inline comments to D35297: [Sema] Fix operator lookup to consider local extern declarations..
Sun, Jul 30, 4:03 PM

Sat, Jul 29

rsmith committed rL309503: PR33902: Invalidate line number cache when adding more text to existing buffer..
PR33902: Invalidate line number cache when adding more text to existing buffer.
Sat, Jul 29, 11:32 PM

Thu, Jul 27

rsmith added inline comments to D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.
Thu, Jul 27, 11:42 AM

Wed, Jul 26

rsmith committed rL309195: Add branch weights to branches for static initializers..
Add branch weights to branches for static initializers.
Wed, Jul 26, 3:01 PM

Tue, Jul 25

rsmith committed rL309054: Reorder tests to match latest SD-6 draft..
Reorder tests to match latest SD-6 draft.
Tue, Jul 25, 4:32 PM
rsmith accepted D35824: [Sema] Implicitly apply the may_alias attribute to std::byte.

LGTM with a tweaked comment. Thanks!

Tue, Jul 25, 4:24 PM

Mon, Jul 24

rsmith added a comment to D35824: [Sema] Implicitly apply the may_alias attribute to std::byte.

I would prefer to handle std::byte explicitly in the places where it matters, rather than adding an attribute to it and otherwise treating it like any other enumeration. We're going to want to be able to identify std::byte for warning emission and probably other codegen purposes too -- it's more a new fundamental type that happens to be defined in the library (like std::nullptr_t) than a type that just happens to be mayalias. Maybe a Type::is[Std]Byte, analogous to Type::isAlignValT?

Mon, Jul 24, 10:18 PM
rsmith added a comment to D35782: [C++2a][Preprocessor] Implement p0306 __VA_OPT__ (Comma omission and comma deletion).

I think we need more consideration of what the end result of __VA_OPT__ should be, and particularly how it should affect the SourceLocation data. It seems there are two models:

Mon, Jul 24, 5:08 PM · Restricted Project
rsmith added inline comments to D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.
Mon, Jul 24, 2:09 PM
rsmith accepted D35383: [coroutines] Add serialization/deserialization of coroutines.
Mon, Jul 24, 12:32 PM
rsmith added inline comments to D35043: [ADT] Enable reverse iteration for DenseMap.
Mon, Jul 24, 12:29 PM

Jul 15 2017

rsmith committed rL308101: [cxx_status] Fix typos..
[cxx_status] Fix typos.
Jul 15 2017, 8:52 AM
rsmith committed rL308099: [cxx_status] Add approved Toronto WG21 motions..
[cxx_status] Add approved Toronto WG21 motions.
Jul 15 2017, 8:43 AM

Jul 9 2017

rsmith added a comment to D35172: Keep the IdentifierInfo in the Token for alternative operator keyword.

It looks like there are fewer special cases with this direction then our present one, though I worry that they'll be less obvious. On the whole, this seems like a improvement.

Jul 9 2017, 7:03 PM
rsmith committed rL307455: Fix warnings introduced by r307434..
Fix warnings introduced by r307434.
Jul 9 2017, 6:18 AM
rsmith committed rL307434: [modules ts] Basic for module linkage..
[modules ts] Basic for module linkage.
Jul 9 2017, 6:17 AM
rsmith added a comment to D34985: Do not read the file to determine its name..

Looks like most of the users of this function are detecting whether we're in the builtins buffer. Perhaps we should have a dedicated method for that which uses something more principled than a string comparison against "<built-in>"?

Jul 9 2017, 6:13 AM
rsmith added a comment to D35085: Respect exitcode sanitizer option in UBSan.

Sure, it makes sense for UBSan to behave like other sanitizers in this regard.

Jul 9 2017, 6:13 AM
rsmith added inline comments to D34045: [Sema] Don't emit undefined-internal warnings for CXXDeductionGuideDecls.
Jul 9 2017, 6:13 AM
rsmith added inline comments to D33676: Place implictly declared functions at block scope.
Jul 9 2017, 6:13 AM
rsmith added a reviewer for D35137: [Driver] Honor -isysroot for Linux targets: rsmith.
Jul 9 2017, 6:13 AM
rsmith added a comment to D35137: [Driver] Honor -isysroot for Linux targets.

This needs tests; perhaps extend test/Driver/linux-header-search.cpp for this.

Jul 9 2017, 6:13 AM

Jul 6 2017

rsmith committed rL307316: Reject attempts to build a module without -fmodules, rather than silently doing….
Reject attempts to build a module without -fmodules, rather than silently doing…
Jul 6 2017, 2:06 PM

Jul 5 2017

rsmith committed rL307232: [modules ts] Do not emit strong function definitions from the module interface….
[modules ts] Do not emit strong function definitions from the module interface…
Jul 5 2017, 5:30 PM
rsmith committed rL307231: [cxx_status] Update link to Modules TS to latest working draft. Fix Coroutines….
[cxx_status] Update link to Modules TS to latest working draft. Fix Coroutines…
Jul 5 2017, 5:29 PM
rsmith added a comment to D33719: Add _Float16 as a C/C++ source language type.

We need to be completely clear on the differences and interactions between _Float16 and __fp16; you should include a documentation update that describes this as part of this change or as a companion change. In particular, an explanation of why we need two different types here is essential.

Jul 5 2017, 5:24 PM
rsmith added inline comments to D34992: Emit static constexpr member as available_externally definition.
Jul 5 2017, 4:42 PM
rsmith added a comment to D34114: [clang] Change the condition of unnecessary packed warning.

Some concrete suggestions throughout the patch, but I think we should take a step back and reconsider this warning approach: it seems bizarre for us to warn on any packed struct that happens to contain a char. It would make sense to warn if an __attribute__((packed)) written in the source has *no* effect (because it's applied to a struct where all fields already have alignment 1, or because it's applied to a field that has alignment 1) -- even then I'm not entirely convinced this is a valuable warning, but I assume there's some reason you want to warn on it :)

Jul 5 2017, 4:36 PM
rsmith added a comment to D34992: Emit static constexpr member as available_externally definition.

We've had problems in the past with speculative emission of values like this resulting in us producing invalid symbol references. (Two cases I remember: an available_externally symbol references a symbol that should be emitted as linkonce_odr but which is not emitted in this TU, and an available_externally symbol references a symbol with hidden visibility that is actually defined in a different DSO. In both cases, if the value of the available_externally symbol is actually used, you end up with a program with an invalid symbol reference.)

Jul 5 2017, 4:25 PM
rsmith accepted D34996: Customize the SFINAE diagnostics for enable_if to provide the failed condition..

I don't especially like that we pretty-print the substituted subexpression to name the requirement, but I'm also not sure any other alternative would be better.

Jul 5 2017, 1:26 AM · Restricted Project
rsmith committed rL307129: [modules ts] Improve merging of module-private declarations..
[modules ts] Improve merging of module-private declarations.
Jul 5 2017, 12:47 AM

Jul 4 2017

rsmith committed rL307115: [modules ts] Declarations from a module interface unit are only visible outside.
[modules ts] Declarations from a module interface unit are only visible outside
Jul 4 2017, 6:43 PM

Jun 30 2017

rsmith accepted D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.
Jun 30 2017, 6:34 PM
rsmith added inline comments to D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.
Jun 30 2017, 4:56 PM
rsmith accepted D34568: [Sema] Make BreakContinueFinder handle nested loops..

I'm not particularly happy with the number of different places where we duplicate the knowledge of how break/continue bind to enclosing loops, but fixing that seems beyond the scope of this change.

Jun 30 2017, 4:48 PM
rsmith accepted D33833: Fix PR 33189: Clang assertion on template destructor declaration.

Thanks, do you need someone to commit this for you?

Jun 30 2017, 3:37 PM
rsmith added a comment to D34891: Replace assert(0) with llvm_unreachable..

You should remove the code after the assert(0), or you'll trigger "unreachable code" warnings.

Jun 30 2017, 3:35 PM
rsmith accepted D34891: Replace assert(0) with llvm_unreachable..

LGTM, post-commit review is fine for changes like this.

Jun 30 2017, 3:25 PM
rsmith accepted D34909: Driver: consume -nostdinc++ along with -nostdinc.

There are other drivers with the same issue. If there's no opposition to this, I can update those here as well.

Jun 30 2017, 2:25 PM