Page MenuHomePhabricator

simon_tatham (Simon Tatham)
Compiler Engineer (Arm)

Projects

User does not belong to any projects.

User Details

User Since
Jul 12 2017, 1:23 AM (197 w, 51 m)

Recent Activity

Mon, Mar 29

simon_tatham accepted D97291: [ARM] Handle Splats in MVE lane interleaving.
Mon, Mar 29, 2:00 AM · Restricted Project

Mar 4 2021

simon_tatham accepted D97766: [objdump][ARM] Use correct offset when printing ARM/Thumb branch targets.

Very nice – it hadn't even occurred to me that you might be able to find the branch-target operand automatically as well as identifying Arm/Thumb.

Mar 4 2021, 2:22 AM · Restricted Project

Mar 3 2021

simon_tatham accepted D97788: [ARM] KnownBits for CSINC/CSNEG/CSINV.

LGTM, but to show willing I've spotted a typo in a comment :-)

Mar 3 2021, 8:46 AM · Restricted Project

Mar 2 2021

simon_tatham added inline comments to D97766: [objdump][ARM] Use correct offset when printing ARM/Thumb branch targets.
Mar 2 2021, 9:36 AM · Restricted Project

Feb 18 2021

simon_tatham accepted D96836: [FPEnv][AArch64] Implement lowering of llvm.set.rounding.

Looks nicer now, thanks!

Feb 18 2021, 3:54 AM · Restricted Project

Feb 17 2021

simon_tatham added inline comments to D96836: [FPEnv][AArch64] Implement lowering of llvm.set.rounding.
Feb 17 2021, 8:10 AM · Restricted Project
simon_tatham added inline comments to D96836: [FPEnv][AArch64] Implement lowering of llvm.set.rounding.
Feb 17 2021, 5:22 AM · Restricted Project

Feb 16 2021

simon_tatham accepted D96784: Pass the cmdline aapcs bitfield options to cc1.
Feb 16 2021, 7:37 AM · Restricted Project
simon_tatham accepted D96723: [ARM] Use rGPR for writeback vldrs.

Oh yes, I must have seen if Rn == '1101' && W == '1' and absentmindedly interpreted the W as a write to memory, not a write back to the register.

Feb 16 2021, 4:44 AM · Restricted Project

Feb 15 2021

simon_tatham accepted D95881: [ARM] Extend search for increment in load/store optimizer.

I was lucky to notice it at all – I only spotted it because one of the test changes in the previous version of the patch did lift an increment of SP past two load instructions. As best I could tell it wasn't harmful in that particular case, but that clued me in to look more closely and see whether it could have been harmful in another case.

Feb 15 2021, 1:34 AM · Restricted Project

Feb 12 2021

simon_tatham added a comment to D95881: [ARM] Extend search for increment in load/store optimizer.

What happens about a case like the following:

mov r0, sp
ldrd r1, r2, [sp]
ldr r3, [r0]
add sp, sp, #8

In this case, the LDR of r3 is not directly reading or modifying SP, but it is nonetheless dependent on SP not having been incremented yet, because it's accessing the stack slot that becomes invalid as soon as SP is increased. I don't see any check for that situation here.

Feb 12 2021, 7:33 AM · Restricted Project
simon_tatham accepted D96501: [FPEnv][ARM] Implement lowering of llvm.set.rounding.

LGTM. Thanks!

Feb 12 2021, 2:55 AM · Restricted Project

Feb 11 2021

simon_tatham added a comment to D96501: [FPEnv][ARM] Implement lowering of llvm.set.rounding.

The table-lookup strategy seems like overkill to me. As far as I can see, the integer mapping required is: 0→3, 3→2. 2→1, 1→0. In other words, all four input values (that can be handled at all) are just reduced by 1, mod 4. So instead of (147 >> (value << 1)) & 3, you could compute (value - 1) & 3, surely more cheaply.

Feb 11 2021, 7:47 AM · Restricted Project
simon_tatham committed rG69f1a7ad82fd: [ARM] Copy-paste error in ARMv87a architecture definition. (authored by simon_tatham).
[ARM] Copy-paste error in ARMv87a architecture definition.
Feb 11 2021, 5:37 AM
simon_tatham closed D96493: [ARM] Copy-paste error in ARMv87a architecture definition..
Feb 11 2021, 5:36 AM · Restricted Project
simon_tatham updated the diff for D96493: [ARM] Copy-paste error in ARMv87a architecture definition..

