Page MenuHomePhabricator

aengelke (Alexis Engelke)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 19 2022, 12:21 PM (23 w, 2 d)

Recent Activity

Apr 28 2023

aengelke committed rGab21beaccc9d: [AArch64][FastISel] Handle CRC32 intrinsics (authored by aengelke).
[AArch64][FastISel] Handle CRC32 intrinsics
Apr 28 2023, 2:29 AM · Restricted Project, Restricted Project
aengelke closed D148917: [AArch64][FastISel] Handle CRC32 intrinsics.
Apr 28 2023, 2:29 AM · Restricted Project, Restricted Project

Apr 27 2023

aengelke committed rG1e743732e787: [RegAllocFast] Use uint16_t SparseT for LiveRegMap (authored by aengelke).
[RegAllocFast] Use uint16_t SparseT for LiveRegMap
Apr 27 2023, 9:59 AM · Restricted Project, Restricted Project
aengelke closed D149330: [RegAllocFast] Use uint16_t SparseT for LiveRegMap.
Apr 27 2023, 9:59 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148917: [AArch64][FastISel] Handle CRC32 intrinsics.

(no change; re-trigger CI)

Apr 27 2023, 9:55 AM · Restricted Project, Restricted Project
aengelke committed rG7751a9146579: [AArch64][FastISel] Handle call with multiple return regs (authored by aengelke).
[AArch64][FastISel] Handle call with multiple return regs
Apr 27 2023, 3:00 AM · Restricted Project, Restricted Project
aengelke closed D148346: [AArch64][FastISel] Handle call with multiple return regs.
Apr 27 2023, 2:59 AM · Restricted Project, Restricted Project
aengelke requested review of D149330: [RegAllocFast] Use uint16_t SparseT for LiveRegMap.
Apr 27 2023, 2:58 AM · Restricted Project, Restricted Project

Apr 26 2023

aengelke updated the diff for D148346: [AArch64][FastISel] Handle call with multiple return regs.

(no change, re-trigger CI)

Apr 26 2023, 8:25 AM · Restricted Project, Restricted Project
aengelke added a comment to D148917: [AArch64][FastISel] Handle CRC32 intrinsics.

Okay. I'm bringing it up because I'd like to make sure fastisel remains limited in scope; we don't have all the GlobalISel infrastructure, so reviewing any additions is significantly more work.

Apr 26 2023, 7:45 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148917: [AArch64][FastISel] Handle CRC32 intrinsics.

Remove unnecessary checks

Apr 26 2023, 7:38 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148346: [AArch64][FastISel] Handle call with multiple return regs.

Add test case for sret fallback and replace CHECK-NOT with -fast-isel-abort=3

Apr 26 2023, 7:33 AM · Restricted Project, Restricted Project

Apr 21 2023

aengelke added a comment to D148917: [AArch64][FastISel] Handle CRC32 intrinsics.

We care a lot about compile times and in our application, GlobalISel (when it succeeds, about 10% fallback rate) increases compile times by ~50% compared to FastISel. We do plan to look at GlobalISel performance at some point, but it seems like there's a lot of work to be done to bring it at least on-par with FastISel wrt. compile times.

Apr 21 2023, 10:08 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148917: [AArch64][FastISel] Handle CRC32 intrinsics.

Add check whether subtarget actually supports CRC.

Apr 21 2023, 5:56 AM · Restricted Project, Restricted Project
aengelke added reviewers for D148346: [AArch64][FastISel] Handle call with multiple return regs: dmgreen, efriedma.

Gentle ping

Apr 21 2023, 5:48 AM · Restricted Project, Restricted Project
aengelke added a comment to D148917: [AArch64][FastISel] Handle CRC32 intrinsics.

Note that I'm not entirely happy with duplicating the test cases; changing the existing cases in arm64-crc32.ll could also work, but currently generates an extra uxtb/uxth with FastISel. Let me know what you think.

Apr 21 2023, 5:31 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148917: [AArch64][FastISel] Handle CRC32 intrinsics.

(format changes)

