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 (268 w, 5 d)

Recent Activity

Fri, Apr 3

john.brawn committed rG4ad9ca0f9e1b: [ARM] Fix incorrect handling of big-endian vmov.i64 (authored by john.brawn).
[ARM] Fix incorrect handling of big-endian vmov.i64
Fri, Apr 3, 9:43 AM
john.brawn committed rGcd58fb632533: [ARM] Avoid pointless vrev of element-wise vmov (authored by john.brawn).
[ARM] Avoid pointless vrev of element-wise vmov
Fri, Apr 3, 9:43 AM
john.brawn committed rG966ae762229f: Run update_llc_test on test/CodeGen/ARM/vmov.ll (authored by john.brawn).
Run update_llc_test on test/CodeGen/ARM/vmov.ll
Fri, Apr 3, 9:42 AM
john.brawn closed D76515: [ARM] Fix incorrect handling of big-endian vmov.i64.
Fri, Apr 3, 9:42 AM · Restricted Project
john.brawn closed D76514: [ARM] Avoid pointless vrev of element-wise vmov.
Fri, Apr 3, 9:42 AM · Restricted Project
john.brawn updated the diff for D76515: [ARM] Fix incorrect handling of big-endian vmov.i64.

Rebase.

Fri, Apr 3, 8:35 AM · Restricted Project
john.brawn updated the diff for D76514: [ARM] Avoid pointless vrev of element-wise vmov.