Ahem. Now actually tested, and with the necessary extra enum definition.

Feb 11 2021, 5:29 AM · Restricted Project
simon_tatham requested review of D96493: [ARM] Copy-paste error in ARMv87a architecture definition..
Feb 11 2021, 5:13 AM · Restricted Project

Feb 8 2021

simon_tatham accepted D96153: [ARM] Make v2f62 scalar_to_vector legal.

You've got a typo in the subject line :-) v2f64, not v2f62.

Feb 8 2021, 1:15 AM · Restricted Project

Feb 5 2021

simon_tatham accepted D95456: [ARM] i16 insert-of-extract to VINS pattern.
Feb 5 2021, 7:55 AM · Restricted Project
simon_tatham accepted D96065: [ARM] Single source VMOVNT.
Feb 5 2021, 1:56 AM · Restricted Project
simon_tatham added inline comments to D95456: [ARM] i16 insert-of-extract to VINS pattern.
Feb 5 2021, 1:05 AM · Restricted Project

Feb 4 2021

simon_tatham added inline comments to D95456: [ARM] i16 insert-of-extract to VINS pattern.
Feb 4 2021, 4:56 AM · Restricted Project
simon_tatham accepted D95446: [ARM] Handle f16 in GeneratePerfectShuffle.
Feb 4 2021, 1:33 AM · Restricted Project

Jan 28 2021

simon_tatham accepted D95319: [ARM] Add alignment checks for MVE VLDn.
Jan 28 2021, 2:20 AM · Restricted Project

Jan 27 2021

simon_tatham committed rG7b3ba8dd020e: [libcxx] Update include/__libcpp_version to match include/__config (authored by simon_tatham).
[libcxx] Update include/__libcpp_version to match include/__config
Jan 27 2021, 7:17 AM

Jan 20 2021

simon_tatham accepted D94599: [clang][Tooling] Get rid of a hack in SymbolOccurrences, NFCI.

Thanks. LGTM now.

Jan 20 2021, 1:24 AM · Restricted Project

Jan 19 2021

simon_tatham added inline comments to D94599: [clang][Tooling] Get rid of a hack in SymbolOccurrences, NFCI.
Jan 19 2021, 5:16 AM · Restricted Project
simon_tatham added inline comments to D94599: [clang][Tooling] Get rid of a hack in SymbolOccurrences, NFCI.
Jan 19 2021, 3:58 AM · Restricted Project

Dec 8 2020

simon_tatham accepted D92470: [ARM] Common inverse constant predicates to VPNOT.

That seems like a reasonable precaution to me, yes – with only one VPR, there's only one previous value that it might be of obviously low cost to VPNOT.

Dec 8 2020, 2:45 AM · Restricted Project

Dec 2 2020

simon_tatham added a comment to D92470: [ARM] Common inverse constant predicates to VPNOT.

Should there be a range limit somewhere in this logic, beyond just 'in the same basic block'? I worry slightly that if there's a very long basic block with two completely separate predicated sections, and they happen to reuse the same constant, then it might not be a win to do this change. Something along the lines of

Dec 2 2020, 4:11 AM · Restricted Project

Dec 1 2020

simon_tatham accepted D92235: [ARM] Turn pred_cast(xor(x, -1)) into xor(pred_cast(x), -1).
Dec 1 2020, 1:49 AM · Restricted Project

Nov 30 2020

simon_tatham added inline comments to D92235: [ARM] Turn pred_cast(xor(x, -1)) into xor(pred_cast(x), -1).
Nov 30 2020, 2:35 AM · Restricted Project

Nov 27 2020

simon_tatham accepted D92213: [ARM] PREDICATE_CAST demanded bits.
Nov 27 2020, 1:33 AM · Restricted Project

Nov 20 2020

simon_tatham accepted D90305: Correctly parse and print Tag_THUMB_ISA_use=3.
Nov 20 2020, 1:07 AM · Restricted Project

Nov 19 2020

simon_tatham added inline comments to D91773: [AArch64] Add SubtargetFeatures for v8.7-A options.
Nov 19 2020, 3:19 AM · Restricted Project

Oct 16 2020

simon_tatham committed rGbcb7b8770620: [libcxxabi] Fix printf formats in a test. (authored by simon_tatham).
[libcxxabi] Fix printf formats in a test.
Oct 16 2020, 6:00 AM
simon_tatham closed D89547: [libcxxabi] Fix printf formats in a test..
Oct 16 2020, 6:00 AM · Restricted Project
simon_tatham added a comment to D89545: [libcxx] Fix printf formats in two tests..

