Page MenuHomePhabricator

rsandifo-arm (Richard Sandiford)
User

Projects

User does not belong to any projects.

User Details

User Since
May 1 2018, 4:00 AM (128 w, 6 d)

Recent Activity

Aug 28 2020

rsandifo-arm added a comment to D86065: [SVE] Make ElementCount members private.

Hi @ctetreau, ok for now I'm going to completely remove the operators and revert the code using those operators to how it was before. I'm not sure what you mean about the predicate functions so I've left those for now, since they aren't needed for this patch. The purpose of this patch was originally supposed to be mechanical anyway - just making members private. I only added the operators as an after-thought really, just to be consistent with how TypeSize dealt with the identical problem. For what it's worth, I believe that GCC solved this exact same problem by adding two types of comparison functions - one set that absolutely wanted an answer to ">,<,>=,<=" and asserted if it wasn't known at compile time, and another set of comparison functions that returned an additional boolean value indicating whether the answer was known or not. Perhaps my knowledge is out of date, but I believe this was the accepted solution and seemed to work well.

Aug 28 2020, 8:51 AM · Restricted Project, Restricted Project

Aug 21 2020

rsandifo-arm added inline comments to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 21 2020, 1:15 AM · Restricted Project, Restricted Project

Aug 20 2020

rsandifo-arm added a comment to D85736: [Sema][AArch64] Support arm_sve_vector_bits attribute.

LGTM from a spec point of view, but I don't think I should be the one to approve.

Aug 20 2020, 3:46 AM · Restricted Project
rsandifo-arm added a comment to D81083: [Clang] Allow "vector_size" applied to Booleans.

I'm not qualified to review the CodeGen stuff (or accept the patch, obvs. :-)) but FWIW, here are some comments on the doc and Sema side.

Aug 20 2020, 12:44 AM · Restricted Project, Restricted Project

Aug 19 2020

rsandifo-arm added inline comments to D86101: [AArch64][SVE] Add missing debug info for ACLE types..
Aug 19 2020, 3:15 AM · Restricted Project, Restricted Project

Aug 18 2020

rsandifo-arm added a comment to D84737: [AArch64][SVE] Preserve full vector regs over EH edge..

LGTM, but I don't think I should be the one to accept.

Aug 18 2020, 10:28 AM · Restricted Project

Aug 13 2020

rsandifo-arm added a comment to D84737: [AArch64][SVE] Preserve full vector regs over EH edge..

Thanks the update, the idea looks good in general. Two questions though:

  • Is it worth having two functions? I thought it might be simpler to have just getCustomEHPadPreservedMask(), with nullptr meaning “no clobbers”.
  • It looks from the tests like the function isn't saving or restoring z8-z23 and p4-p15, is that right? That's fine for landing pads that can't return directly to the callee (e.g. because they rethrow). But in these tests the landing pad does return to the caller. Since the extra callee-saved registers are clobbered on the EH edge, we need to save and restore those registers ourselves on control paths that include an EH edge and a return.
Aug 13 2020, 11:30 AM · Restricted Project

Aug 12 2020

rsandifo-arm added inline comments to D85736: [Sema][AArch64] Support arm_sve_vector_bits attribute.
Aug 12 2020, 10:50 AM · Restricted Project

Aug 4 2020

rsandifo-arm added inline comments to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 4 2020, 9:57 AM · Restricted Project, Restricted Project
rsandifo-arm added inline comments to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 4 2020, 9:24 AM · Restricted Project, Restricted Project
rsandifo-arm added inline comments to D81083: [Clang] Allow "vector_size" applied to Booleans.
Aug 4 2020, 6:23 AM · Restricted Project, Restricted Project
rsandifo-arm added inline comments to D84737: [AArch64][SVE] Preserve full vector regs over EH edge..
Aug 4 2020, 4:41 AM · Restricted Project

Jul 31 2020

rsandifo-arm updated subscribers of D81083: [Clang] Allow "vector_size" applied to Booleans.
Jul 31 2020, 10:06 AM · Restricted Project, Restricted Project

Jul 27 2020

rsandifo-arm added a comment to D84044: [AArch64][SVE] Add missing unwind info for SVE registers..

Yes, great spot! The caller should assume that all SVE registers are clobbered by the unwinder if the function _may_ throw an exception. I think I'll create a separate patch to fix this, as it's not necessarily something to do with how LLVM emits the unwind info, but rather a bug where the caller doesn't honour the right CC.

Jul 27 2020, 1:24 PM · Restricted Project

Jul 16 2020

rsandifo-arm added a comment to D83550: [PATCH 1/4][Sema][AArch64] Add parsing support for arm_sve_vector_bits attribute.

