Page MenuHomePhabricator

ostannard (Oliver Stannard (Linaro))
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 11 2019, 6:15 AM (19 w, 6 h)

Recent Activity

Sat, Aug 17

ostannard accepted D66010: [ARM] MVE sext costs.

LGTM

Sat, Aug 17, 4:59 AM · Restricted Project

Fri, Aug 16

ostannard requested changes to D66010: [ARM] MVE sext costs.
Fri, Aug 16, 5:20 AM · Restricted Project
ostannard accepted D66008: [ARM] MVE sext of a load is also free..

LGTM

Fri, Aug 16, 5:15 AM · Restricted Project
ostannard accepted D66009: [ARM] Don't pretend we know how to generate MVE VLDn.

LGTM with a minor style nit.

Fri, Aug 16, 5:13 AM · Restricted Project
ostannard accepted D66285: [ARM] Correct register for narrowing and widening MVE loads and stores..

LGTM, thanks

Fri, Aug 16, 5:13 AM · Restricted Project
ostannard added inline comments to D66285: [ARM] Correct register for narrowing and widening MVE loads and stores..
Fri, Aug 16, 2:20 AM · Restricted Project

Thu, Aug 15

ostannard accepted D66222: [ARM] Fix alignment checks for BE VLDRH.

LGTM

Thu, Aug 15, 2:40 AM · Restricted Project
ostannard added a comment to rL367389: [ARM][ParallelDSP] Convert to function pass.

Hi Sam, this patch seems to have caused a correctness regression in the telecomm-gsm and toast benchmarks when compiled for Arm. Logs at http://lab.llvm.org:8011/builders/clang-native-arm-lnt-perf/builds/170/. Would you mind looking into this?

Thu, Aug 15, 2:10 AM

Wed, Aug 14

ostannard added inline comments to D66214: [ARM] Use MQPR not QPR for MVE registers.
Wed, Aug 14, 6:05 AM · Restricted Project

Fri, Aug 9

ostannard accepted D65957: [ARM] Fix detection of duplicates when parsing reg list operands.

LGTM

Fri, Aug 9, 2:31 AM · Restricted Project
ostannard accepted D65873: [ARM] Fix encoding of APSR in CLRM instruction.

LGTM

Fri, Aug 9, 2:13 AM · Restricted Project

Mon, Aug 5

ostannard committed rG8ed8353fc45e: Reland: Fix and test inter-procedural register allocation for ARM (authored by ostannard).
Reland: Fix and test inter-procedural register allocation for ARM
Mon, Aug 5, 2:05 AM
ostannard committed rL367819: Reland: Fix and test inter-procedural register allocation for ARM.
Reland: Fix and test inter-procedural register allocation for ARM
Mon, Aug 5, 2:05 AM

Fri, Aug 2

ostannard accepted D65581: [ARM] MVE big endian bitcasts.

LGTM

Fri, Aug 2, 3:49 AM · Restricted Project
ostannard committed rG4b7239ebaca7: [IPRA][ARM] Disable no-CSR optimisation for ARM (authored by ostannard).
[IPRA][ARM] Disable no-CSR optimisation for ARM
Fri, Aug 2, 3:25 AM
ostannard committed rGf6b00c279a55: Fix and test inter-procedural register allocation for ARM (authored by ostannard).
Fix and test inter-procedural register allocation for ARM
Fri, Aug 2, 3:25 AM
ostannard committed rL367670: [IPRA][ARM] Disable no-CSR optimisation for ARM.
[IPRA][ARM] Disable no-CSR optimisation for ARM
Fri, Aug 2, 3:23 AM
ostannard closed D64910: [IPRA][ARM] Disable no-CSR optimisation for ARM.
Fri, Aug 2, 3:23 AM · Restricted Project
ostannard committed rL367669: Fix and test inter-procedural register allocation for ARM.
Fix and test inter-procedural register allocation for ARM
Fri, Aug 2, 3:22 AM
ostannard closed D64908: Fix and test inter-procedural register allocation for ARM.
Fri, Aug 2, 3:22 AM · Restricted Project
ostannard updated the diff for D64908: Fix and test inter-procedural register allocation for ARM.
  • Switch to using ArrayRef instead of null-terminated array
Fri, Aug 2, 2:55 AM · Restricted Project
ostannard updated the diff for D64910: [IPRA][ARM] Disable no-CSR optimisation for ARM.
Fri, Aug 2, 2:55 AM · Restricted Project
ostannard added inline comments to D64908: Fix and test inter-procedural register allocation for ARM.
Fri, Aug 2, 2:45 AM · Restricted Project

