Page MenuHomePhabricator

t.p.northover (Tim Northover)
Lord High Supreme Bullshitter

Projects

User does not belong to any projects.

User Details

User Since
Oct 18 2012, 4:53 AM (320 w, 6 d)

Recent Activity

Today

t.p.northover added inline comments to D55572: [AArch64] Add patterns for zext/sext of shift amount..
Wed, Dec 12, 3:06 AM
t.p.northover accepted D55586: Basic: make `int_least64_t` and `int_fast64_t` match on Darwin.

LGTM; well spotted!

Wed, Dec 12, 2:58 AM

Yesterday

t.p.northover added a comment to D55562: Atomics: support min/max orthogonally.

What does it do with floating-point inputs?

Tue, Dec 11, 1:11 PM
t.p.northover created D55562: Atomics: support min/max orthogonally.
Tue, Dec 11, 9:20 AM

Fri, Dec 7

t.p.northover created D55421: FastISel: take care to update iterators when removing instructions..
Fri, Dec 7, 3:00 AM
t.p.northover updated the diff for D54743: SROA: preserve alignment tags on loads and stores..

Separated NFC alias analysis move out into https://reviews.llvm.org/D55420, which this change applies on top of.

Fri, Dec 7, 2:56 AM
t.p.northover created D55420: SROA: move AATags member into base OpSplitter class. NFC..
Fri, Dec 7, 2:54 AM

Tue, Dec 4

t.p.northover added a comment to D54743: SROA: preserve alignment tags on loads and stores..

Maybe explicitly add reviewers?

Tue, Dec 4, 5:41 AM
t.p.northover added reviewers for D54743: SROA: preserve alignment tags on loads and stores.: bkramer, chandlerc.
Tue, Dec 4, 5:41 AM

Mon, Dec 3

t.p.northover closed D53190: ARM: avoid infinite combining loop.

Great to see those other test changes!

Mon, Dec 3, 3:19 AM

Wed, Nov 28

t.p.northover added a comment to D54743: SROA: preserve alignment tags on loads and stores..

Ping.

Wed, Nov 28, 6:03 AM
t.p.northover updated the diff for D53190: ARM: avoid infinite combining loop.

Ah, I see what you mean. It's not pretty, but this updated patch seems to do the trick.

Wed, Nov 28, 5:47 AM

Tue, Nov 27

t.p.northover added a comment to D54533: InstCombine: don't assume malloc will never return nullptr.

Good idea. I committed a comment in r347653.

Tue, Nov 27, 3:51 AM
t.p.northover added a comment to D53190: ARM: avoid infinite combining loop.

Ping.

Tue, Nov 27, 2:27 AM

Tue, Nov 20

t.p.northover added a comment to D54749: Saturating float to int casts: Basics [1/n].

The current implementation is the first and is modeled after what sign_extend_inreg does.

Tue, Nov 20, 6:02 AM
t.p.northover added inline comments to D54749: Saturating float to int casts: Basics [1/n].
Tue, Nov 20, 6:01 AM
t.p.northover abandoned D54533: InstCombine: don't assume malloc will never return nullptr.

Interesting; I (obviously) hadn't considered that interpretation of what's going on, or I'd have mentioned it. I think it just about holds water, so thanks for setting me straight!

Tue, Nov 20, 5:26 AM
t.p.northover created D54743: SROA: preserve alignment tags on loads and stores..
Tue, Nov 20, 1:45 AM

Thu, Nov 15

t.p.northover added a comment to D54604: Automatic variable initialization.

This isn't meant to change the semantics of C and C++.

Thu, Nov 15, 4:13 PM

Wed, Nov 14

t.p.northover created D54533: InstCombine: don't assume malloc will never return nullptr.
Wed, Nov 14, 8:49 AM
t.p.northover added a comment to D53190: ARM: avoid infinite combining loop.

Ok, fair point. If we are going to introduce a new node to fix this issue, could we have a SUBS node that can be glued to the CMOV?

Wed, Nov 14, 3:22 AM

Nov 1 2018

t.p.northover updated the diff for D53514: os_log: make buffer size an integer constant expression..

