Page MenuHomePhabricator

aykevl (Ayke)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 25 2018, 9:12 AM (256 w, 3 d)

Recent Activity

Sat, Mar 11

aykevl added inline comments to D145854: [GlobalDCE] Don't add dependency via icmp against inbouds pointer.
Sat, Mar 11, 11:18 AM · Restricted Project, Restricted Project
aykevl added a comment to D119342: [LoopRotate] Don't rotate loops when the minsize attribute is present.

ping?

Sat, Mar 11, 10:43 AM · Restricted Project, Restricted Project
aykevl requested review of D145854: [GlobalDCE] Don't add dependency via icmp against inbouds pointer.
Sat, Mar 11, 10:31 AM · Restricted Project, Restricted Project

Jan 27 2023

aykevl added a comment to D119342: [LoopRotate] Don't rotate loops when the minsize attribute is present.

Ping?

Jan 27 2023, 8:07 PM · Restricted Project, Restricted Project

Jan 24 2023

aykevl closed D142107: [AVR] Support address space casts.

This is merged but wasn't closed automatically, probably because I changed the commit message.

Jan 24 2023, 5:02 PM · Restricted Project, Restricted Project
aykevl committed rG8202a3da3c89: [AVR] Support most address space casts (authored by aykevl).
[AVR] Support most address space casts
Jan 24 2023, 9:43 AM · Restricted Project, Restricted Project

Jan 22 2023

aykevl accepted D142298: [AVR] Emit 'eicall' for devices with large program memory.

Looks good to me.

Jan 22 2023, 1:53 PM · Restricted Project, Restricted Project

Jan 21 2023

aykevl added a comment to D142107: [AVR] Support address space casts.

Commit message is a bit misleading, I'd expect "support address space casts" would mean also handling the not-noop cases

Jan 21 2023, 9:19 PM · Restricted Project, Restricted Project

Jan 19 2023

aykevl added inline comments to D142107: [AVR] Support address space casts.
Jan 19 2023, 6:15 PM · Restricted Project, Restricted Project
aykevl added a comment to D141264: [AVR] Fix incorrect expansion of pseudo instructions LPMWRdZ/ELPMWRdZ.

This code modifies the pointer register, without restoring it. The pointer register should be restored to the previous value if it is is not killed (subtract one from the pointer value). See the expansion of LDDWRdPtrQ for avrtiny for example.

Jan 19 2023, 6:46 AM · Restricted Project, Restricted Project
aykevl accepted D142096: [AVR] Fix incorrectly printed global symbol operands in inline assembly.

Looks good to me, with just a single comment. Feel free to fix this while committing.

Jan 19 2023, 6:22 AM · Restricted Project, Restricted Project
aykevl added a comment to D141752: [AVR] Fix an issue of writing 16-bit ports.

This works for the out instruction, but what about a regular volatile store? I think it should be changed in the same way.

Jan 19 2023, 6:14 AM · Restricted Project, Restricted Project
aykevl requested review of D142107: [AVR] Support address space casts.
Jan 19 2023, 5:59 AM · Restricted Project, Restricted Project

Jan 10 2023

aykevl added a comment to D140830: [AVR] correctly declare __do_copy_data and __do_clear_bss.

@vitalybuka oops, thank you for the fix!

Jan 10 2023, 6:19 PM · Restricted Project, Restricted Project

Jan 8 2023