Thu, Aug 1

ostannard accepted D65448: [AArch64] Implement initial SVE calling convention support.

LGTM, thanks

Thu, Aug 1, 9:15 AM · Restricted Project
ostannard added a reviewer for D64908: Fix and test inter-procedural register allocation for ARM: dmgreen.

Ping.

Thu, Aug 1, 9:09 AM · Restricted Project
ostannard added a reviewer for D64910: [IPRA][ARM] Disable no-CSR optimisation for ARM: dmgreen.

Ping.

Thu, Aug 1, 9:08 AM · Restricted Project
ostannard updated the diff for D63932: [GlobalDCE] Dead Virtual Function Elimination.
  • Add LTOPostLink metadata, instead of internalising vcall visibility at LTO time
Thu, Aug 1, 9:07 AM · Restricted Project, Restricted Project
ostannard added a comment to D63932: [GlobalDCE] Dead Virtual Function Elimination.

Partial linking will indeed prevent dropping the virtual functions, but it should not prevent clearing the pointer to the virtual function in the vtable. The linker should then be able to drop the virtual function body as part of --gc-sections during the final link.

Thu, Aug 1, 7:08 AM · Restricted Project, Restricted Project

Wed, Jul 31

ostannard accepted D65505: [ARM] Reject CSEL instructions with invalid operands.

LGTM

Wed, Jul 31, 6:59 AM · Restricted Project
ostannard added a comment to D63932: [GlobalDCE] Dead Virtual Function Elimination.
  • Take the example from my earlier message, give the "main executable" and "DSO" hidden visibility, build the "main executable" with LTO and the "DSO" without LTO, and statically link them both into the same executable. We run into the same problem where the Plugin1 vtable is potentially not referenced and thus misoptimised. Yes, this is a violation of the LTO visibility rules, but the example shows that we only detect it sometimes. I think that if we did want to detect cases where the LTO visibility rules are clearly being violated, the outcome should be to issue a diagnostic and not to silently proceed with optimizations disabled, since the violation might be masking other undetected issues. That really seems orthogonal to this patch, though.
Wed, Jul 31, 5:49 AM · Restricted Project, Restricted Project
ostannard accepted D65175: [ARM] Transform compare of masked value to shift on Thumb1..

LGTM, thanks

Wed, Jul 31, 3:03 AM · Restricted Project
ostannard accepted D65364: AArch64: Add a tagged-globals backend feature..

LGTM

Wed, Jul 31, 2:17 AM · Restricted Project
ostannard accepted D65465: SelectionDAG, MI, AArch64: Widen target flags fields/arguments from unsigned char to unsigned..

LGTM

Wed, Jul 31, 2:08 AM · Restricted Project

Tue, Jul 30

ostannard accepted D65442: [AArch64] Update MTE system register encodings.

LGTM

Tue, Jul 30, 10:04 AM · Restricted Project
ostannard updated the diff for D63932: [GlobalDCE] Dead Virtual Function Elimination.
  • Rebase
  • Don't emit llvm.assume when not necessary (we already weren't checking for it's presence in GlobalDCE)
  • s/"public"/"default"/ in IR docs
Tue, Jul 30, 9:45 AM · Restricted Project, Restricted Project
ostannard added a comment to D65448: [AArch64] Implement initial SVE calling convention support.

Out of interest, why does the ABI allow functions which don't have SVE args/returns to clobber the P registers? For Z registers, we've got to be compatible with old code which only needed to save the bottom half of v8-v15, but there should be no existing code which uses P registers, so we could enforce a mixture of callee- and caller-saved P registers for all code. Existing code is already compliant with this, because it doesn't touch the P regs.

Tue, Jul 30, 9:40 AM · Restricted Project
ostannard added a reviewer for D65448: [AArch64] Implement initial SVE calling convention support: ostannard.
Tue, Jul 30, 9:17 AM · Restricted Project
ostannard added inline comments to D65364: AArch64: Add a tagged-globals backend feature..
Tue, Jul 30, 8:16 AM · Restricted Project
ostannard added a comment to D63932: [GlobalDCE] Dead Virtual Function Elimination.

In that example, with everything having default ELF visibility, all of the vtables will get vcall_visibility public, which can't be optimised by VFE, and won't ever be relaxed to one of the tighter visibilities.