Same as previous patch except the OSLog helpers are moved to libclangAST to respect dependencies.

Nov 1 2018, 9:52 AM
t.p.northover reopened D53514: os_log: make buffer size an integer constant expression..

Turns out I neglected the layering between libclangAST and libclangAnalysis so I've reverted for now. For this to work I think we need to move the OSLog helpers into libclangAST. I'll put together a new patch and upload it.

Nov 1 2018, 9:40 AM
t.p.northover closed D53514: os_log: make buffer size an integer constant expression..

Thanks Eli. I committed it as r345828, and then had to fixup some linker dependencies on other platforms, which took me a couple of tries (r345833 and r345835).

Nov 1 2018, 8:38 AM

Oct 29 2018

t.p.northover added a comment to D53190: ARM: avoid infinite combining loop.

It seems unlikely this is the only place where a problem with cycles during DAG combining/lowering pops up.

Oct 29 2018, 6:22 AM
t.p.northover added a comment to D53514: os_log: make buffer size an integer constant expression..

Ping.

Oct 29 2018, 6:14 AM

Oct 24 2018

t.p.northover closed D53658: [DAG] Inspect more store operands for cycle before merging..

Thanks. Committed as r345200.

Oct 24 2018, 2:39 PM
t.p.northover closed D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Thanks. Committed as r345188.

Oct 24 2018, 1:42 PM
t.p.northover accepted D53633: [AArch64] Implement FP16FML intrinsics.

I think this is reasonable.

Oct 24 2018, 10:52 AM
t.p.northover added a comment to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Isn't this change always enabled for -Os? So it should be easy to test it or to enable down to a single function, shouldn't it?

Oct 24 2018, 10:50 AM
t.p.northover added a comment to D53190: ARM: avoid infinite combining loop.

Ping.

Oct 24 2018, 10:45 AM
t.p.northover updated the diff for D53658: [DAG] Inspect more store operands for cycle before merging..

Fixing capitalization of variable. Oops.

Oct 24 2018, 10:19 AM
t.p.northover created D53658: [DAG] Inspect more store operands for cycle before merging..
Oct 24 2018, 10:06 AM

Oct 22 2018

t.p.northover closed D48925: X86: add alias for pushfw/popfw in Intel mode.

Thanks. Finally got round to committing this as r344949.

Oct 22 2018, 1:41 PM
t.p.northover added a comment to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Putting it in AArch64Subtarget.cpp also means you can't even in principle set it on a per-function basis without changing your CPU (which is icky).

Oct 22 2018, 10:44 AM
t.p.northover added a comment to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Rather than a feature in AArch.td, I'd prefer a line in AArch64Subtarget::initializeProperties().

Oct 22 2018, 10:41 AM
t.p.northover created D53514: os_log: make buffer size an integer constant expression..
Oct 22 2018, 10:37 AM

Oct 16 2018

t.p.northover accepted D53348: [AArch64] Define __ELF__ for aarch64-none-elf and other similar triples..

Looks reasonable.

Oct 16 2018, 7:18 PM

Oct 12 2018

t.p.northover created D53190: ARM: avoid infinite combining loop.
Oct 12 2018, 4:46 AM
t.p.northover updated the diff for D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Sure.

Oct 12 2018, 2:55 AM
t.p.northover updated the diff for D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Fair enough, I've disabled it for Exynos processors except under MinSize conditions. OK to commit?

Oct 12 2018, 12:59 AM

Oct 10 2018

t.p.northover updated the diff for D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Rebase to master

Oct 10 2018, 2:39 AM

Oct 9 2018

t.p.northover added inline comments to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.
Oct 9 2018, 3:23 PM
t.p.northover added a comment to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Yes, I do. Exynos limits the size of jump tables, resulting in a daisy chain of smaller jump tables. This patch changes the jump table code, so I'd like to evaluate the performance impact, unless this pass is gated by -Os.

Oct 9 2018, 3:20 PM
t.p.northover added a comment to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