Thanks for the quick review – sorry I wasn't on the ball enough to fold D89547 into this one too...

Oct 16 2020, 5:57 AM · Restricted Project
simon_tatham requested review of D89547: [libcxxabi] Fix printf formats in a test..
Oct 16 2020, 5:57 AM · Restricted Project
simon_tatham committed rG4d60467f99a0: [libcxx] Fix printf formats in two tests. (authored by simon_tatham).
[libcxx] Fix printf formats in two tests.
Oct 16 2020, 5:48 AM
simon_tatham closed D89545: [libcxx] Fix printf formats in two tests..
Oct 16 2020, 5:47 AM · Restricted Project
simon_tatham requested review of D89545: [libcxx] Fix printf formats in two tests..
Oct 16 2020, 5:43 AM · Restricted Project

Oct 14 2020

simon_tatham added a comment to D88806: [SCEV] Model ptrtoint(SCEVUnknown) cast not as unknown, but as zext/trunc/self of SCEVUnknown.

Thanks for the quick response!

Oct 14 2020, 6:18 AM · Restricted Project
simon_tatham added a comment to D88806: [SCEV] Model ptrtoint(SCEVUnknown) cast not as unknown, but as zext/trunc/self of SCEVUnknown.

Hi @lebedev.ri , it looks as if this commit is causing an assertion failure compiling the following example code.

void bar(void), baz(unsigned);
Oct 14 2020, 2:59 AM · Restricted Project

Sep 3 2020

simon_tatham accepted D86702: [ARM] Fold predicate_cast(load) into vldr p0.
Sep 3 2020, 1:54 AM · Restricted Project

Aug 7 2020

simon_tatham committed rG1d782942500b: [Sema][BFloat] Forbid arithmetic on vectors of bfloat. (authored by simon_tatham).
[Sema][BFloat] Forbid arithmetic on vectors of bfloat.
Aug 7 2020, 3:27 AM
simon_tatham closed D85009: [Sema][BFloat] Forbid arithmetic on vectors of bfloat..
Aug 7 2020, 3:27 AM · Restricted Project

Aug 6 2020

simon_tatham added a comment to D85009: [Sema][BFloat] Forbid arithmetic on vectors of bfloat..

This discussion seems to have wound down. I'll land this patch tomorrow on the strength of @LukeGeeson's review, unless you have strong objections, @jfb?

Aug 6 2020, 2:18 AM · Restricted Project

Aug 3 2020

simon_tatham committed rGed0e4c70c99d: [clang][ARM] Add name-mangling test for direct __fp16 arguments. (authored by simon_tatham).
[clang][ARM] Add name-mangling test for direct __fp16 arguments.
Aug 3 2020, 5:31 AM
simon_tatham closed D85010: [clang][ARM] Add name-mangling test for direct __fp16 arguments..
Aug 3 2020, 5:31 AM · Restricted Project
simon_tatham added a comment to D85009: [Sema][BFloat] Forbid arithmetic on vectors of bfloat..
In D85009#2187643, @jfb wrote:

Language-wise I think https://wg21.link/p1467 is where C++ is going, and C is taking a similar approach.

Aug 3 2020, 2:02 AM · Restricted Project

Jul 31 2020

simon_tatham added a comment to D85009: [Sema][BFloat] Forbid arithmetic on vectors of bfloat..
In D85009#2187621, @jfb wrote:

You mean: only aarch64 backend supports lowering bfloat16 vectors at the moment?

Jul 31 2020, 9:23 AM · Restricted Project
simon_tatham added a comment to D85009: [Sema][BFloat] Forbid arithmetic on vectors of bfloat..
In D85009#2187549, @jfb wrote:

Is that true of all vector bfloat implementations? It seems like arithmetic on these types is something implementations would likely support.

Jul 31 2020, 9:06 AM · Restricted Project
simon_tatham requested review of D85010: [clang][ARM] Add name-mangling test for direct __fp16 arguments..
Jul 31 2020, 1:33 AM · Restricted Project
simon_tatham requested review of D85009: [Sema][BFloat] Forbid arithmetic on vectors of bfloat..
Jul 31 2020, 1:27 AM · Restricted Project

Jul 20 2020