Tue, Jul 30, 7:04 AM · Restricted Project, Restricted Project

Mon, Jul 29

ostannard added a comment to D65351: [ARM] Lower "(x<<c) > 0x80000000U" to "lsls" on Thumb1..

Would this also be profitable for Thumb2?

Mon, Jul 29, 7:36 AM · Restricted Project

Thu, Jul 25

ostannard accepted D63707: [AArch64] Define ETE and TRBE system registers.

Ok, but please add a comment, probably in AArch64.td, explaining this, and that turning it on by default is only temporary.

Thu, Jul 25, 5:13 AM · Restricted Project
ostannard added a comment to D64910: [IPRA][ARM] Disable no-CSR optimisation for ARM.

Ping

Thu, Jul 25, 3:27 AM · Restricted Project
ostannard added a comment to D64908: Fix and test inter-procedural register allocation for ARM.

Ping

Thu, Jul 25, 3:27 AM · Restricted Project
ostannard accepted D64759: [CodeGen] Don't resolve the stack protector frame accesses until PEI.

This patch LGTM now, and +1 to the idea of documenting the attacks we do/don't expect to be able to defend against.

Thu, Jul 25, 3:14 AM · Restricted Project

Wed, Jul 24

ostannard added inline comments to D64759: [CodeGen] Don't resolve the stack protector frame accesses until PEI.
Wed, Jul 24, 6:19 AM · Restricted Project
ostannard added inline comments to D65175: [ARM] Transform compare of masked value to shift on Thumb1..
Wed, Jul 24, 1:56 AM · Restricted Project

Jul 22 2019

ostannard committed rL366669: [IPRA][ARM] Make use of the "returned" parameter attribute.
[IPRA][ARM] Make use of the "returned" parameter attribute
Jul 22 2019, 3:25 AM
ostannard committed rG6771a89fa01f: [IPRA][ARM] Make use of the "returned" parameter attribute (authored by ostannard).
[IPRA][ARM] Make use of the "returned" parameter attribute
Jul 22 2019, 1:58 AM
ostannard closed D64986: [IPRA][ARM] Make use of the "returned" parameter attribute.
Jul 22 2019, 1:51 AM · Restricted Project
ostannard added a comment to D63932: [GlobalDCE] Dead Virtual Function Elimination.

Ping.

Jul 22 2019, 1:48 AM · Restricted Project, Restricted Project
ostannard accepted D64406: [ARM][AArch64] Cortex-A65AE, Neoverse E1 and Neoverse N1 support.

LGTM

Jul 22 2019, 1:22 AM · Restricted Project

Jul 19 2019

ostannard accepted D64996: [libunwind][ARM] Fix loading FP registers on big-endian targets.

LGTM

Jul 19 2019, 8:18 AM · Restricted Project, Restricted Project
ostannard created D64986: [IPRA][ARM] Make use of the "returned" parameter attribute.
Jul 19 2019, 3:48 AM · Restricted Project
ostannard committed rG8780c0dda21c: Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions (authored by ostannard).
Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions
Jul 19 2019, 3:39 AM
ostannard committed rL366562: Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions.
Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions
Jul 19 2019, 3:38 AM
ostannard closed D64929: Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions.
Jul 19 2019, 3:38 AM · Restricted Project
ostannard closed D64909: [IPRA] Don't rely on non-exact function definitions.

https://reviews.llvm.org/rL366557

Jul 19 2019, 3:20 AM · Restricted Project
ostannard committed rG0ed7732671b2: [IPRA] Don't rely on non-exact function definitions (authored by ostannard).
[IPRA] Don't rely on non-exact function definitions
Jul 19 2019, 3:00 AM
ostannard committed rL366557: [IPRA] Don't rely on non-exact function definitions.
[IPRA] Don't rely on non-exact function definitions
Jul 19 2019, 2:59 AM
ostannard accepted D64416: [AArch64] Add support for Transactional Memory Extension (TME).

LGTM

Jul 19 2019, 2:57 AM · Restricted Project

Jul 18 2019

ostannard created D64929: Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions.
Jul 18 2019, 9:15 AM · Restricted Project
ostannard added inline comments to D64406: [ARM][AArch64] Cortex-A65AE, Neoverse E1 and Neoverse N1 support.
Jul 18 2019, 8:07 AM · Restricted Project
ostannard updated the diff for D64910: [IPRA][ARM] Disable no-CSR optimisation for ARM.