Apr 21 2023, 5:28 AM · Restricted Project, Restricted Project
aengelke requested review of D148917: [AArch64][FastISel] Handle CRC32 intrinsics.
Apr 21 2023, 5:27 AM · Restricted Project, Restricted Project
aengelke committed rG5368c1065f0e: [X86][FastISel] Handle CRC32 intrinsics (authored by aengelke).
[X86][FastISel] Handle CRC32 intrinsics
Apr 21 2023, 4:41 AM · Restricted Project, Restricted Project
aengelke closed D148023: [X86][FastISel] Handle CRC32 intrinsics.
Apr 21 2023, 4:41 AM · Restricted Project, Restricted Project

Apr 20 2023

aengelke added a comment to D148023: [X86][FastISel] Handle CRC32 intrinsics.

ping?

Apr 20 2023, 1:53 AM · Restricted Project, Restricted Project

Apr 14 2023

aengelke requested review of D148346: [AArch64][FastISel] Handle call with multiple return regs.
Apr 14 2023, 7:58 AM · Restricted Project, Restricted Project

Apr 13 2023

aengelke committed rGa2e596bdf8cc: [LegacyPM] Reduce number of calls to getName (authored by aengelke).
[LegacyPM] Reduce number of calls to getName
Apr 13 2023, 2:20 AM · Restricted Project, Restricted Project
aengelke closed D148145: [LegacyPM] Reduce number of calls to getName.
Apr 13 2023, 2:19 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148145: [LegacyPM] Reduce number of calls to getName.

Make Name const.

Apr 13 2023, 12:42 AM · Restricted Project, Restricted Project

Apr 12 2023

aengelke requested review of D148145: [LegacyPM] Reduce number of calls to getName.
Apr 12 2023, 10:11 AM · Restricted Project, Restricted Project
aengelke committed rG63a8ca3fe97d: [LegacyPM] Call getPassName only when needed (authored by aengelke).
[LegacyPM] Call getPassName only when needed
Apr 12 2023, 9:36 AM · Restricted Project, Restricted Project
aengelke closed D148022: [LegacyPM] Call getPassName only when needed.
Apr 12 2023, 9:36 AM · Restricted Project, Restricted Project
aengelke added a comment to D148022: [LegacyPM] Call getPassName only when needed.

Ideally give some numbers. How costly is it?

Apr 12 2023, 9:32 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148023: [X86][FastISel] Handle CRC32 intrinsics.

Change test name.

Apr 12 2023, 7:46 AM · Restricted Project, Restricted Project
aengelke added inline comments to D148023: [X86][FastISel] Handle CRC32 intrinsics.
Apr 12 2023, 3:27 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148023: [X86][FastISel] Handle CRC32 intrinsics.

Also test llvm.x86.sse42.crc32.64.8 auto-upgrade

Apr 12 2023, 3:25 AM · Restricted Project, Restricted Project

Apr 11 2023

aengelke updated the diff for D148023: [X86][FastISel] Handle CRC32 intrinsics.

Add i686 tests. -fast-isel-abort=3 doesn't work, so I instead check that the call wasn't missed.

Apr 11 2023, 9:39 AM · Restricted Project, Restricted Project
aengelke updated the diff for D148022: [LegacyPM] Call getPassName only when needed.

Format changes + re-trigger CI

Apr 11 2023, 8:42 AM · Restricted Project, Restricted Project
aengelke requested review of D148023: [X86][FastISel] Handle CRC32 intrinsics.
Apr 11 2023, 8:40 AM · Restricted Project, Restricted Project
aengelke requested review of D148022: [LegacyPM] Call getPassName only when needed.
Apr 11 2023, 8:22 AM · Restricted Project, Restricted Project
aengelke committed rG3d86ab9d462f: [X86][MC] Emit instructions into SmallVector (authored by aengelke).
[X86][MC] Emit instructions into SmallVector
Apr 11 2023, 2:50 AM · Restricted Project, Restricted Project
aengelke closed D145792: [X86][MC] Emit instructions into SmallVector.
Apr 11 2023, 2:50 AM · Restricted Project, Restricted Project
aengelke committed rG8e59fe2d8e62: [FastISel] Correctly report prototype on miss (authored by aengelke).
[FastISel] Correctly report prototype on miss
Apr 11 2023, 2:49 AM · Restricted Project, Restricted Project
aengelke closed D147716: [FastISel] Correctly report prototype on miss.
Apr 11 2023, 2:49 AM · Restricted Project, Restricted Project