Thanks for doing this. FWIW, the patch LGTM from a spec point of view. I just saw one minor spelling nit.

Jul 16 2020, 9:03 AM · Restricted Project

May 7 2020

rsandifo-arm created D79584: [SVE] Add a couple of extra sizeless type tests.
May 7 2020, 9:06 AM · Restricted Project

May 6 2020

rsandifo-arm committed rG69ab8b46b84d: [Sema][SVE] Fix handling of initialisers for built-in SVE types (authored by rsandifo-arm).
[Sema][SVE] Fix handling of initialisers for built-in SVE types
May 6 2020, 4:48 AM
rsandifo-arm closed D76689: [Sema][SVE] Fix handling of initialisers for built-in SVE types.
May 6 2020, 4:48 AM · Restricted Project
rsandifo-arm committed rGe959931092d5: [Sema] Put existing warning under -Wexcess-initializers (authored by rsandifo-arm).
[Sema] Put existing warning under -Wexcess-initializers
May 6 2020, 3:44 AM
rsandifo-arm closed D79244: [Sema] Put existing warning under -Wexcess-initializers.
May 6 2020, 3:44 AM · Restricted Project
rsandifo-arm committed rGfb4574df52fd: [docs] Regenerate DiagnosticsReference.rst (authored by rsandifo-arm).
[docs] Regenerate DiagnosticsReference.rst
May 6 2020, 2:40 AM
rsandifo-arm closed D79236: [docs] Regenerate DiagnosticsReference.rst.
May 6 2020, 2:40 AM · Restricted Project

May 5 2020

rsandifo-arm updated the diff for D79244: [Sema] Put existing warning under -Wexcess-initializers.

Put two other related warnings under the new option

May 5 2020, 12:26 PM · Restricted Project
rsandifo-arm added a comment to D79244: [Sema] Put existing warning under -Wexcess-initializers.

Should we stick ext_excess_initializers_in_char_array_initializer and ext_initializer_string_for_char_array_too_long in the same warning group?

May 5 2020, 12:26 PM · Restricted Project
rsandifo-arm reclaimed D79236: [docs] Regenerate DiagnosticsReference.rst.

OK, thanks! Reclaiming and reopening the revision in that case.

May 5 2020, 10:46 AM · Restricted Project

May 4 2020

rsandifo-arm abandoned D79236: [docs] Regenerate DiagnosticsReference.rst.

OK, I'll leave the file as-is in that case.

May 4 2020, 11:15 AM · Restricted Project

May 1 2020

rsandifo-arm added a comment to D77056: [Sema][SVE] Allow non-member operators for SVE types.

I'd like to promote this from an RFC to an RFA. The associated cfe-dev discussion was:

May 1 2020, 5:10 PM · Restricted Project
rsandifo-arm retitled D77056: [Sema][SVE] Allow non-member operators for SVE types from RFC: [Sema][SVE] Allow non-member operators for SVE types to [Sema][SVE] Allow non-member operators for SVE types.
May 1 2020, 5:10 PM · Restricted Project
rsandifo-arm added a comment to D76689: [Sema][SVE] Fix handling of initialisers for built-in SVE types.

Semantically, this makes sense.

I'm not really happy with the use of the term "scalar initializer" to refer to initializing a vector. Seems likely to confuse users.

May 1 2020, 5:09 PM · Restricted Project
rsandifo-arm updated the summary of D76689: [Sema][SVE] Fix handling of initialisers for built-in SVE types.
May 1 2020, 5:09 PM · Restricted Project
rsandifo-arm updated the diff for D76689: [Sema][SVE] Fix handling of initialisers for built-in SVE types.

Don't refer to the sizeless types as "scalars"

May 1 2020, 5:09 PM · Restricted Project
rsandifo-arm created D79244: [Sema] Put existing warning under -Wexcess-initializers.
May 1 2020, 5:09 PM · Restricted Project
rsandifo-arm created D79236: [docs] Regenerate DiagnosticsReference.rst.
May 1 2020, 5:08 PM · Restricted Project

Mar 31 2020

rsandifo-arm updated the diff for D77056: [Sema][SVE] Allow non-member operators for SVE types.

Require operators to be defined as static or inside a namespace

Mar 31 2020, 7:09 AM · Restricted Project

Mar 30 2020

rsandifo-arm added a comment to D77056: [Sema][SVE] Allow non-member operators for SVE types.