simon_tatham accepted D84102: [ARM] Add predicated mla reduction patterns.
Jul 20 2020, 6:11 AM · Restricted Project
simon_tatham accepted D84101: [ARM] Add predicated add reduction patterns.
Jul 20 2020, 5:29 AM · Restricted Project
simon_tatham added inline comments to D84102: [ARM] Add predicated mla reduction patterns.
Jul 20 2020, 5:20 AM · Restricted Project

Jul 14 2020

simon_tatham committed rG86d362f48928: [utils] New script `check_ninja_deps.py` (authored by simon_tatham).
[utils] New script `check_ninja_deps.py`
Jul 14 2020, 6:54 AM
simon_tatham closed D83032: [utils] New script `check_ninja_deps.py`.
Jul 14 2020, 6:54 AM · Restricted Project
simon_tatham added inline comments to D83032: [utils] New script `check_ninja_deps.py`.
Jul 14 2020, 6:22 AM · Restricted Project
simon_tatham accepted D83566: [ARM] CSEL generation.
Jul 14 2020, 1:53 AM · Restricted Project

Jul 3 2020

simon_tatham added a comment to D82659: Fix missing build dependency on omp_gen..

@jdoerfert , @clementval : over in D83032 is a polished-up version of the script I used to check where the missing deps needed to go. Might be useful for the next problem of this kind. But I'm not sure who to get to review it; perhaps one of you might look at it?

Jul 3 2020, 1:35 AM · Restricted Project, Restricted Project

Jul 2 2020

simon_tatham created D83032: [utils] New script `check_ninja_deps.py`.
Jul 2 2020, 4:15 AM · Restricted Project
simon_tatham committed rG9e6f19fd8390: Fix missing build dependency on omp_gen. (authored by simon_tatham).
Fix missing build dependency on omp_gen.
Jul 2 2020, 1:34 AM
simon_tatham closed D82659: Fix missing build dependency on omp_gen..
Jul 2 2020, 1:34 AM · Restricted Project, Restricted Project

Jul 1 2020

simon_tatham added a comment to D82659: Fix missing build dependency on omp_gen..

LGTM. So later the DEPENDS omp_gen that are in clang subdirectories could be removed right?

Jul 1 2020, 8:42 AM · Restricted Project, Restricted Project
simon_tatham added a comment to D82659: Fix missing build dependency on omp_gen..

[facepalm] Thank you. I carefully wrote a revised description, but forgot to upload it to this issue.

Jul 1 2020, 8:42 AM · Restricted Project, Restricted Project
simon_tatham updated the summary of D82659: Fix missing build dependency on omp_gen..
Jul 1 2020, 8:42 AM · Restricted Project, Restricted Project
simon_tatham updated the diff for D82659: Fix missing build dependency on omp_gen..

Here's a completely different patch, which adds all the missing dependencies on OMP.h.inc in the clang subdirectory in one go.

Jul 1 2020, 3:44 AM · Restricted Project, Restricted Project

Jun 30 2020

simon_tatham added a comment to D82659: Fix missing build dependency on omp_gen..

Cannot you just add a depends for your failing case?

Jun 30 2020, 9:12 AM · Restricted Project, Restricted Project
simon_tatham reopened D82659: Fix missing build dependency on omp_gen..

Unfortunately, I had to revert this because it caused a buildbot failure: rG39ea5d74b283d5a42f34b856d22bfaf806a1c907

Jun 30 2020, 5:23 AM · Restricted Project, Restricted Project
simon_tatham added a reverting change for rGed4328c60730: Fix missing build dependency on omp_gen.: rG39ea5d74b283: Revert "Fix missing build dependency on omp_gen.".
Jun 30 2020, 2:08 AM
simon_tatham committed rG39ea5d74b283: Revert "Fix missing build dependency on omp_gen." (authored by simon_tatham).
Revert "Fix missing build dependency on omp_gen."
Jun 30 2020, 2:08 AM
simon_tatham committed rGed4328c60730: Fix missing build dependency on omp_gen. (authored by simon_tatham).
Fix missing build dependency on omp_gen.
Jun 30 2020, 1:03 AM
simon_tatham closed D82659: Fix missing build dependency on omp_gen..
Jun 30 2020, 1:02 AM · Restricted Project, Restricted Project

Jun 29 2020

simon_tatham added a comment to D82659: Fix missing build dependency on omp_gen..

@clementval , are you happy for me to commit this patch?

Jun 29 2020, 6:58 AM · Restricted Project, Restricted Project