aykevl committed rG9592920890cf: [AVR] Optimize 32-bit shifts: optimize REG_SEQUENCE (authored by aykevl).
[AVR] Optimize 32-bit shifts: optimize REG_SEQUENCE
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl committed rGfad5e0cf50f1: [AVR] Optimize 32-bit shifts: reverse shift + move (authored by aykevl).
[AVR] Optimize 32-bit shifts: reverse shift + move
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl committed rG81f5f22f2784: [AVR] Optimize 32-bit shifts: shift by 4 bits (authored by aykevl).
[AVR] Optimize 32-bit shifts: shift by 4 bits
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl committed rG840d10a1d2c9: [AVR] Custom lower 32-bit shift instructions (authored by aykevl).
[AVR] Custom lower 32-bit shift instructions
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl committed rG8f8afabd3209: [AVR] Optimize 32-bit shift: move bytes around (authored by aykevl).
[AVR] Optimize 32-bit shift: move bytes around
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl closed D140573: [AVR] Optimize 32-bit shifts: optimize REG_SEQUENCE.
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl closed D140572: [AVR] Optimize 32-bit shifts: reverse shift + move.
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl closed D140571: [AVR] Optimize 32-bit shifts: shift by 4 bits.
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl closed D140570: [AVR] Optimize 32-bit shift: move bytes around.
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl closed D140569: [AVR] Custom lower 32-bit shift instructions.
Jan 8 2023, 11:06 AM · Restricted Project, Restricted Project
aykevl committed rG0408b131eb66: [SelectionDAG][AVR] Add support for lrint and lround intrinsics (authored by aykevl).
[SelectionDAG][AVR] Add support for lrint and lround intrinsics
Jan 8 2023, 9:57 AM · Restricted Project, Restricted Project
aykevl committed rG167338de9687: [AVR] correctly declare __do_copy_data and __do_clear_bss (authored by aykevl).
[AVR] correctly declare __do_copy_data and __do_clear_bss
Jan 8 2023, 9:57 AM · Restricted Project, Restricted Project
aykevl closed D140822: [AVR] Add support for lrint and lround intrinsics.
Jan 8 2023, 9:56 AM · Restricted Project, Restricted Project
aykevl closed D140830: [AVR] correctly declare __do_copy_data and __do_clear_bss.
Jan 8 2023, 9:56 AM · Restricted Project, Restricted Project

Jan 7 2023

aykevl accepted D140815: [AVR] Fix incorrect decoding of RJMP and RCALL.

That's indeed a nice solution, didn't think of that!

Jan 7 2023, 7:23 AM · Restricted Project, Restricted Project
aykevl accepted D141197: [ELF][test] Improve AVR relocation tests.
Jan 7 2023, 7:16 AM · Restricted Project, Restricted Project

Jan 6 2023

aykevl added a comment to D140917: [AVR] Optimize away cpi instructions when possible.

I ran the TinyGo tests with this patch and all tests still pass, while code size is reduced by 0.75%.

Jan 6 2023, 1:26 PM · Restricted Project, Restricted Project
aykevl accepted D140777: [AVR] Fix some ambiguous cases in AsmParser.
Jan 6 2023, 1:16 PM · Restricted Project, Restricted Project
aykevl added a comment to D140815: [AVR] Fix incorrect decoding of RJMP and RCALL.

Since llvm-objdump decodes all address offsets of rjmp/rcall (before linking) to 0, so you can see those zeros in llvm/test/MC/AVR/inst-rjmp.s, which are not affected.

llvm-objdump only affects address offsets of rjmp/rcall that are after linking, so we have to test them in the lld tests.

Jan 6 2023, 1:05 PM · Restricted Project, Restricted Project
aykevl added inline comments to D119342: [LoopRotate] Don't rotate loops when the minsize attribute is present.
Jan 6 2023, 12:39 PM · Restricted Project, Restricted Project
aykevl updated the diff for D119342: [LoopRotate] Don't rotate loops when the minsize attribute is present.

Rebased the patch and updated the test case.

Jan 6 2023, 12:39 PM · Restricted Project, Restricted Project
aykevl abandoned D138529: [AVR] Optimize constant 32-bit shifts.

Closing, this has been replaced by multiple smaller patches.

Jan 6 2023, 12:21 PM · Restricted Project, Restricted Project
aykevl added inline comments to D140571: [AVR] Optimize 32-bit shifts: shift by 4 bits.
Jan 6 2023, 12:19 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140571: [AVR] Optimize 32-bit shifts: shift by 4 bits.
  • apply review feedback
Jan 6 2023, 12:19 PM · Restricted Project, Restricted Project
aykevl added inline comments to D140830: [AVR] correctly declare __do_copy_data and __do_clear_bss.
Jan 6 2023, 12:02 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140830: [AVR] correctly declare __do_copy_data and __do_clear_bss.
  • add CHECK-NOT lines to tests
  • add zeroed global to the no-copy-data.ll test
Jan 6 2023, 12:01 PM · Restricted Project, Restricted Project

Jan 3 2023

aykevl updated the summary of D140917: [AVR] Optimize away cpi instructions when possible.
Jan 3 2023, 1:10 PM · Restricted Project, Restricted Project
aykevl updated the summary of D140917: [AVR] Optimize away cpi instructions when possible.
Jan 3 2023, 1:09 PM · Restricted Project, Restricted Project
aykevl added a comment to D140917: [AVR] Optimize away cpi instructions when possible.