Split into separate functions for safe/profitable.

Jul 18 2019, 6:24 AM · Restricted Project
ostannard added inline comments to D64908: Fix and test inter-procedural register allocation for ARM.
Jul 18 2019, 5:46 AM · Restricted Project
ostannard created D64910: [IPRA][ARM] Disable no-CSR optimisation for ARM.
Jul 18 2019, 3:20 AM · Restricted Project
ostannard created D64909: [IPRA] Don't rely on non-exact function definitions.
Jul 18 2019, 3:15 AM · Restricted Project
ostannard created D64908: Fix and test inter-procedural register allocation for ARM.
Jul 18 2019, 2:58 AM · Restricted Project
ostannard accepted D64870: [ARM][DAGCOMBINE][FIX] PerformVMOVRRDCombine.

LGTM

Jul 18 2019, 1:51 AM · Restricted Project

Jul 16 2019

ostannard accepted D64172: Basic codegen for MTE stack tagging..

LGTM, thanks

Jul 16 2019, 2:03 AM · Restricted Project
ostannard accepted D64173: Basic MTE stack tagging instrumentation..

LGTM, thanks

Jul 16 2019, 1:55 AM · Restricted Project

Jul 12 2019

ostannard added a comment to D58617: Implement deduction guides for <unordered_set>.

Two of the new tests are failing on the Arm and AArch64 buildbots - see for example http://lab.llvm.org:8011/builders/libcxx-libcxxabi-libunwind-armv7-linux/builds/946/steps/test.libcxx/logs/FAIL%3A%20libc%2B%2B%3A%3Adeduct.fail.cpp

Jul 12 2019, 1:43 AM · Restricted Project

Jul 11 2019

ostannard accepted D64416: [AArch64] Add support for Transactional Memory Extension (TME).

LGTM, thanks.

Jul 11 2019, 6:18 AM · Restricted Project

Jul 10 2019

ostannard added a comment to rL365252: Force the LibcxxAndABIBuilder to use libc++abi when building libc++.

All of the libcxx bots are currently failing with this compile error:

libcxx/src/exception.cpp:14:12: fatal error: 'cxxabi.h' file not found
Jul 10 2019, 9:37 AM
ostannard added a comment to D63932: [GlobalDCE] Dead Virtual Function Elimination.

Ping.

Jul 10 2019, 6:12 AM · Restricted Project, Restricted Project
ostannard accepted D64167: [TargetLowering] support BlockAddress as "i" inline asm constraint.
Jul 10 2019, 6:06 AM · Restricted Project
ostannard added a comment to rGba9eb4831842: Reland "[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt..

In case you haven't noticed it yet, the aarch64 bots are now failing with an undefined symbol __tsan::__interception::real_setjmp: http://lab.llvm.org:8011/builders/clang-cmake-aarch64-lld/builds/6879/steps/ninja%20check%201/logs/stdio

Jul 10 2019, 3:22 AM
ostannard added inline comments to D64406: [ARM][AArch64] Cortex-A65AE, Neoverse E1 and Neoverse N1 support.
Jul 10 2019, 3:13 AM · Restricted Project
ostannard accepted D64210: [NFC][AArch64] Fix vector vsqadd intrinsics operands.
Jul 10 2019, 2:34 AM · Restricted Project, Restricted Project
ostannard accepted D64211: [AArch64] Fix vector vuqadd intrinsics operands.
Jul 10 2019, 2:34 AM · Restricted Project, Restricted Project
ostannard added inline comments to D63707: [AArch64] Define ETE and TRBE system registers.
Jul 10 2019, 2:21 AM · Restricted Project
ostannard requested changes to D64416: [AArch64] Add support for Transactional Memory Extension (TME).
Jul 10 2019, 2:12 AM · Restricted Project
ostannard added inline comments to D63707: [AArch64] Define ETE and TRBE system registers.
Jul 10 2019, 1:28 AM · Restricted Project
ostannard added a comment to D64172: Basic codegen for MTE stack tagging..

What about the tests for large stack frames?

Jul 10 2019, 1:18 AM · Restricted Project

Jul 9 2019