Jun 26 2020

simon_tatham added a comment to D82659: Fix missing build dependency on omp_gen..

I wondered about that. I think it may well mean some of those DEPENDS can be removed, but I'm not sure how to be certain of it :-)

Jun 26 2020, 8:44 AM · Restricted Project, Restricted Project
simon_tatham created D82659: Fix missing build dependency on omp_gen..
Jun 26 2020, 8:10 AM · Restricted Project, Restricted Project
simon_tatham committed rG41eb63929183: Fix implicit include dependencies on SmallVector.h. (authored by simon_tatham).
Fix implicit include dependencies on SmallVector.h.
Jun 26 2020, 5:58 AM

Jun 24 2020

simon_tatham accepted D81339: [ARM] MVE VCVT lowering for f16->f32 extends.
Jun 24 2020, 9:09 AM · Restricted Project
simon_tatham committed rGb769eb02b526: [ARM][BFloat] Legalize bf16 type even without fullfp16. (authored by simon_tatham).
[ARM][BFloat] Legalize bf16 type even without fullfp16.
Jun 24 2020, 2:08 AM
simon_tatham closed D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..
Jun 24 2020, 2:08 AM · Restricted Project
simon_tatham accepted D59733: ARM: Allow cp10/cp11 coprocessor register access with a warning.

LGTM. Thanks for the fixes.

Jun 24 2020, 1:34 AM · Restricted Project

Jun 23 2020

simon_tatham added inline comments to D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..
Jun 23 2020, 9:37 AM · Restricted Project
simon_tatham updated the diff for D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..

Updated for @dmgreen's review suggestions, which both seem to work as far as I can see.

Jun 23 2020, 9:04 AM · Restricted Project
simon_tatham added inline comments to D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..
Jun 23 2020, 9:04 AM · Restricted Project
simon_tatham added a comment to D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..

It isn't unused – there are still some isel patterns using it, which I haven't touched in this commit.

Jun 23 2020, 8:31 AM · Restricted Project
simon_tatham added inline comments to D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..
Jun 23 2020, 7:25 AM · Restricted Project
simon_tatham updated subscribers of D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..

(Sorry @labrinea – removing you as a reviewer was an unintentional side effect of a bad arc command.)

Jun 23 2020, 7:25 AM · Restricted Project
simon_tatham added a reviewer for D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16.: labrinea.
Jun 23 2020, 7:25 AM · Restricted Project
simon_tatham updated the diff for D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..

New version addressing review comments.

Jun 23 2020, 7:25 AM · Restricted Project
simon_tatham created D82372: [ARM][BFloat] Legalize bf16 type even without fullfp16..
Jun 23 2020, 5:49 AM · Restricted Project
simon_tatham added a comment to D59733: ARM: Allow cp10/cp11 coprocessor register access with a warning.

OK, fair enough. In that case, please correct my nitpicks and I'll approve the revised patch.

Jun 23 2020, 2:36 AM · Restricted Project

Jun 22 2020

simon_tatham added a comment to D59733: ARM: Allow cp10/cp11 coprocessor register access with a warning.

for ARMv7 we only disallowed this pair, and this change removes that restriction. So now, all of them are allowed...

Jun 22 2020, 6:24 AM · Restricted Project
simon_tatham added a comment to D59733: ARM: Allow cp10/cp11 coprocessor register access with a warning.

I've made a couple of nitpicks to the patch, but my more general question is: if we think that this pair of coprocessors should be changed from "reject completely" to "accept with a warning", why not all of them? What argument applies to CP10 and CP11 that doesn't apply to all the others, apart from the immediate short-term argument of "this is the one that's currently causing somebody a problem"?

Jun 22 2020, 2:38 AM · Restricted Project

Jun 17 2020

simon_tatham added inline comments to D80865: [TableGen] defm in a loop is not final (bug fix).
Jun 17 2020, 1:34 AM · Restricted Project

Jun 15 2020

simon_tatham added inline comments to D80865: [TableGen] defm in a loop is not final (bug fix).
Jun 15 2020, 6:28 AM · Restricted Project

May 28 2020

simon_tatham added inline comments to D80716: [AArch64]: BFloat Load/Store Intrinsics&CodeGen.
May 28 2020, 7:02 AM · Restricted Project, Restricted Project

May 5 2020

simon_tatham accepted D79402: [ARM] Correct the type on a predicate cast.
May 5 2020, 3:11 AM · Restricted Project