This patch was largely based on X86InstrInfo::optimizeCompareInstr in llvm/lib/Target/X86/X86InstrInfo.cpp. Of course, the X86 version is much, much larger.

Jan 3 2023, 12:43 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140917: [AVR] Optimize away cpi instructions when possible.
  • update branch relaxation tests that got changed by this patch
Jan 3 2023, 12:41 PM · Restricted Project, Restricted Project
aykevl requested review of D140917: [AVR] Optimize away cpi instructions when possible.
Jan 3 2023, 12:35 PM · Restricted Project, Restricted Project

Jan 1 2023

aykevl updated the diff for D140572: [AVR] Optimize 32-bit shifts: reverse shift + move.
  • rebase
Jan 1 2023, 6:12 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140571: [AVR] Optimize 32-bit shifts: shift by 4 bits.
  • rebase
Jan 1 2023, 6:11 PM · Restricted Project, Restricted Project
aykevl added inline comments to D140830: [AVR] correctly declare __do_copy_data and __do_clear_bss.
Jan 1 2023, 5:15 PM · Restricted Project, Restricted Project
aykevl requested review of D140830: [AVR] correctly declare __do_copy_data and __do_clear_bss.
Jan 1 2023, 5:10 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140570: [AVR] Optimize 32-bit shift: move bytes around.
  • rebase (somehow the pre-merge checks failed because of an error?)
Jan 1 2023, 1:32 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140569: [AVR] Custom lower 32-bit shift instructions.
  • run clang-format
Jan 1 2023, 1:30 PM · Restricted Project, Restricted Project
aykevl added inline comments to D140570: [AVR] Optimize 32-bit shift: move bytes around.
Jan 1 2023, 1:27 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140570: [AVR] Optimize 32-bit shift: move bytes around.

Applied all review feedback and rebased the patch.

Jan 1 2023, 1:27 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140569: [AVR] Custom lower 32-bit shift instructions.
  • Special-case logical shifts of 16 bits. This fixes a number of issues: it avoids unnecessary code changes in this PR, it fixes an issue after rebasing on the main branch (as seen in the buildbot failure), and it fixes an issue I found while working on D140822.
  • Apply review feedback.
Jan 1 2023, 12:58 PM · Restricted Project, Restricted Project
aykevl added a comment to D140569: [AVR] Custom lower 32-bit shift instructions.

Looks like 3bb5ddd1756d4573d3104f8b86d2973dbc550402 broke the pre-merge check. I'll rebase the patch.

Jan 1 2023, 12:13 PM · Restricted Project, Restricted Project
aykevl added inline comments to D140777: [AVR] Fix some ambiguous cases in AsmParser.
Jan 1 2023, 11:00 AM · Restricted Project, Restricted Project
aykevl requested review of D140822: [AVR] Add support for lrint and lround intrinsics.
Jan 1 2023, 10:27 AM · Restricted Project, Restricted Project
aykevl added a comment to D140815: [AVR] Fix incorrect decoding of RJMP and RCALL.

Shouldn't this also affect llvm/test/MC/AVR/inst-rjmp.s?
In any case, I think it's better to (also) have tests in llvm/test/MC/AVR for this.

Jan 1 2023, 7:02 AM · Restricted Project, Restricted Project

Dec 30 2022

aykevl updated the diff for D140569: [AVR] Custom lower 32-bit shift instructions.
  • change const DebugLoc dl to const DebugLoc &dl
Dec 30 2022, 4:12 PM · Restricted Project, Restricted Project
aykevl added inline comments to D138166: [compiler-rt][builtins] Add AVR __udivmodsi4 and __divmodsi4.
Dec 30 2022, 3:53 PM · Restricted Project, Restricted Project
aykevl accepted D139807: [lld][ELF] Support relocation R_AVR_LDS_STS_16 on AVRTiny devices.
Dec 30 2022, 11:27 AM · Restricted Project, Restricted Project

Dec 26 2022

aykevl added inline comments to D139807: [lld][ELF] Support relocation R_AVR_LDS_STS_16 on AVRTiny devices.
Dec 26 2022, 3:43 PM · Restricted Project, Restricted Project
aykevl updated the diff for D140569: [AVR] Custom lower 32-bit shift instructions.