ostannard accepted D64402: [libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets.

Actually, I think cross-unwinding with EHABI is already completely broken, because we are doing raw memory accesses (not using the AddressSpace), so this is fine.

Jul 9 2019, 8:24 AM · Restricted Project, Restricted Project
ostannard requested changes to D64402: [libunwind] Fix Unwind-EHABI.cpp:getByte on big-endian targets.

This won't work for cross-unwinding between a big and little endian system, I think it would be better to load the whole word, and mask out the correct byte.

Jul 9 2019, 7:55 AM · Restricted Project, Restricted Project
ostannard added a comment to rL364700: [TSan] Attempt to fix linker error for Linux on AArch64.

Thanks, that's fixed the link errors, but we are now seeing some failures in TSan tests (http://lab.llvm.org:8011/builders/clang-cmake-aarch64-lld/builds/6874, http://lab.llvm.org:8011/builders/clang-cmake-aarch64-lld/builds/6874/steps/ninja%20check%201/logs/FAIL%3A%20ThreadSanitizer-aarch64%3A%3A%20fiber_longjmp.cc). Could these be related to one of your patches?

Jul 9 2019, 1:50 AM

Jul 8 2019

ostannard accepted D64169: ARM MTE stack sanitizer..

LGTM with one minor nit.

Jul 8 2019, 7:26 AM · Restricted Project, Restricted Project
ostannard added inline comments to D64173: Basic MTE stack tagging instrumentation..
Jul 8 2019, 7:19 AM · Restricted Project
ostannard accepted D64048: [TargetParser][ARM] Account dependencies when processing target features.
Jul 8 2019, 5:37 AM · Restricted Project, Restricted Project
ostannard accepted D63936: [clang][Driver][ARM] Favor -mfpu over default CPU features.
Jul 8 2019, 5:37 AM · Restricted Project, Restricted Project
ostannard added a comment to rL364700: [TSan] Attempt to fix linker error for Linux on AArch64.

We are still seeing liner errors in the AArch64 build bots (http://lab.llvm.org:8011/builders/clang-cmake-aarch64-full/builds/7487/steps/ninja%20check%202/logs/stdio), are you looking into this? If there's not a quick, obvious fix, it would be better to revert the original commit to get the bots back to green.

Jul 8 2019, 2:44 AM
ostannard added a comment to D63793: Treat the range of representable values of floating-point types as [-inf, +inf] not as [-max, +max]..

There are a number of buildbot failures which look related to this, e.g.

Jul 8 2019, 2:09 AM · Restricted Project, Restricted Project

Jul 5 2019

ostannard added a comment to D64172: Basic codegen for MTE stack tagging..

I think this could do with some more tests covering different stack layouts. In particular, we should check that we do the correct thing for functions which use frame or base pointers, and when large stack frames cause the immediates in STG and ADDG instructions go out of range.

Jul 5 2019, 8:28 AM · Restricted Project
ostannard accepted D64171: Factor out resolveFrameOffsetReference..

LGTM

Jul 5 2019, 2:19 AM · Restricted Project

Jul 4 2019

ostannard accepted D64167: [TargetLowering] support BlockAddress as "i" inline asm constraint.

LGTM with one nit.

Jul 4 2019, 2:24 AM · Restricted Project
ostannard added inline comments to D63936: [clang][Driver][ARM] Favor -mfpu over default CPU features.
Jul 4 2019, 1:55 AM · Restricted Project, Restricted Project

Jul 3 2019

ostannard closed D30324: [ARM] Thumb2: favor R4-R7 over R12/LR in allocation order when opt for minsize.

Committed https://reviews.llvm.org/rL365014

Jul 3 2019, 3:38 AM · Restricted Project
ostannard committed rG830b20344bdd: [ARM] Thumb2: favor R4-R7 over R12/LR in allocation order when opt for minsize (authored by ostannard).
[ARM] Thumb2: favor R4-R7 over R12/LR in allocation order when opt for minsize
Jul 3 2019, 3:04 AM
ostannard committed rL365014: [ARM] Thumb2: favor R4-R7 over R12/LR in allocation order when opt for minsize.
[ARM] Thumb2: favor R4-R7 over R12/LR in allocation order when opt for minsize
Jul 3 2019, 3:03 AM
ostannard updated the diff for D30324: [ARM] Thumb2: favor R4-R7 over R12/LR in allocation order when opt for minsize.
  • Add a PhysReg parameter to ignoreCSRForAllocationOrder
  • Check that the register is a GPR in the ARM implementation. The other register classes have the callee-saved regs last, so this doesn't make any difference to the generated code, but might avoid surprising behaviour in the future.
Jul 3 2019, 2:36 AM · Restricted Project