I'm concerned we're going to run into trouble if two people define different SVE "libraries", and you try to link both of them into the same program. If you're not careful, you end up with ODR violations. The scope of this is sort of restricted in normal C++: class and enumerated types sort of have an informal "owner", and people tend to respect that. I mean, you could say it's the user's own fault if they break ODR, but we're essentially making a trap here. Maybe it would make sense to require that SVE operators are defined in a namespace? That would make the user think about the issue.

Mar 30 2020, 11:56 AM · Restricted Project
rsandifo-arm updated the summary of D77056: [Sema][SVE] Allow non-member operators for SVE types.
Mar 30 2020, 7:33 AM · Restricted Project
rsandifo-arm created D77056: [Sema][SVE] Allow non-member operators for SVE types.
Mar 30 2020, 7:33 AM · Restricted Project

Mar 27 2020

rsandifo-arm committed rGc6824883cc9d: [AST][SVE] Treat built-in SVE types as trivial (authored by rsandifo-arm).
[AST][SVE] Treat built-in SVE types as trivial
Mar 27 2020, 10:56 AM
rsandifo-arm committed rG35392660e6d5: [AST][SVE] Treat built-in SVE types as trivially copyable (authored by rsandifo-arm).
[AST][SVE] Treat built-in SVE types as trivially copyable
Mar 27 2020, 10:56 AM
rsandifo-arm closed D76692: [AST][SVE] Treat built-in SVE types as trivial.
Mar 27 2020, 10:55 AM · Restricted Project
rsandifo-arm closed D76691: [AST][SVE] Treat built-in SVE types as trivially copyable.
Mar 27 2020, 10:55 AM · Restricted Project
rsandifo-arm committed rG9dcb20a7d008: [AST][SVE] Treat built-in SVE types as POD (authored by rsandifo-arm).
[AST][SVE] Treat built-in SVE types as POD
Mar 27 2020, 10:21 AM
rsandifo-arm closed D76690: [AST][SVE] Treat built-in SVE types as POD.
Mar 27 2020, 10:20 AM · Restricted Project

Mar 25 2020

rsandifo-arm committed rG578fb2501a66: [Sema][SVE] Allow ?: to select between SVE types in C (authored by rsandifo-arm).
[Sema][SVE] Allow ?: to select between SVE types in C
Mar 25 2020, 4:18 AM
rsandifo-arm committed rG856bdd01fd65: [Sema][SVE] Allow casting SVE types to themselves in C (authored by rsandifo-arm).
[Sema][SVE] Allow casting SVE types to themselves in C
Mar 25 2020, 4:18 AM
rsandifo-arm closed D76693: [Sema][SVE] Allow ?: to select between SVE types in C.
Mar 25 2020, 4:18 AM · Restricted Project
rsandifo-arm closed D76694: [Sema][SVE] Allow casting SVE types to themselves in C.
Mar 25 2020, 4:18 AM · Restricted Project

Mar 24 2020

rsandifo-arm added a comment to D76694: [Sema][SVE] Allow casting SVE types to themselves in C.

Is it not legal to cast an SVE type to any type other than itself?

Mar 24 2020, 3:52 PM · Restricted Project
rsandifo-arm added a comment to D76693: [Sema][SVE] Allow ?: to select between SVE types in C.

Do we want to allow stuff like x ? (svint8_t)0 : (signed char)0

Mar 24 2020, 3:43 PM · Restricted Project
rsandifo-arm added inline comments to D76690: [AST][SVE] Treat built-in SVE types as POD.
Mar 24 2020, 3:39 PM · Restricted Project
rsandifo-arm created D76693: [Sema][SVE] Allow ?: to select between SVE types in C.
Mar 24 2020, 5:20 AM · Restricted Project
rsandifo-arm created D76694: [Sema][SVE] Allow casting SVE types to themselves in C.
Mar 24 2020, 5:20 AM · Restricted Project
rsandifo-arm created D76692: [AST][SVE] Treat built-in SVE types as trivial.
Mar 24 2020, 5:20 AM · Restricted Project
rsandifo-arm created D76689: [Sema][SVE] Fix handling of initialisers for built-in SVE types.
Mar 24 2020, 5:20 AM · Restricted Project
rsandifo-arm created D76691: [AST][SVE] Treat built-in SVE types as trivially copyable.
Mar 24 2020, 5:20 AM · Restricted Project
rsandifo-arm created D76690: [AST][SVE] Treat built-in SVE types as POD.
Mar 24 2020, 5:20 AM · Restricted Project

Mar 17 2020