Update to use opcodes instead of ShiftAmt and ArithmeticShift.

Dec 26 2022, 9:55 AM · Restricted Project, Restricted Project
aykevl added inline comments to D140569: [AVR] Custom lower 32-bit shift instructions.
Dec 26 2022, 8:45 AM · Restricted Project, Restricted Project
aykevl updated the diff for D140569: [AVR] Custom lower 32-bit shift instructions.
  • apply review comments
Dec 26 2022, 8:36 AM · Restricted Project, Restricted Project
aykevl added inline comments to D140569: [AVR] Custom lower 32-bit shift instructions.
Dec 26 2022, 8:34 AM · Restricted Project, Restricted Project

Dec 25 2022

aykevl added a comment to D140569: [AVR] Custom lower 32-bit shift instructions.

Thanks, I'll fix these things before committing.

Dec 25 2022, 5:49 AM · Restricted Project, Restricted Project
aykevl added inline comments to D140570: [AVR] Optimize 32-bit shift: move bytes around.
Dec 25 2022, 5:37 AM · Restricted Project, Restricted Project

Dec 22 2022

aykevl updated the diff for D140569: [AVR] Custom lower 32-bit shift instructions.

(arcanist used the last commit instead of the intended commit, restoring the diff again)

Dec 22 2022, 11:36 AM · Restricted Project, Restricted Project
aykevl added a comment to D138529: [AVR] Optimize constant 32-bit shifts.

I created a series of patches to replace this one, for easier reviewing. Thank you for the thorough review!
See: D140569, D140570, D140571, D140572, D140573

Dec 22 2022, 11:30 AM · Restricted Project, Restricted Project
aykevl requested review of D140573: [AVR] Optimize 32-bit shifts: optimize REG_SEQUENCE.
Dec 22 2022, 11:23 AM · Restricted Project, Restricted Project
aykevl requested review of D140572: [AVR] Optimize 32-bit shifts: reverse shift + move.
Dec 22 2022, 11:21 AM · Restricted Project, Restricted Project
aykevl requested review of D140571: [AVR] Optimize 32-bit shifts: shift by 4 bits.
Dec 22 2022, 11:18 AM · Restricted Project, Restricted Project
aykevl requested review of D140570: [AVR] Optimize 32-bit shift: move bytes around.
Dec 22 2022, 11:16 AM · Restricted Project, Restricted Project
aykevl updated the diff for D140569: [AVR] Custom lower 32-bit shift instructions.

(testing a no-op update with arcanist)

Dec 22 2022, 11:14 AM · Restricted Project, Restricted Project
aykevl requested review of D140569: [AVR] Custom lower 32-bit shift instructions.
Dec 22 2022, 11:13 AM · Restricted Project, Restricted Project
aykevl committed rGd1d3005c9fe6: [AVR] Do not emit instructions invalid for attiny10 (authored by aykevl).
[AVR] Do not emit instructions invalid for attiny10
Dec 22 2022, 8:05 AM · Restricted Project, Restricted Project
aykevl closed D131867: [AVR] Do not emit instructions invalid for attiny10.
Dec 22 2022, 8:05 AM · Restricted Project, Restricted Project
aykevl added a comment to D139305: [clang][driver] Support option '-mcpu' on target AVR..

I think having -mcpu as an alias for -mmcu on AVR is fine, but I don't think it's very useful to be honest. The -mmcu (or -mcpu) flag is inherently specific to that particular chip anyway so compatibility is not an issue. In fact, having two flags may even introduce noise and confusion.
I wouldn't be opposed to it though if there is demand for it.

Dec 22 2022, 7:53 AM · Restricted Project, Restricted Project
aykevl added inline comments to D131867: [AVR] Do not emit instructions invalid for attiny10.
Dec 22 2022, 7:42 AM · Restricted Project, Restricted Project
aykevl accepted D139687: [AVR] Select 16-bit LDS/STS for load/store on AVRTiny..

Looks good to me

Dec 22 2022, 7:38 AM · Restricted Project, Restricted Project
aykevl accepted D139621: [AVR] Support 16-bit LDS/STS on AVRTiny..

Looks good to me!

Dec 22 2022, 7:36 AM · Restricted Project, Restricted Project
aykevl accepted D140383: [AVR] Fix a bug in AsmPrinter when printing memory operands..

LGTM