Apr 6 2023

aengelke requested review of D147716: [FastISel] Correctly report prototype on miss.
Apr 6 2023, 8:34 AM · Restricted Project, Restricted Project
aengelke added a comment to D145792: [X86][MC] Emit instructions into SmallVector.

@Amir The BOLT problems were already addressed with an updated version of D145791; this patch should not affect any BOLT uses. Tests also pass now.

Apr 6 2023, 7:31 AM · Restricted Project, Restricted Project
aengelke committed rG0c049ea60a9f: [MC] Always encode instruction into SmallVector (authored by aengelke).
[MC] Always encode instruction into SmallVector
Apr 6 2023, 7:22 AM · Restricted Project, Restricted Project
aengelke closed D145791: [MC] Always encode instruction into SmallVector.
Apr 6 2023, 7:22 AM · Restricted Project, Restricted Project
aengelke updated the diff for D145792: [X86][MC] Emit instructions into SmallVector.

Formatting fixes

Apr 6 2023, 4:01 AM · Restricted Project, Restricted Project
aengelke updated the diff for D145792: [X86][MC] Emit instructions into SmallVector.

No changes, just to trigger rebuild from updated D145791.

Apr 6 2023, 3:01 AM · Restricted Project, Restricted Project

Apr 5 2023

aengelke added a comment to D145791: [MC] Always encode instruction into SmallVector.

@RKSimon ping? We get a consistent 0.5%–1.5% compile-time improvement from these changes.

Apr 5 2023, 7:39 AM · Restricted Project, Restricted Project

Mar 15 2023

aengelke added a comment to D145791: [MC] Always encode instruction into SmallVector.

@RKSimon Are you ok with these two patches or do you have any concerns/alternative ideas?

Mar 15 2023, 11:47 AM · Restricted Project, Restricted Project

Mar 10 2023

aengelke added a comment to D145791: [MC] Always encode instruction into SmallVector.

I don't think there are "obviously missed" problems; IMHO the main problem is the abstraction itself, which for every write involves a function call (raw_ostream::write, unlikely to be inlined due to size and unlikely to be optimizable as the buffer pointers/mode are mutable members) and an indirect function call (write_impl, extremely unlikely to be devirtualized due to general code complexity). The impact of the latter could probably be reduced by buffering in raw_svector_ostream, but that'd be a substantial and massively breaking change with unknown (and hardly quantifiable) benefits. If you have any suggestions for more generally applicable approaches, I'd be happy to try them; but right now getting rid of the (apparently completely unneeded) abstraction appears to be the easiest, least intrusive, and most performant change.

Mar 10 2023, 10:29 AM · Restricted Project, Restricted Project
aengelke updated the diff for D145791: [MC] Always encode instruction into SmallVector.

Attempt to fix bolt

Mar 10 2023, 8:52 AM · Restricted Project, Restricted Project
aengelke added a comment to D145792: [X86][MC] Emit instructions into SmallVector.

It essentially boils down to having function calls for every written byte, which adds up. I haven't tested with (Thin)LTO yet, but a quick glance at the disassembly of a Fedora-built LLVM (which uses ThinLTO) seems to indicate that such function calls are not eliminated.

Mar 10 2023, 7:30 AM · Restricted Project, Restricted Project
aengelke requested review of D145792: [X86][MC] Emit instructions into SmallVector.
Mar 10 2023, 6:57 AM · Restricted Project, Restricted Project
aengelke requested review of D145791: [MC] Always encode instruction into SmallVector.
Mar 10 2023, 6:56 AM · Restricted Project, Restricted Project

Jan 3 2023

aengelke added a comment to D140338: [DWARF] Store CFA value on DW_CFA_remember_state.

Thanks! I have no commit access; could you commit this for me (Alexis Engelke <engelke@in.tum.de>)?

Jan 3 2023, 11:11 AM · Restricted Project, Restricted Project
aengelke added a comment to D140338: [DWARF] Store CFA value on DW_CFA_remember_state.

Ping

Jan 3 2023, 10:56 AM · Restricted Project, Restricted Project

Dec 19 2022

aengelke requested review of D140338: [DWARF] Store CFA value on DW_CFA_remember_state.
Dec 19 2022, 12:37 PM · Restricted Project, Restricted Project