rsandifo-arm committed rG4ece6f051bd0: [Sema][SVE] Reject "delete" with sizeless types (authored by rsandifo-arm).
[Sema][SVE] Reject "delete" with sizeless types
Mar 17 2020, 6:18 AM
rsandifo-arm closed D76219: [Sema][SVE] Reject "delete" with sizeless types.
Mar 17 2020, 6:18 AM · Restricted Project
rsandifo-arm committed rG506406c4d592: [Sema][SVE] Reject "new" with sizeless types (authored by rsandifo-arm).
[Sema][SVE] Reject "new" with sizeless types
Mar 17 2020, 5:44 AM
rsandifo-arm closed D76218: [Sema][SVE] Reject "new" with sizeless types.
Mar 17 2020, 5:44 AM · Restricted Project
rsandifo-arm committed rG72ffb16b4cde: [Sema][SVE] Don't allow sizeless types to be caught (authored by rsandifo-arm).
[Sema][SVE] Don't allow sizeless types to be caught
Mar 17 2020, 5:07 AM
rsandifo-arm closed D76090: [Sema][SVE] Don't allow sizeless types to be caught.
Mar 17 2020, 5:07 AM · Restricted Project
rsandifo-arm committed rGc47f971694be: [Sema][SVE] Don't allow sizeless objects to be thrown (authored by rsandifo-arm).
[Sema][SVE] Don't allow sizeless objects to be thrown
Mar 17 2020, 5:07 AM
rsandifo-arm closed D76088: [Sema][SVE] Don't allow sizeless objects to be thrown.
Mar 17 2020, 5:07 AM · Restricted Project
rsandifo-arm committed rG94489f35a7f8: [Sema][SVE] Reject arithmetic on pointers to sizeless types (authored by rsandifo-arm).
[Sema][SVE] Reject arithmetic on pointers to sizeless types
Mar 17 2020, 5:07 AM
rsandifo-arm committed rG094729690207: [Sema][SVE] Reject sizeless types in exception specs (authored by rsandifo-arm).
[Sema][SVE] Reject sizeless types in exception specs
Mar 17 2020, 5:07 AM
rsandifo-arm closed D76086: [Sema][SVE] Reject arithmetic on pointers to sizeless types.
Mar 17 2020, 5:07 AM · Restricted Project
rsandifo-arm closed D76087: [Sema][SVE] Reject sizeless types in exception specs.
Mar 17 2020, 5:07 AM · Restricted Project
rsandifo-arm committed rG010005f0774e: [Sema][SVE] Reject subscripts on pointers to sizeless types (authored by rsandifo-arm).
[Sema][SVE] Reject subscripts on pointers to sizeless types
Mar 17 2020, 4:28 AM
rsandifo-arm closed D76084: [Sema][SVE] Reject subscripts on pointers to sizeless types.
Mar 17 2020, 4:28 AM · Restricted Project

Mar 16 2020

rsandifo-arm created D76221: [Sema][SVE] Flip default RequireCompleteType behavior for sizeless types.
Mar 16 2020, 3:53 AM · Restricted Project
rsandifo-arm created D76219: [Sema][SVE] Reject "delete" with sizeless types.
Mar 16 2020, 3:09 AM · Restricted Project
rsandifo-arm created D76218: [Sema][SVE] Reject "new" with sizeless types.
Mar 16 2020, 3:09 AM · Restricted Project
rsandifo-arm added a comment to D76084: [Sema][SVE] Reject subscripts on pointers to sizeless types.

I'm not sure we actually want to reject this; let's discuss on the review for D76086, since subscripting is sort of a special case of arithmetic.

Mar 16 2020, 2:10 AM · Restricted Project

Mar 13 2020

rsandifo-arm committed rG994c071a1b7e: [Sema][SVE] Reject arrays of sizeless types (authored by rsandifo-arm).
[Sema][SVE] Reject arrays of sizeless types
Mar 13 2020, 12:56 PM
rsandifo-arm committed rG8c5c60a493ca: [Sema][SVE] Reject by-copy capture of sizeless types (authored by rsandifo-arm).
[Sema][SVE] Reject by-copy capture of sizeless types
Mar 13 2020, 12:56 PM
rsandifo-arm closed D75738: [Sema][SVE] Reject by-copy capture of sizeless types.
Mar 13 2020, 12:55 PM · Restricted Project
rsandifo-arm closed D76082: [Sema][SVE] Reject arrays of sizeless types.
Mar 13 2020, 12:55 PM · Restricted Project
rsandifo-arm committed rGb50d80c1ee1f: [Sema][SVE] Don't allow fields to have sizeless type (authored by rsandifo-arm).
[Sema][SVE] Don't allow fields to have sizeless type
Mar 13 2020, 12:25 PM
rsandifo-arm closed D75737: [Sema][SVE] Don't allow fields to have sizeless type.
Mar 13 2020, 12:24 PM · Restricted Project
rsandifo-arm updated the diff for D76090: [Sema][SVE] Don't allow sizeless types to be caught.