As you'd expect, size is pretty good. Over the test-suite (including externals) nothing regresses. The total benefit over all the code is 0.5%, with notable highlights of 25% in 401.bzip2, 7% in 403.gcc, and 4% in 177.mesa.

Oct 9 2018, 6:40 AM

Oct 8 2018

t.p.northover accepted D52868: [AArch64][v8.5A] Restrict indirect tail calls to use x16/17 only when using BTI.

Thanks. This looks fine now.

Oct 8 2018, 6:57 AM
t.p.northover added a comment to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Ping.

Oct 8 2018, 4:46 AM
t.p.northover accepted D52869: [AArch64][v8.5A] Don't create BR instructions in outliner when BTI enabled.

Looks fine.

Oct 8 2018, 4:05 AM
t.p.northover added inline comments to D52868: [AArch64][v8.5A] Restrict indirect tail calls to use x16/17 only when using BTI.
Oct 8 2018, 4:04 AM
t.p.northover accepted D52867: [AArch64][v8.5A] Branch Target Identification code-generation pass.

I think this looks reasonable.

Oct 8 2018, 4:01 AM
t.p.northover accepted D52645: [AsmParser] Return an error in the case of empty symbol ref in an expression.

Looks fine to me.

Oct 8 2018, 2:26 AM

Sep 27 2018

t.p.northover accepted D52621: [AArch64] Split zero cycle feature more granularly.

This looks fine to me.

Sep 27 2018, 10:43 AM
t.p.northover accepted D52484: [ARM][v8.5A] Add speculation barriers SSBB and PSSBB.

This looks fine too after the AArch64 clarification.

Sep 27 2018, 10:16 AM
t.p.northover accepted D52483: [AArch64][v8.5A] Add speculation barriers SSBB and PSSBB.

Thanks for the clarification. LGTM.

Sep 27 2018, 8:21 AM
t.p.northover accepted D52477: [ARM][v8.5A] Add speculation barrier to ARM & Thumb instruction sets.

Looks fine.

Sep 27 2018, 6:30 AM
t.p.northover accepted D52489: [AArch64] Refactor immediate details out of add/sub tblgen class (NFCI).

This is fine.

Sep 27 2018, 6:23 AM
t.p.northover accepted D52485: [AArch64][v8.5A] Add Branch Target Identification instructions.

This looks good.

Sep 27 2018, 6:23 AM
t.p.northover accepted D52479: [AArch64][v8.5A] Add prediction invalidation instructions to AArch64.

This looks fine.

Sep 27 2018, 6:17 AM
t.p.northover added inline comments to D52483: [AArch64][v8.5A] Add speculation barriers SSBB and PSSBB.
Sep 27 2018, 6:12 AM
t.p.northover accepted D52487: [AArch64][v8.5A] Add MTE system instructions.

This looks fine.

Sep 27 2018, 6:10 AM
t.p.northover accepted D52480: [AArch64][v8.5A] Add Armv8.5-A "DC CVADP" instruction.

Looks fine to me.

Sep 27 2018, 6:06 AM
t.p.northover accepted D52475: [AArch64][v8.5A] Add FRINT[32,64][Z,X] instructions.

Thanks. That makes more sense. LGTM!

Sep 27 2018, 6:03 AM
t.p.northover accepted D52476: [AArch64][v8.5A] Add speculation barrier to AArch64 instruction set.

Thanks. Looks fine now.

Sep 27 2018, 1:32 AM
t.p.northover accepted D52473: [AArch64][v8.5A] Add PSTATE manipulation instructions XAFlag and AXFlag.

Thanks. Looks fine now.

Sep 27 2018, 1:31 AM

Sep 26 2018

t.p.northover added inline comments to D52475: [AArch64][v8.5A] Add FRINT[32,64][Z,X] instructions.
Sep 26 2018, 8:01 AM
t.p.northover added inline comments to D52473: [AArch64][v8.5A] Add PSTATE manipulation instructions XAFlag and AXFlag.
Sep 26 2018, 8:00 AM
t.p.northover requested changes to D52476: [AArch64][v8.5A] Add speculation barrier to AArch64 instruction set.

Actually, sorry. I think this should be marked HasSideEffects.

