Page MenuHomePhabricator

john.brawn (John Brawn)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 12 2015, 7:44 AM (385 w, 1 d)

Recent Activity

May 19 2022

john.brawn accepted D125980: [AArch64] Fix the generation of BE Nops.

LGTM.

May 19 2022, 9:08 AM · Restricted Project, Restricted Project

May 18 2022

john.brawn accepted D125775: [ARM] Don't Enable AES Pass for Generic Cores.

LGTM.

May 18 2022, 4:55 AM · Restricted Project, Restricted Project, Restricted Project

May 6 2022

john.brawn committed rGf3a970a82552: [libc++] Mark tests that use check_assertion.h as requiring unix headers (authored by john.brawn).
[libc++] Mark tests that use check_assertion.h as requiring unix headers
May 6 2022, 3:04 AM · Restricted Project, Restricted Project
john.brawn closed D124623: [libc++] Mark tests that use check_assertion.h as requiring unix headers.
May 6 2022, 3:03 AM · Restricted Project, Restricted Project

May 3 2022

john.brawn updated the diff for D124623: [libc++] Mark tests that use check_assertion.h as requiring unix headers.

Also check for sys/wait.h, and rename the feature to has-unix-headers.

May 3 2022, 10:33 AM · Restricted Project, Restricted Project
john.brawn committed rGbd606afe26f2: [ARM] Only update the successor edges for immediate predecessors of PrologueMBB (authored by ZhiyaoMa98).
[ARM] Only update the successor edges for immediate predecessors of PrologueMBB
May 3 2022, 4:42 AM · Restricted Project, Restricted Project
john.brawn closed D122959: [ARM] Only update the successor edges for immediate predecessors of PrologueMBB..
May 3 2022, 4:42 AM · Restricted Project, Restricted Project
john.brawn accepted D122959: [ARM] Only update the successor edges for immediate predecessors of PrologueMBB..

Looks good, I'll commit this for you.

May 3 2022, 4:36 AM · Restricted Project, Restricted Project

Apr 28 2022

john.brawn requested review of D124623: [libc++] Mark tests that use check_assertion.h as requiring unix headers.
Apr 28 2022, 9:03 AM · Restricted Project, Restricted Project
john.brawn added a comment to D122959: [ARM] Only update the successor edges for immediate predecessors of PrologueMBB..

I would like to add a test, but I do not know how. My understanding is that I will need to create an example that PrologueMBB has non-immediate predecessors. Is there any example I can follow? Thanks!

Apr 28 2022, 8:29 AM · Restricted Project, Restricted Project
john.brawn abandoned D124255: [libc++] Make check_assertion.h use setjmp/longjmp instead of fork.

After doing some more experimentation I don't think it's possible to get this to work in all cases. If we make a copy of the closure then any containers in it will be copied, but copies of iterators will still point to the container outside of the closure copy, and this causes a bunch of tests to fail.

Apr 28 2022, 4:11 AM · Restricted Project, Restricted Project

Apr 26 2022

john.brawn planned changes to D124255: [libc++] Make check_assertion.h use setjmp/longjmp instead of fork.

This looks really interesting! However, doesn't that mean that we can't assert that the process terminates if a certain condition is met?

Apr 26 2022, 10:06 AM · Restricted Project, Restricted Project

Apr 22 2022

john.brawn updated subscribers of D124255: [libc++] Make check_assertion.h use setjmp/longjmp instead of fork.
Apr 22 2022, 6:00 AM · Restricted Project, Restricted Project
john.brawn requested review of D124255: [libc++] Make check_assertion.h use setjmp/longjmp instead of fork.
Apr 22 2022, 5:59 AM · Restricted Project, Restricted Project

Apr 14 2022