Rebase and add adjust MVE masked load handling. Also make use of update_llc_checks - I tried it again and this time it did use a single CHECK when both little-endian and big-endian code generation are the same, so it looks like I was using it wrong somehow before (though I don't know in what way).

Fri, Apr 3, 8:35 AM · Restricted Project

Fri, Mar 27

john.brawn added inline comments to D76514: [ARM] Avoid pointless vrev of element-wise vmov.
Fri, Mar 27, 5:24 AM · Restricted Project

Thu, Mar 26

john.brawn added inline comments to D76514: [ARM] Avoid pointless vrev of element-wise vmov.
Thu, Mar 26, 11:55 AM · Restricted Project
john.brawn updated the diff for D76514: [ARM] Avoid pointless vrev of element-wise vmov.

Do this in ARMTargetLowering::PerformDAGCombine

Thu, Mar 26, 11:55 AM · Restricted Project
john.brawn added a comment to D31343: Add an attribute plugin example.

Release note added: https://reviews.llvm.org/rG0cff81cff05d

Thu, Mar 26, 8:38 AM · Restricted Project
john.brawn committed rG0cff81cff05d: Add a release note for attribute plugins (authored by john.brawn).
Add a release note for attribute plugins
Thu, Mar 26, 8:06 AM

Wed, Mar 25

john.brawn committed rGbc3f171090f6: Don't normalise CXX11/C2X attribute names to start with :: (authored by john.brawn).
Don't normalise CXX11/C2X attribute names to start with ::
Wed, Mar 25, 8:05 AM
john.brawn committed rG3f03c12a51be: Add an attribute plugin example (authored by john.brawn).
Add an attribute plugin example
Wed, Mar 25, 8:05 AM
john.brawn closed D76704: Don't normalise CXX11/C2X attribute names to start with ::.
Wed, Mar 25, 8:05 AM · Restricted Project
john.brawn closed D31343: Add an attribute plugin example.
Wed, Mar 25, 8:04 AM · Restricted Project
john.brawn accepted D76760: Do export symbols when LLVM_EXPORT_SYMBOLS_FOR_PLUGINS is on..

LGTM.

Wed, Mar 25, 7:32 AM · Restricted Project

Tue, Mar 24

john.brawn added a comment to D76514: [ARM] Avoid pointless vrev of element-wise vmov.

Would it make sense to do this as a DAG fold? That way we would get MVE for free too.

Tue, Mar 24, 9:07 AM · Restricted Project
john.brawn created D76704: Don't normalise CXX11/C2X attribute names to start with ::.
Tue, Mar 24, 7:29 AM · Restricted Project
john.brawn added a parent revision for D31343: Add an attribute plugin example: D76704: Don't normalise CXX11/C2X attribute names to start with ::.
Tue, Mar 24, 7:29 AM · Restricted Project
john.brawn added a child revision for D76704: Don't normalise CXX11/C2X attribute names to start with ::: D31343: Add an attribute plugin example.
Tue, Mar 24, 7:29 AM · Restricted Project
john.brawn updated the diff for D31343: Add an attribute plugin example.

A few small changes:

  • Don't start C++11 spelling with :: (changes to name normalisation to allow this are in D76704)
  • Don't check that the Decl is null in diagAppertainsToDecl
  • Return AttributeNotApplied on errors in handleDeclAttribute
Tue, Mar 24, 7:29 AM · Restricted Project

Mon, Mar 23

john.brawn updated the diff for D76515: [ARM] Fix incorrect handling of big-endian vmov.i64.

Apply clang-format changes.

Mon, Mar 23, 8:41 AM · Restricted Project
john.brawn committed rGfa0320dd8d5a: Add ParsedAttrInfo::handleDeclAttribute (authored by john.brawn).
Add ParsedAttrInfo::handleDeclAttribute
Mon, Mar 23, 6:31 AM
john.brawn closed D31342: Add ParsedAttrInfo::handleDeclAttribute.
Mon, Mar 23, 6:31 AM · Restricted Project

Fri, Mar 20

john.brawn added a child revision for D76514: [ARM] Avoid pointless vrev of element-wise vmov: D76515: [ARM] Fix incorrect handling of big-endian vmov.i64.
Fri, Mar 20, 10:49 AM · Restricted Project
john.brawn added a parent revision for D76515: [ARM] Fix incorrect handling of big-endian vmov.i64: D76514: [ARM] Avoid pointless vrev of element-wise vmov.
Fri, Mar 20, 10:49 AM · Restricted Project
john.brawn created D76515: [ARM] Fix incorrect handling of big-endian vmov.i64.
Fri, Mar 20, 10:49 AM · Restricted Project
john.brawn created D76514: [ARM] Avoid pointless vrev of element-wise vmov.
Fri, Mar 20, 10:19 AM · Restricted Project

Wed, Mar 18

john.brawn updated the diff for D31342: Add ParsedAttrInfo::handleDeclAttribute.

Use an enum for the return value.

Wed, Mar 18, 9:47 AM · Restricted Project
john.brawn updated the diff for D31343: Add an attribute plugin example.

Updated to match the changes to D31342

Wed, Mar 18, 9:47 AM · Restricted Project

Tue, Mar 17

john.brawn committed rGc09368313c23: [StackProtector] Catch direct out-of-bounds when checking address-takenness (authored by john.brawn).
[StackProtector] Catch direct out-of-bounds when checking address-takenness
Tue, Mar 17, 5:43 AM
john.brawn closed D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.
Tue, Mar 17, 5:43 AM · Restricted Project

Mon, Mar 16

john.brawn updated the diff for D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.

Adjust GEP handling to reduce AllocSize by Offset instead of using the result size.

Mon, Mar 16, 7:35 AM · Restricted Project
john.brawn added inline comments to D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.
Mon, Mar 16, 6:59 AM · Restricted Project

Fri, Mar 13

john.brawn updated the diff for D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.

Use the allocation size instead of the allocation type.

Fri, Mar 13, 9:06 AM · Restricted Project

Thu, Mar 12

john.brawn updated the diff for D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.

Adjusted to avoid looking through pointer types by passing around the allocated type and checking it against the size of memory accesses. Also correctly handle GEPs where the addressed member is partially outside of the allocated object.

Thu, Mar 12, 10:18 AM · Restricted Project

Wed, Mar 11

john.brawn added inline comments to D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.
Wed, Mar 11, 9:04 AM · Restricted Project
john.brawn updated the diff for D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.

Added bitcast handling.

Wed, Mar 11, 7:24 AM · Restricted Project
john.brawn added inline comments to D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.
Wed, Mar 11, 7:24 AM · Restricted Project

Tue, Mar 10

john.brawn added inline comments to D31342: Add ParsedAttrInfo::handleDeclAttribute.
Tue, Mar 10, 10:19 AM · Restricted Project
john.brawn updated the diff for D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.

Removed loop tests.

Tue, Mar 10, 8:06 AM · Restricted Project
john.brawn added a comment to D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.

Changes look good, but there's still the question about whether you really need the loop tests.

Tue, Mar 10, 5:48 AM · Restricted Project

Mon, Mar 9

john.brawn updated the diff for D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.

Update based on review comments.

Mon, Mar 9, 10:13 AM · Restricted Project
john.brawn added inline comments to D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.
Mon, Mar 9, 10:13 AM · Restricted Project

Mar 6 2020

john.brawn added inline comments to D31342: Add ParsedAttrInfo::handleDeclAttribute.
Mar 6 2020, 10:28 AM · Restricted Project
john.brawn updated the diff for D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.

Use getTypeAllocSize, apply clang-format.

Mar 6 2020, 5:31 AM · Restricted Project
john.brawn added inline comments to D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.
Mar 6 2020, 5:31 AM · Restricted Project

Mar 5 2020

john.brawn created D75695: [StackProtector] Catch direct out-of-bounds when checking address-takenness.
Mar 5 2020, 10:22 AM · Restricted Project

Mar 4 2020

john.brawn committed rG2bb3fb05e20e: Handle PluginAttrInstances using ManagedStatic (authored by john.brawn).
Handle PluginAttrInstances using ManagedStatic
Mar 4 2020, 7:20 AM

Mar 3 2020

john.brawn abandoned D39960: [InstCombine] In foldSelectOpOp reuse existing selects if present.

Abandoning this old patch (the underlying problem was solved by https://reviews.llvm.org/rL348496 which made GVN PRE not introduce the problematic phis in the first place).

Mar 3 2020, 6:38 AM · Restricted Project
john.brawn abandoned D50723: [SimplifyCFG] Delay phi-to-select until the end of module simplification.

Abandoning this old patch that I have no intention of doing any further work on.

Mar 3 2020, 6:06 AM · Restricted Project
john.brawn added a comment to D31343: Add an attribute plugin example.

I've been looking into attribute merging, and as far as I can tell there's two things going on:

  • In SemaDeclAttr.cpp, the various handleXyzAttr functions may call mergeXyzAttr to handle clashes with other attributes within the same declaration.
  • In SemaDecl.cpp, several functions call mergeDeclAttributes, which calls mergeXyzAttr, to handle clashes with attributes in a previous declaration of the same thing.
Mar 3 2020, 6:02 AM · Restricted Project

Mar 2 2020

john.brawn added inline comments to D31343: Add an attribute plugin example.
Mar 2 2020, 10:20 AM · Restricted Project
john.brawn updated the diff for D31343: Add an attribute plugin example.

Rebased and added link in documentation.

Mar 2 2020, 10:20 AM · Restricted Project
john.brawn added inline comments to D31342: Add ParsedAttrInfo::handleDeclAttribute.
Mar 2 2020, 10:20 AM · Restricted Project
john.brawn updated the diff for D31342: Add ParsedAttrInfo::handleDeclAttribute.

Update based on review comments.

Mar 2 2020, 10:20 AM · Restricted Project
john.brawn added a comment to D74777: [VFS][WIP] More consistent handling of hybrid paths of Windows+Posix styles.

Doing a clean checkout and build on Linux using the following commands I get the same test error:

Mar 2 2020, 6:33 AM · Restricted Project
john.brawn added a comment to D74777: [VFS][WIP] More consistent handling of hybrid paths of Windows+Posix styles.

Running that command (with this patch applied to trunk revision 56ac9d30d35632969baa39829ebc8465ed5937ef) I get

Note: Google Test filter = VFSFromYAMLTest.MappedFiles
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from VFSFromYAMLTest
[ RUN      ] VFSFromYAMLTest.MappedFiles
C:\Users\johbra01\llvm-project\llvm\unittests\Support\VirtualFileSystemTest.cpp(1411): error: Value of: S.getError()
  Actual: true
Expected: false
[  FAILED  ] VFSFromYAMLTest.MappedFiles (30 ms)
[----------] 1 test from VFSFromYAMLTest (94 ms total)
Mar 2 2020, 6:16 AM · Restricted Project

Feb 27 2020

john.brawn committed rG75d4d4bd028f: Add an attribute registry so plugins can add attributes (authored by john.brawn).
Add an attribute registry so plugins can add attributes
Feb 27 2020, 9:53 AM
john.brawn closed D31338: Move ParsedAttrInfos into a registry and point to one in ParsedAttr.
Feb 27 2020, 9:52 AM · Restricted Project
john.brawn added inline comments to D31343: Add an attribute plugin example.
Feb 27 2020, 9:45 AM · Restricted Project
john.brawn updated the diff for D31343: Add an attribute plugin example.

Update based on review comments.

Feb 27 2020, 9:41 AM · Restricted Project
john.brawn updated the diff for D31342: Add ParsedAttrInfo::handleDeclAttribute.

Update based on review comments.

Feb 27 2020, 9:33 AM · Restricted Project
john.brawn added inline comments to D31342: Add ParsedAttrInfo::handleDeclAttribute.
Feb 27 2020, 8:25 AM · Restricted Project

Feb 26 2020

john.brawn updated the diff for D31338: Move ParsedAttrInfos into a registry and point to one in ParsedAttr.

This has been rewritten so that the registry is only used for attributes added by plugins, and everything else continues as before. This also removes the strange dependency I'd previously introduced, where Attributes.cpp (in libclangBasic.so) declared and used the registry but ParsedAttr.cpp (in libclangSema.so) populated it - now the registry is declared and used solely within ParsedAttr.cpp.

Feb 26 2020, 9:50 AM · Restricted Project
john.brawn committed rG590dc8d02cd7: Use virtual functions in ParsedAttrInfo instead of function pointers (authored by john.brawn).
Use virtual functions in ParsedAttrInfo instead of function pointers
Feb 26 2020, 9:28 AM
john.brawn closed D31337: Use virtual functions in ParsedAttrInfo instead of function pointers.
Feb 26 2020, 9:28 AM · Restricted Project
john.brawn added inline comments to D31337: Use virtual functions in ParsedAttrInfo instead of function pointers.
Feb 26 2020, 6:45 AM · Restricted Project

Feb 19 2020

john.brawn added a comment to D74777: [VFS][WIP] More consistent handling of hybrid paths of Windows+Posix styles.

This causes a lot of test failures in llvm/unittests/Support/VirtualFileSystemTest.cpp. A lot of them use //root as a root directory, and e.g. looking at the MappedFiles test what's happening is:

  • //root/foo/bar/a is added to the DummyFileSystem
  • getFromYAMLString used on a YAML string that maps //root/file1 to //root/foo/bar/a
  • The //root/foo/bar/a is canonicalized to /root/foo/bar/a
  • O->status("//root/file1") matches the //root/file1 in the YAML, but the subsequent lookup tries to find /root/foo/bar/a which doesn't match the //root/foo/bar/a that was added to the DummyFileSystem so we get a "file not found" error
Feb 19 2020, 6:51 AM · Restricted Project

Feb 18 2020

john.brawn added a comment to D73201: [FPEnv][AArch64] Add lowering and instruction selection for STRICT_FP_ROUND.

A user reported running into asserts when compiling musl for aarch64 with -frounding-math.
It appears to be fixed (well, at least it doesn't assert..) by this patch. Should it be cherry-picked to the 10.x branch?

Feb 18 2020, 5:54 AM · Restricted Project

Feb 17 2020

john.brawn committed rG594a89f7270d: [FPEnv][ARM] Don't call mutateStrictFPToFP when lowering (authored by john.brawn).
[FPEnv][ARM] Don't call mutateStrictFPToFP when lowering
Feb 17 2020, 10:21 AM
john.brawn closed D74726: [FPEnv][ARM] Don't call mutateStrictFPToFP when lowering.
Feb 17 2020, 10:21 AM · Restricted Project
john.brawn created D74726: [FPEnv][ARM] Don't call mutateStrictFPToFP when lowering.
Feb 17 2020, 9:35 AM · Restricted Project

Feb 14 2020

john.brawn accepted D73032: [DependenceAnalysis] Memory dependence analysis internal caching mechanism is broken in presence of TBAA (PR42733)..

LGTM, though with a suggestion for adjusting a comment to be clearer.

Feb 14 2020, 10:03 AM · Restricted Project
john.brawn added inline comments to D74597: [AArch64][FPenv] Update chain of int to fp conversion.
Feb 14 2020, 4:18 AM · Restricted Project

Feb 13 2020

john.brawn added a comment to D73032: [DependenceAnalysis] Memory dependence analysis internal caching mechanism is broken in presence of TBAA (PR42733)..

It looks like the change that introduced isInvariantLoad was reverted in commit 446acafb82b5c116b6c94c11d4ac4db7641fa58d, so it's a bit hard to review this with current trunk. Is there any problem with memory dependence analysis as it is, or is there a problem only with isInvariantLoad?

Feb 13 2020, 9:01 AM · Restricted Project
john.brawn committed rG0ec57972967d: [ARM] Fix infinite loop when lowering STRICT_FP_EXTEND (authored by john.brawn).
[ARM] Fix infinite loop when lowering STRICT_FP_EXTEND
Feb 13 2020, 8:15 AM
john.brawn closed D74559: [ARM] Fix infinite loop when lowering STRICT_FP_EXTEND.
Feb 13 2020, 8:15 AM · Restricted Project
john.brawn added a comment to D74559: [ARM] Fix infinite loop when lowering STRICT_FP_EXTEND.

Perhaps I have missed it, but are the test that have been changed here actually doing any 32 -> 64 converts?

Feb 13 2020, 7:56 AM · Restricted Project
john.brawn created D74559: [ARM] Fix infinite loop when lowering STRICT_FP_EXTEND.
Feb 13 2020, 7:12 AM · Restricted Project
john.brawn added a comment to D74488: [VFS] Fix vfsoverlay assertion due to RedirectingFileSystem path handling..

I've attached a standalone example:


This should be extracted to c:\work\example, and I see it hitting an assertion using clang-scan-deps built from commit 81cebfd0080e3873d0cef5ee5215b8c97332ff96 using the command-line "clang-scan-deps.exe -compilation-database example.cdb"

Feb 13 2020, 4:55 AM · Restricted Project

Feb 12 2020

john.brawn added a comment to D74488: [VFS] Fix vfsoverlay assertion due to RedirectingFileSystem path handling..

I'll look at this more later today, but here are my initial thoughts.

ClangScanDeps/vfsoverlay test can fail on Windows

"can fail"? Are you saying the results are flaky? I haven't seen this test fail.

I never saw a situation where an external path could start with C:/ rather than C:\. The keys for VFS are sometimes weird hybrids of Posix and Windows styles, but I can't figure out how a VFS lookup would result in an absolute path with that kind of prefix.

Feb 12 2020, 10:24 AM · Restricted Project
john.brawn created D74488: [VFS] Fix vfsoverlay assertion due to RedirectingFileSystem path handling..
Feb 12 2020, 8:33 AM · Restricted Project

Feb 4 2020

john.brawn added inline comments to D31338: Move ParsedAttrInfos into a registry and point to one in ParsedAttr.
Feb 4 2020, 10:12 AM · Restricted Project
john.brawn updated the diff for D31337: Use virtual functions in ParsedAttrInfo instead of function pointers.

Move DefaultParsedAttrInfo out of file scope, and move custom appertains-to function generation out of the loop in EmitClangAttrParsedAttrImpl so we only need to use one output stream.

Feb 4 2020, 9:53 AM · Restricted Project
john.brawn added inline comments to D31337: Use virtual functions in ParsedAttrInfo instead of function pointers.
Feb 4 2020, 8:22 AM · Restricted Project

Feb 3 2020

john.brawn committed rG68cf574857c8: [FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC (authored by john.brawn).
[FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC
Feb 3 2020, 6:50 AM
john.brawn closed D73784: [FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC.
Feb 3 2020, 6:50 AM · Restricted Project
john.brawn added inline comments to D73784: [FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC.
Feb 3 2020, 5:53 AM · Restricted Project
john.brawn committed rGb37d59353f69: [FPEnv][ARM] Add lowering of STRICT_FSETCC and STRICT_FSETCCS (authored by john.brawn).
[FPEnv][ARM] Add lowering of STRICT_FSETCC and STRICT_FSETCCS
Feb 3 2020, 5:02 AM
john.brawn closed D73194: [FPEnv][ARM] Add lowering of STRICT_FSETCC and STRICT_FSETCCS.
Feb 3 2020, 5:02 AM · Restricted Project

Jan 31 2020

john.brawn added inline comments to D73784: [FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC.
Jan 31 2020, 6:44 AM · Restricted Project
john.brawn created D73784: [FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC.
Jan 31 2020, 6:12 AM · Restricted Project
john.brawn added a comment to D73194: [FPEnv][ARM] Add lowering of STRICT_FSETCC and STRICT_FSETCCS.

Even when adding SDNPHasChain to the node description?

Jan 31 2020, 5:38 AM · Restricted Project

Jan 30 2020

john.brawn added a comment to D73194: [FPEnv][ARM] Add lowering of STRICT_FSETCC and STRICT_FSETCCS.

Is it possible for arm_cmpfpe have both a chain and a glue? I presume it's the cmp that would need the chain, not anything else that gets expanded?

Jan 30 2020, 9:59 AM · Restricted Project
john.brawn committed rG0bb9a27c9895: [FPEnv][AArch64] Add lowering and instruction selection for strict conversions (authored by john.brawn).
[FPEnv][AArch64] Add lowering and instruction selection for strict conversions
Jan 30 2020, 5:55 AM
john.brawn closed D73625: [FPEnv][AArch64] Add lowering and instruction selection for strict conversions.
Jan 30 2020, 5:54 AM · Restricted Project
john.brawn committed rG258d8dd76afd: [FPEnv][AArch64] Add lowering and instruction selection for STRICT_FP_ROUND (authored by john.brawn).
[FPEnv][AArch64] Add lowering and instruction selection for STRICT_FP_ROUND
Jan 30 2020, 4:58 AM
john.brawn closed D73201: [FPEnv][AArch64] Add lowering and instruction selection for STRICT_FP_ROUND.
Jan 30 2020, 4:58 AM · Restricted Project