Sep 26 2018, 8:00 AM
t.p.northover added a comment to D52473: [AArch64][v8.5A] Add PSTATE manipulation instructions XAFlag and AXFlag.

So, what's this one actually for? I'm guessing x86 emulation in some manner, but I just couldn't work out how it makes things better.

Sep 26 2018, 7:55 AM
t.p.northover accepted D52476: [AArch64][v8.5A] Add speculation barrier to AArch64 instruction set.

This looks fine.

Sep 26 2018, 7:55 AM
t.p.northover accepted D52474: [AArch64] Extend single-operand FP insns to match Arm ARM (NFCI).

Looks fine to me.

Sep 26 2018, 7:49 AM

Sep 24 2018

t.p.northover updated the diff for D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Tidy-ups suggested by JF, and (also JF's idea) switch to an offset from the lowest-addressed basic-block instead of the actual branch to increase the number of candidates.

Sep 24 2018, 7:20 AM
t.p.northover added inline comments to D32564: AArch64: compress jump tables to minimum size needed to reach destinations.
Sep 24 2018, 7:20 AM

Sep 21 2018

t.p.northover accepted D52335: AArch64FastISel: Abort intrinsic selection if the left operand didn't select.

I've had a go at producing an example too with no luck. The Constant involved on the breaking config is ridiculously complex (even after reduction): i32 or (i32 shl (i32 or (i32 shl (i32 or (i32 shl (i32 and (i32 ptrtoint ([19 x i8]* @0 to i32), i32 63), i32 8), i32 and (i32 lshr (i32 ptrtoint ([19 x i8]* @0 to i32), i32 6), i32 63)), i32 8), i32 and (i32 lshr (i32 lshr (i32 ptrtoint ([19 x i8]* @0 to i32), i32 6), i32 6), i32 63)), i32 8), i32 lshr (i32 lshr (i32 lshr (i32 ptrtoint ([19 x i8]* @0 to i32), i32 6), i32 6), i32 6))

Sep 21 2018, 6:14 AM
t.p.northover updated the diff for D32564: AArch64: compress jump tables to minimum size needed to reach destinations.

Thread necromancy! I realised that I got distracted and never finished this discussion.

Sep 21 2018, 4:29 AM

Sep 20 2018

t.p.northover added inline comments to D48131: [RISCV] Implement codegen for cmpxchg on RV32IA.
Sep 20 2018, 4:52 AM

Sep 13 2018

t.p.northover accepted D51780: ARM: align loops to 4 bytes on Cortex-M3 and Cortex-M4..

Thanks. Committed as r342127.

Sep 13 2018, 3:56 AM

Sep 12 2018

t.p.northover updated the diff for D51780: ARM: align loops to 4 bytes on Cortex-M3 and Cortex-M4..

I think I've implemented the suggested changes, except for the function alignment one.

Sep 12 2018, 4:13 AM

Sep 10 2018

t.p.northover added a comment to D51780: ARM: align loops to 4 bytes on Cortex-M3 and Cortex-M4..

We should also be aligning functions?

Sep 10 2018, 5:09 AM

Sep 7 2018

t.p.northover created D51780: ARM: align loops to 4 bytes on Cortex-M3 and Cortex-M4..
Sep 7 2018, 5:27 AM
t.p.northover closed D51678: ARM: fix Thumb2 CodeGen for ldrex with folded frame-index.

Thanks. Committed as r341642.

Sep 7 2018, 5:21 AM

Sep 6 2018

t.p.northover added inline comments to D51678: ARM: fix Thumb2 CodeGen for ldrex with folded frame-index.
Sep 6 2018, 2:40 PM
t.p.northover updated the diff for D51678: ARM: fix Thumb2 CodeGen for ldrex with folded frame-index.

Added the addressing-mode to ARMFrameLowering. The only other place that uses them appears to be optional (for an efficiency gain), so I skipped that.

Sep 6 2018, 5:57 AM

Sep 5 2018

t.p.northover added a comment to D51678: ARM: fix Thumb2 CodeGen for ldrex with folded frame-index.

Bother, yes I do. That's going to be fun to write a test for so it'll probably have to wait until tomorrow.

Sep 5 2018, 11:09 AM
t.p.northover accepted D51630: [DAGCombiner] try to convert pow(x, 0.25) to sqrt(sqrt(x)).

Thanks! LGTM.

Sep 5 2018, 8:35 AM
t.p.northover added a comment to D51630: [DAGCombiner] try to convert pow(x, 0.25) to sqrt(sqrt(x)).

They'd probably work. We often just use useful triples, maybe thumbv8-linux-gnueabihf, and perhaps thumbv7m-linux-gnueabi as a soft-float target that ought to use libcalls for everything (I'd probably just check there are the appropriate number of calls there rather than tracking all the marshalling nonsense that goes on).