john.brawn committed rG27a8735a444f: [AArch64] Add mayRaiseFPException to appropriate instructions (authored by john.brawn).
[AArch64] Add mayRaiseFPException to appropriate instructions
Apr 14 2022, 8:52 AM · Restricted Project, Restricted Project
john.brawn committed rG12c1022679d4: [AArch64] Lowering and legalization of strict FP16 (authored by john.brawn).
[AArch64] Lowering and legalization of strict FP16
Apr 14 2022, 8:52 AM · Restricted Project, Restricted Project
john.brawn committed rG1b1466c34669: [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL (authored by john.brawn).
[AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL
Apr 14 2022, 8:52 AM · Restricted Project, Restricted Project
john.brawn closed D115352: [AArch64] Add mayRaiseFPException to appropriate instructions.
Apr 14 2022, 8:52 AM · Restricted Project, Restricted Project
john.brawn closed D118259: [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL.
Apr 14 2022, 8:52 AM · Restricted Project, Restricted Project
john.brawn closed D115620: [AArch64] Lowering and legalization of strict FP16.
Apr 14 2022, 8:51 AM · Restricted Project, Restricted Project, Restricted Project

Apr 12 2022

john.brawn updated the diff for D118259: [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL.

Also adjust aarch64-v8.2a-fp16-intrinsics-constrained.c in this patch (was previously done in
D115620) and remove the checks of the generated asm.

Apr 12 2022, 10:26 AM · Restricted Project, Restricted Project
john.brawn added inline comments to D115620: [AArch64] Lowering and legalization of strict FP16.
Apr 12 2022, 9:24 AM · Restricted Project, Restricted Project, Restricted Project
john.brawn updated the diff for D115620: [AArch64] Lowering and legalization of strict FP16.

Removed clang test changes.

Apr 12 2022, 9:13 AM · Restricted Project, Restricted Project, Restricted Project

Apr 11 2022

john.brawn added a comment to D115620: [AArch64] Lowering and legalization of strict FP16.

Ping.

Apr 11 2022, 5:17 AM · Restricted Project, Restricted Project, Restricted Project

Apr 6 2022

john.brawn planned changes to D121929: [AArch64] Mark all instructions that read/write FPCR as doing so.

This is interacting badly with MachineCSE, as the presence of a physical register prevents it from optimising in some cases. I think the fix is in MachineCSE, but removing this patch from review while I look at it.

Apr 6 2022, 7:44 AM · Restricted Project, Restricted Project
john.brawn added a comment to D122959: [ARM] Only update the successor edges for immediate predecessors of PrologueMBB..

I don't know much about this specific bit of code, but a comment in ReplaceUsesOfBlockWith mentions that it's expected that 'Old' is a successor of 'this' so the fix looks reasonable. However, could you also add a test for this?

Apr 6 2022, 7:28 AM · Restricted Project, Restricted Project

Mar 31 2022

john.brawn updated the diff for D115620: [AArch64] Lowering and legalization of strict FP16.

Adjusted formatting slightly.

Mar 31 2022, 9:27 AM · Restricted Project, Restricted Project, Restricted Project
john.brawn added a comment to D115352: [AArch64] Add mayRaiseFPException to appropriate instructions.

The original version of this patch was altering the non-strict codegen because the flags were lost in the machine combiner. Have you done any other testing to make sure that doesn't happen anywhere else? To make sure this doesn't pessimise the performance for the default non-strict case.

Mar 31 2022, 6:48 AM · Restricted Project, Restricted Project

Mar 17 2022

john.brawn requested review of D121929: [AArch64] Mark all instructions that read/write FPCR as doing so.
Mar 17 2022, 10:26 AM · Restricted Project, Restricted Project
john.brawn added a comment to D118259: [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL.

llvm/test/CodeGen/AArch64/fp-intrinsics-vector.ll is testing the asm generation, so it probably is fine to remove that here so I will. This test is specifically testing arm_neon.h intrinsics though, so wouldn't make sense unifying with other architectures.

Mar 17 2022, 6:24 AM · Restricted Project, Restricted Project
john.brawn updated the diff for D115352: [AArch64] Add mayRaiseFPException to appropriate instructions.

Rebase and ping.

Mar 17 2022, 5:05 AM · Restricted Project, Restricted Project
john.brawn updated the diff for D115620: [AArch64] Lowering and legalization of strict FP16.

Rebase and ping.

Mar 17 2022, 5:00 AM · Restricted Project, Restricted Project, Restricted Project
john.brawn added a comment to D118259: [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL.

Ping.

Mar 17 2022, 4:49 AM · Restricted Project, Restricted Project

Mar 16 2022

john.brawn accepted D120026: [ARM] Fix ARM backend to correctly use atomic expansion routines..

LGTM, but please adjust the comment in ARMISelLowering.cpp as suggested by the clang-format linter before committing.

Mar 16 2022, 10:26 AM · Restricted Project, Restricted Project

Mar 9 2022

john.brawn added a comment to D118545: [ARM] Fix 8-bit immediate overflow in the instruction of segmented stack prologue..

LGTM as well.

Mar 9 2022, 5:07 AM · Restricted Project, Restricted Project

Mar 7 2022

Herald added a project to D118259: [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL: Restricted Project.

Ping.

Mar 7 2022, 6:04 AM · Restricted Project, Restricted Project
Herald added a project to D115620: [AArch64] Lowering and legalization of strict FP16: Restricted Project.

Ping.

Mar 7 2022, 6:04 AM · Restricted Project, Restricted Project, Restricted Project
Herald added a project to D115352: [AArch64] Add mayRaiseFPException to appropriate instructions: Restricted Project.

Ping.

Mar 7 2022, 6:04 AM · Restricted Project, Restricted Project

Feb 25 2022

john.brawn updated the diff for D115352: [AArch64] Add mayRaiseFPException to appropriate instructions.

Rebased.

Feb 25 2022, 8:57 AM · Restricted Project, Restricted Project

Feb 24 2022

john.brawn updated the diff for D115620: [AArch64] Lowering and legalization of strict FP16.

Rebased, and also adjusted formatting slightly.

Feb 24 2022, 10:14 AM · Restricted Project, Restricted Project, Restricted Project
john.brawn added inline comments to D115620: [AArch64] Lowering and legalization of strict FP16.
Feb 24 2022, 10:07 AM · Restricted Project, Restricted Project, Restricted Project
john.brawn added a comment to D118259: [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL.

Does this clang test actually need to check the generated assembly? Shouldn't it be enough to check that the correct intrinsics are generated?

Feb 24 2022, 10:01 AM · Restricted Project, Restricted Project

Feb 17 2022

john.brawn committed rGbbd7eac800e6: [AArch64] Remove an unused variable in my previous patch (authored by john.brawn).
[AArch64] Remove an unused variable in my previous patch
Feb 17 2022, 8:40 AM
john.brawn committed rG8e17c9613f36: [AArch64] Add some missing strict FP vector lowering (authored by john.brawn).
[AArch64] Add some missing strict FP vector lowering
Feb 17 2022, 8:11 AM
john.brawn closed D117795: [AArch64] Add some missing strict FP vector lowering.
Feb 17 2022, 8:11 AM · Restricted Project, Restricted Project
john.brawn committed rGd916856bee11: [AArch64] Allow strict opcodes in faddp patterns (authored by john.brawn).
[AArch64] Allow strict opcodes in faddp patterns
Feb 17 2022, 5:13 AM
john.brawn committed rGb670da798d35: [AArch64] Allow strict opcodes in indexed fmul and fma patterns (authored by john.brawn).
[AArch64] Allow strict opcodes in indexed fmul and fma patterns
Feb 17 2022, 5:13 AM
john.brawn committed rG9d68ed08178d: [AArch64] Allow strict opcodes in fp->int->fp patterns (authored by john.brawn).
[AArch64] Allow strict opcodes in fp->int->fp patterns
Feb 17 2022, 5:13 AM
john.brawn committed rGd4342efb6959: [AArch64] Add instruction selection for strict FP (authored by john.brawn).
[AArch64] Add instruction selection for strict FP
Feb 17 2022, 5:13 AM
john.brawn closed D118489: [AArch64] Allow strict opcodes in faddp patterns.
Feb 17 2022, 5:12 AM · Restricted Project
john.brawn closed D118487: [AArch64] Allow strict opcodes in indexed fmul and fma patterns.
Feb 17 2022, 5:12 AM · Restricted Project
john.brawn closed D118485: [AArch64] Allow strict opcodes in fp->int->fp patterns.
Feb 17 2022, 5:12 AM · Restricted Project
john.brawn closed D114946: [AArch64] Add instruction selection for strict FP.
Feb 17 2022, 5:12 AM · Restricted Project

Feb 11 2022

john.brawn updated the diff for D118489: [AArch64] Allow strict opcodes in faddp patterns.

Use ReplaceAllUsesOfValueWith instead of MorphNode.

Feb 11 2022, 7:04 AM · Restricted Project

Feb 9 2022

john.brawn updated the diff for D114946: [AArch64] Add instruction selection for strict FP.

Added tests for fnmadd and fnmsub.

Feb 9 2022, 9:30 AM · Restricted Project
john.brawn added inline comments to D114946: [AArch64] Add instruction selection for strict FP.
Feb 9 2022, 9:26 AM · Restricted Project

Feb 8 2022

john.brawn updated the diff for D118489: [AArch64] Allow strict opcodes in faddp patterns.

Morph the strict_fadd instead of creating a new one, so that we don't end up with two strict_fadd nodes (as both would be kept when exceptions are enabled).

Feb 8 2022, 6:42 AM · Restricted Project

Feb 7 2022

john.brawn updated the diff for D114946: [AArch64] Add instruction selection for strict FP.

Adjusted loops so that the formatting matches what clang-format prefers. It turns out that non-strict f128 fmaximum/fminimum doesn't work, so I've added a FIXME comment about that and just added tests for non-f128.

Feb 7 2022, 9:55 AM · Restricted Project
john.brawn added a comment to D114946: [AArch64] Add instruction selection for strict FP.

Is a f128 fminimum / fmaximum something that should be handled? I don't see any tests for fminimum in general.

Yes, it should, I'll do that and add tests.

Feb 7 2022, 4:37 AM · Restricted Project
john.brawn added a comment to D118545: [ARM] Fix 8-bit immediate overflow in the instruction of segmented stack prologue..

You'll want to have the RUN lines for the thumb tests to have a --check-prefix argument to FileCheck that's unique, and use that to check for the thumb-specific codegen, e.g.

; RUN: llc < %s -mtriple=arm-linux-androideabi -mattr=+v4t -verify-machineinstrs | FileCheck %s -check-prefix=ARM-android
; RUN: llc < %s -mtriple=arm-linux-unknown-gnueabi -mattr=+v4t  -verify-machineinstrs | FileCheck %s -check-prefix=ARM-linux
; RUN: llc < %s -mtriple=thumb-linux-androideabi -mattr=+v4t -verify-machineinstrs | FileCheck %s -check-prefix=THUMB-android
; RUN: llc < %s -mtriple=thumb-linux-unknown-gnueabi -mattr=+v4t  -verify-machineinstrs | FileCheck %s -check-prefix=THUMB-linux

then later

; THUMB-android:      test_large:
Feb 7 2022, 3:13 AM · Restricted Project, Restricted Project

Feb 4 2022

john.brawn committed rG0d8092dd485a: [AArch64] Fix legalization of v1f64 strict_fsetcc and strict_fsetccs (authored by john.brawn).
[AArch64] Fix legalization of v1f64 strict_fsetcc and strict_fsetccs
Feb 4 2022, 5:00 AM
john.brawn committed rGbca998ed3c9a: [AArch64] Generate fcmps when appropriate for neon intrinsics (authored by john.brawn).
[AArch64] Generate fcmps when appropriate for neon intrinsics
Feb 4 2022, 5:00 AM
john.brawn closed D118258: [AArch64] Fix legalization of v1f64 strict_fsetcc and strict_fsetccs.
Feb 4 2022, 5:00 AM · Restricted Project
john.brawn closed D118257: [AArch64] Generate fcmps when appropriate for neon intrinsics.
Feb 4 2022, 5:00 AM · Restricted Project

Feb 3 2022

john.brawn committed rG6f53960d6416: [AArch64] Adjust machine-combiner-reassociate.mir test (authored by john.brawn).
[AArch64] Adjust machine-combiner-reassociate.mir test
Feb 3 2022, 4:40 AM
john.brawn committed rG94843ea7d7e5: [AArch64] Make machine combiner patterns preserve MIFlags (authored by john.brawn).
[AArch64] Make machine combiner patterns preserve MIFlags
Feb 3 2022, 3:59 AM
john.brawn closed D118621: [AArch64] Make machine combiner patterns preserve MIFlags.
Feb 3 2022, 3:59 AM · Restricted Project

Feb 2 2022

john.brawn added a comment to D118545: [ARM] Fix 8-bit immediate overflow in the instruction of segmented stack prologue..

Please add a test for this. llvm/test/CodeGen/ARM/segmented-stacks.ll already has some tests related to this, so it looks like you could add a couple of RUN lines for thumb and thumb2 targets, and add test_very_large that's like test_large but with an integer that's too large for ARM::MOVi.

Feb 2 2022, 6:55 AM · Restricted Project, Restricted Project
john.brawn updated the diff for D117795: [AArch64] Add some missing strict FP vector lowering.

Update based on review comments and adjust formatting.

Feb 2 2022, 4:14 AM · Restricted Project, Restricted Project
john.brawn updated the diff for D114946: [AArch64] Add instruction selection for strict FP.

Moved a couple of setOperationAction lines from D117795 to here.

Feb 2 2022, 3:56 AM · Restricted Project
john.brawn planned changes to D117795: [AArch64] Add some missing strict FP vector lowering.
Feb 2 2022, 3:08 AM · Restricted Project, Restricted Project

Feb 1 2022

john.brawn added inline comments to D117795: [AArch64] Add some missing strict FP vector lowering.
Feb 1 2022, 9:45 AM · Restricted Project, Restricted Project
john.brawn updated the diff for D118621: [AArch64] Make machine combiner patterns preserve MIFlags.

Also preserve flags in TargetInstrInfo::reassociateOps (which is called from TargetInstrInfo::genAlternativeCodeSequence).

Feb 1 2022, 8:49 AM · Restricted Project

Jan 31 2022

john.brawn requested review of D115352: [AArch64] Add mayRaiseFPException to appropriate instructions.

I've created D118621 for making the AArch64 machine combiner patterns preserve MIFlags.

Jan 31 2022, 9:02 AM · Restricted Project, Restricted Project
john.brawn requested review of D118621: [AArch64] Make machine combiner patterns preserve MIFlags.
Jan 31 2022, 8:50 AM · Restricted Project
john.brawn planned changes to D118489: [AArch64] Allow strict opcodes in faddp patterns.

The performExtractVectorEltCombine transformation doesn't work correctly when D115352 is applied (it causes there to be an extra add instruction) which I need to look into.

Jan 31 2022, 8:13 AM · Restricted Project
john.brawn planned changes to D115352: [AArch64] Add mayRaiseFPException to appropriate instructions.

It looks like the machine combiner thing is a general problem with the AArch64 patterns not preserving MIFlags. I'll look into it.

Jan 31 2022, 5:23 AM · Restricted Project, Restricted Project

Jan 28 2022

john.brawn added a comment to D114946: [AArch64] Add instruction selection for strict FP.

The non-essential patterns are now D118485, D118487, D118489. There were also patterns involving load then scvtf/ucvft where it's not clear where they're tested and I haven't been able to trigger with a quick test, so I may just drop those.

Jan 28 2022, 9:53 AM · Restricted Project
john.brawn requested review of D118489: [AArch64] Allow strict opcodes in faddp patterns.
Jan 28 2022, 9:44 AM · Restricted Project
john.brawn requested review of D118487: [AArch64] Allow strict opcodes in indexed fmul and fma patterns.
Jan 28 2022, 9:40 AM · Restricted Project
john.brawn requested review of D118485: [AArch64] Allow strict opcodes in fp->int->fp patterns.
Jan 28 2022, 9:37 AM · Restricted Project
john.brawn updated the diff for D114946: [AArch64] Add instruction selection for strict FP.

Remove non-essential indexed mul/mla patterns that I missed in the last version.

Jan 28 2022, 6:37 AM · Restricted Project
john.brawn updated the diff for D114946: [AArch64] Add instruction selection for strict FP.

Removed patterns that aren't strictly required for isel, I'll create new patches for those.

Jan 28 2022, 5:51 AM · Restricted Project
john.brawn planned changes to D114946: [AArch64] Add instruction selection for strict FP.

I'll split off the parts that are purely patterns into separate patches.

Jan 28 2022, 4:03 AM · Restricted Project

Jan 27 2022

john.brawn added inline comments to D118044: [ARM] Undeprecate complex IT blocks.
Jan 27 2022, 8:21 AM · Restricted Project, Restricted Project
john.brawn updated the diff for D117795: [AArch64] Add some missing strict FP vector lowering.

The other parts of this have been split off into D118257, D118258, and D118259. I've also added some extra testing, as the clang test aarch64-neon-intrinsics-constrained wasn't actually testing all of the changes here.

Jan 27 2022, 5:19 AM · Restricted Project, Restricted Project

Jan 26 2022

john.brawn requested review of D118259: [AArch64] Adjust aarch64 constrained intrinsics tests and un-XFAIL.
Jan 26 2022, 8:58 AM · Restricted Project, Restricted Project
john.brawn requested review of D118258: [AArch64] Fix legalization of v1f64 strict_fsetcc and strict_fsetccs.
Jan 26 2022, 8:49 AM · Restricted Project
john.brawn requested review of D118257: [AArch64] Generate fcmps when appropriate for neon intrinsics.
Jan 26 2022, 8:47 AM · Restricted Project

Jan 24 2022

john.brawn updated the diff for D115620: [AArch64] Lowering and legalization of strict FP16.

Adjusted the aarch64-v8.2a-fp16-intrinsics-constrained.c test so it can be un-XFAILed, and also adjusted some formatting.

Jan 24 2022, 8:38 AM · Restricted Project, Restricted Project, Restricted Project

Jan 20 2022

john.brawn added a comment to D114946: [AArch64] Add instruction selection for strict FP.

Ping. I've also uploaded D117795 for fixes related to vector instructions.

Jan 20 2022, 8:51 AM · Restricted Project
john.brawn requested review of D117795: [AArch64] Add some missing strict FP vector lowering.
Jan 20 2022, 8:48 AM · Restricted Project, Restricted Project

Jan 19 2022

john.brawn committed rG32842c1bc9cd: [CMake] Add explicit return to GetErrcMessages test program (authored by john.brawn).
[CMake] Add explicit return to GetErrcMessages test program
Jan 19 2022, 9:43 AM

Jan 13 2022

john.brawn committed rG1fa4778d03c1: [CMake] Output the error message when get_errc_messages fails (authored by john.brawn).
[CMake] Output the error message when get_errc_messages fails
Jan 13 2022, 8:05 AM

Jan 12 2022

john.brawn planned changes to D115620: [AArch64] Lowering and legalization of strict FP16.

I need to look at and un-xfail test/CodeGen/aarch64-v8.2a-fp16-intrinsics-constrained.c.

Jan 12 2022, 8:04 AM · Restricted Project, Restricted Project, Restricted Project

Jan 7 2022

john.brawn updated the diff for D114946: [AArch64] Add instruction selection for strict FP.

Added some more addOperationAction lines to fix failures in tests. However looking at the tests there's some XFAILed tests that still fail due to more work needing to be done on handling of vector types. I'll do that in a separate patch.

Jan 7 2022, 8:56 AM · Restricted Project

Dec 14 2021

john.brawn committed rGdc9f65be4555: [AArch64][SVE] Fix handling of stack protection with SVE (authored by john.brawn).
[AArch64][SVE] Fix handling of stack protection with SVE
Dec 14 2021, 3:31 AM
john.brawn closed D111631: [AArch64][SVE] Fix handling of stack protection with SVE.
Dec 14 2021, 3:31 AM · Restricted Project

Dec 13 2021

john.brawn planned changes to D114946: [AArch64] Add instruction selection for strict FP.

I'm looking at the Clang.CodeGen::aarch64-neon-scalar-x-indexed-elem-constrained.c failure, and it looks like there are other constrained fp tests that are currently xfailed but maybe should actually pass with this patch.

Dec 13 2021, 8:55 AM · Restricted Project
john.brawn updated the diff for D111631: [AArch64][SVE] Fix handling of stack protection with SVE.

Adjusted based on review comments.

Dec 13 2021, 6:50 AM · Restricted Project