Allow pointers to sizeless types to be caught.

Mar 13 2020, 12:23 PM · Restricted Project
rsandifo-arm added a comment to D76086: [Sema][SVE] Reject arithmetic on pointers to sizeless types.

People are going to want to iterate over arrays in memory to write simple intrinsic loops. If we don't allow p + i to work, people will be forced to write (__SVInt8_t*)((char*)p + i * svcntb()). Which is the same thing, just a lot uglier. And it wouldn't really be that crazy to support sizeof(__SVInt8_t). I mean, it's effectively just a different way of spelling svcntb(). I guess we can always relax it later, though.

Mar 13 2020, 11:49 AM · Restricted Project

Mar 12 2020

rsandifo-arm added a comment to D76088: [Sema][SVE] Don't allow sizeless objects to be thrown.

We already have a special case for void* here; it's trivial to extend that to also check for sizeless types. I don't want to add weird semantic restrictions just to save a few characters in the compiler.

Mar 12 2020, 3:12 PM · Restricted Project
rsandifo-arm updated the diff for D76088: [Sema][SVE] Don't allow sizeless objects to be thrown.

Allow pointers to sizeless types to be thrown.

Mar 12 2020, 3:12 PM · Restricted Project
rsandifo-arm updated the diff for D76087: [Sema][SVE] Reject sizeless types in exception specs.

Allow pointers to sizeless types to be thrown.

Mar 12 2020, 3:11 PM · Restricted Project
rsandifo-arm added a comment to D76086: [Sema][SVE] Reject arithmetic on pointers to sizeless types.

Do we really want to forbid this? The expected semantics are clear, and the obvious lowering to getelementptr just works.

Mar 12 2020, 1:34 PM · Restricted Project
rsandifo-arm added a comment to D76088: [Sema][SVE] Don't allow sizeless objects to be thrown.

Why is throwing an svint8_t * an error? I don't see any obvious reason to forbid that.

Mar 12 2020, 1:01 PM · Restricted Project
rsandifo-arm created D76090: [Sema][SVE] Don't allow sizeless types to be caught.
Mar 12 2020, 12:28 PM · Restricted Project
rsandifo-arm created D76088: [Sema][SVE] Don't allow sizeless objects to be thrown.
Mar 12 2020, 11:56 AM · Restricted Project
rsandifo-arm created D76087: [Sema][SVE] Reject sizeless types in exception specs.
Mar 12 2020, 11:56 AM · Restricted Project
rsandifo-arm created D76086: [Sema][SVE] Reject arithmetic on pointers to sizeless types.
Mar 12 2020, 11:56 AM · Restricted Project
rsandifo-arm created D76084: [Sema][SVE] Reject subscripts on pointers to sizeless types.
Mar 12 2020, 11:56 AM · Restricted Project
rsandifo-arm created D76082: [Sema][SVE] Reject arrays of sizeless types.
Mar 12 2020, 11:56 AM · Restricted Project
rsandifo-arm added inline comments to D75737: [Sema][SVE] Don't allow fields to have sizeless type.
Mar 12 2020, 11:23 AM · Restricted Project
rsandifo-arm updated the diff for D75737: [Sema][SVE] Don't allow fields to have sizeless type.

Add a test for the BuildCaptureField change

Mar 12 2020, 11:23 AM · Restricted Project
rsandifo-arm committed rGf8700db7f150: [Sema][SVE] Don't allow static or thread-local variables to have sizeless type (authored by rsandifo-arm).
[Sema][SVE] Don't allow static or thread-local variables to have sizeless type
Mar 12 2020, 10:52 AM
rsandifo-arm closed D75736: [Sema][SVE] Don't allow static or thread-local variables to have sizeless type.
Mar 12 2020, 10:52 AM · Restricted Project
rsandifo-arm committed rGadb290d97482: [Sema][SVE] Reject atomic sizeless types (authored by rsandifo-arm).
[Sema][SVE] Reject atomic sizeless types
Mar 12 2020, 10:51 AM
rsandifo-arm committed rG627b5c12068c: [Sema][SVE] Reject aligned/_Alignas for sizeless types (authored by rsandifo-arm).
[Sema][SVE] Reject aligned/_Alignas for sizeless types
Mar 12 2020, 10:51 AM
rsandifo-arm closed D75734: [Sema][SVE] Reject atomic sizeless types.
Mar 12 2020, 10:51 AM · Restricted Project