Sep 5 2018, 7:39 AM
t.p.northover accepted D51683: Fix arm_neon.h and arm_fp16.h generation for compiling with std=c89.

Looks good to me.

Sep 5 2018, 7:38 AM
t.p.northover added a comment to D51630: [DAGCombiner] try to convert pow(x, 0.25) to sqrt(sqrt(x)).

Could you possibly duplicate the tests for ARM? It looks like the patch does the right thing to me, but it'd be good to have it confirmed and tested.

Sep 5 2018, 5:48 AM
t.p.northover accepted D51631: [ARM] Tighten f64<->f16 conversion requirements.

LGTM!

Sep 5 2018, 4:51 AM
t.p.northover created D51678: ARM: fix Thumb2 CodeGen for ldrex with folded frame-index.
Sep 5 2018, 3:44 AM

Aug 23 2018

t.p.northover accepted D51202: [AArch64] Reject inline asm with FP registers when FP is disabled..

LGTM.

Aug 23 2018, 8:17 PM

Aug 20 2018

t.p.northover added a comment to D50979: Eliminate instances of `EmitScalarExpr(E->getArg(n))` in EmitX86BuiltinExpr()..

EmitAArch64BuiltinExpr() also emits args into Ops before the big switch (with some more subtlety around the last arg that I don't understand), but then almost every switch case does EmitScalarExpr(E->getArg(n)).

Aug 20 2018, 12:26 PM

Aug 6 2018

t.p.northover added a comment to D50232: Fix modules build with different technique to suppress Knuth debugging.

Thanks for the comments. I've committed basically the original version of the D40404 (modulo DEBUG -> LLVM_DEBUG renaming) as r339009.

Aug 6 2018, 4:43 AM

Aug 3 2018

t.p.northover created D50232: Fix modules build with different technique to suppress Knuth debugging.
Aug 3 2018, 2:21 AM

Aug 1 2018

t.p.northover accepted D43860: [AArch64] DWARF: do not generate AT_location for thread local.

I think it's reasonable too.

Aug 1 2018, 7:58 AM
t.p.northover added a comment to D49929: [AArch64] Disallow the MachO specific .loh directive for windows.

I suppose that this is caused by the pair-wise split relocations à la IMAGE_REL_ARM_MOV32Tfor PE/COFF

Aug 1 2018, 6:12 AM
t.p.northover accepted D50137: [AArch64] Add support for got relocated LDR's.

Looks fine to me.

Aug 1 2018, 6:02 AM

Jul 31 2018

t.p.northover added a comment to D49929: [AArch64] Disallow the MachO specific .loh directive for windows.

IMO, linker optimization hints are more an AArch64 thing than a Darwin thing. They were invented entirely to deal with AArch64's ADRP/whatever sequences so I'd prefer the implementation to stay in lib/Target/AArch64 where possible.

Jul 31 2018, 2:10 PM

Jul 18 2018

t.p.northover created D49485: CMake: use new policy for CMP0051.
Jul 18 2018, 7:27 AM
t.p.northover closed D49014: [Support] Build fix for Haiku when checking for a local filesystem.

I've committed this as r337389. Thanks for submitting the patch.

Jul 18 2018, 6:48 AM
t.p.northover added a comment to D48925: X86: add alias for pushfw/popfw in Intel mode.

Ping.

Jul 18 2018, 6:33 AM