Dec 22 2022, 7:32 AM · Restricted Project, Restricted Project
aykevl accepted D140473: [AVR][MC] Fix illegal operand forms..

LGTM

Dec 22 2022, 7:29 AM · Restricted Project, Restricted Project

Dec 7 2022

aykevl requested review of D138166: [compiler-rt][builtins] Add AVR __udivmodsi4 and __divmodsi4.

@compnerd can you take a look at my replies?

Dec 7 2022, 4:18 PM · Restricted Project, Restricted Project

Dec 5 2022

aykevl added a comment to D138529: [AVR] Optimize constant 32-bit shifts.

Is it possible to break this large patch to smaller ones, in which the first one is just the skeleton (with only shiftAmount = 1 implemented as the basic situation) ? Then later ones implment each special shiftAmount case .

Dec 5 2022, 6:09 AM · Restricted Project, Restricted Project
aykevl added a comment to D138529: [AVR] Optimize constant 32-bit shifts.

Thank you for taking a look! I will update the patch later with your suggestions. For now, I've updated the patch a bit with changes I made locally in the past few days.
(I will also update the patch with extra context that I forgot to add this time).

Dec 5 2022, 6:05 AM · Restricted Project, Restricted Project
aykevl updated the diff for D138529: [AVR] Optimize constant 32-bit shifts.
  • use getZeroRegister instead of AVR::R1
  • use AVR::sub_lo and AVR::sub_hi instead of numeric constants
  • optimize REG_SEQUENCE
Dec 5 2022, 5:54 AM · Restricted Project, Restricted Project

Nov 28 2022

aykevl committed rG5527b215160c: [AVR] Do not use R0/R1 on avrtiny (authored by aykevl).
[AVR] Do not use R0/R1 on avrtiny
Nov 28 2022, 9:06 AM · Restricted Project, Restricted Project
aykevl closed D138582: [AVR] Do not use R0/R1 on avrtiny.
Nov 28 2022, 9:06 AM · Restricted Project, Restricted Project
aykevl added inline comments to D131867: [AVR] Do not emit instructions invalid for attiny10.
Nov 28 2022, 7:41 AM · Restricted Project, Restricted Project

Nov 27 2022

aykevl updated the diff for D138529: [AVR] Optimize constant 32-bit shifts.
  • rebase (no change in patch) - hopefully the pre-merge check now works?
Nov 27 2022, 8:03 AM · Restricted Project, Restricted Project
aykevl added a comment to D138582: [AVR] Do not use R0/R1 on avrtiny.

I have updated the patch. You are correct about the zero register in interrupts, I must have incorrectly remembered the other behavior. Unfortunately, fixing that also meant changing NEGW and ROLB.
I still think it should be safe to omit saving/restoring R17 but I might do that in a separate patch.

Nov 27 2022, 8:00 AM · Restricted Project, Restricted Project
aykevl updated the diff for D138582: [AVR] Do not use R0/R1 on avrtiny.
  • add explicit zero register to NEGW and ROLB
Nov 27 2022, 7:57 AM · Restricted Project, Restricted Project
aykevl updated the diff for D138582: [AVR] Do not use R0/R1 on avrtiny.
  • fix zero register save/restore in interrupts
  • also test on atmega328p
Nov 27 2022, 7:55 AM · Restricted Project, Restricted Project
aykevl committed rG91ae1afd3cb9: [AVR] Remove unused register scavenger (authored by aykevl).
[AVR] Remove unused register scavenger
Nov 27 2022, 6:32 AM · Restricted Project, Restricted Project
aykevl committed rG3b2b83ce2f6b: [AVR] Add $ separator string (like avr-gcc) (authored by aykevl).
[AVR] Add $ separator string (like avr-gcc)
Nov 27 2022, 6:31 AM · Restricted Project, Restricted Project
aykevl committed rG131cddcba2c4: [AVR] Fix broken bitcast for aliases in non-zero address space (authored by aykevl).
[AVR] Fix broken bitcast for aliases in non-zero address space
Nov 27 2022, 6:31 AM · Restricted Project, Restricted Project
aykevl closed D117957: [AVR] Remove unused register scavenger.
Nov 27 2022, 6:31 AM · Restricted Project, Restricted Project
aykevl closed D138535: [AVR] Add $ separator string (like avr-gcc).
Nov 27 2022, 6:31 AM · Restricted Project, Restricted Project