Page MenuHomePhabricator

aykevl (Ayke)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 25 2018, 9:12 AM (212 w, 5 d)

Recent Activity

Wed, May 11

aykevl added a comment to D124815: [libclang] Fall back to getMainExecutable when dladdr fails.

This file is also linked to libclang.a.

Wed, May 11, 9:46 AM · Restricted Project, Restricted Project

Fri, May 6

aykevl accepted D125077: [compiler-rt][builtins] Fix wrong ABI of AVR __mulqi3 & __mulhi3.
Fri, May 6, 6:23 AM · Restricted Project, Restricted Project, Restricted Project
aykevl added a comment to D125077: [compiler-rt][builtins] Fix wrong ABI of AVR __mulqi3 & __mulhi3.

Looks good to me. It might be possible to optimize these functions a bit more but that can happen at a later time.

Fri, May 6, 6:23 AM · Restricted Project, Restricted Project, Restricted Project

Thu, May 5

aykevl added a comment to D123200: [compiler-rt][builtins] Add several helper functions for AVR.

@benshi001 I have been looking through the GCC code and I think avr-gcc also has a special calling convention for many other functions, including __mulqi3 and __mulhi3.

Thu, May 5, 4:02 PM · Restricted Project, Restricted Project, Restricted Project
aykevl accepted D124600: [compiler-rt][builtins] Add helper functions for uint16/sint16/uint8/sint8 div&mod.

Looks good to me.

Thu, May 5, 8:20 AM · Restricted Project, Restricted Project

Wed, May 4

aykevl committed rG514371c3706d: [compiler-rt][AVR] Fix avr_SOURCES CMake variable (authored by aykevl).
[compiler-rt][AVR] Fix avr_SOURCES CMake variable
Wed, May 4, 5:30 PM · Restricted Project, Restricted Project
aykevl closed D124969: [compiler-rt][AVR] Fix avr_SOURCES CMake variable.
Wed, May 4, 5:29 PM · Restricted Project, Restricted Project
aykevl added a comment to D124600: [compiler-rt][builtins] Add helper functions for uint16/sint16/uint8/sint8 div&mod.

The following code produces __divmodqi4, so I think it is still needed:

Wed, May 4, 5:26 PM · Restricted Project, Restricted Project
aykevl requested review of D124969: [compiler-rt][AVR] Fix avr_SOURCES CMake variable.
Wed, May 4, 3:54 PM · Restricted Project, Restricted Project
aykevl accepted D123476: [MC][AVR] Implement decoding ST/LD.
Wed, May 4, 2:19 PM · Restricted Project, Restricted Project
aykevl accepted D123442: [MC][AVR] Implement decoding STD/LDD.

Looks good to me.

Wed, May 4, 2:15 PM · Restricted Project, Restricted Project
aykevl added a comment to D124600: [compiler-rt][builtins] Add helper functions for uint16/sint16/uint8/sint8 div&mod.

Looks good to me.

Wed, May 4, 2:09 PM · Restricted Project, Restricted Project
aykevl committed rGc1d6dca694d0: [compiler-rt][AVR] Use correct return value for __ledf2 etc (authored by aykevl).
[compiler-rt][AVR] Use correct return value for __ledf2 etc
Wed, May 4, 1:53 PM · Restricted Project, Restricted Project
aykevl closed D124939: [compiler-rt][AVR] Use correct return value for __ledf2, __lesf2, etc.
Wed, May 4, 1:53 PM · Restricted Project, Restricted Project
Herald added a project to D98205: [builtins] Fix ABI-incompatibility with GCC for floating-point compare: Restricted Project.

This change resulted in a regression for AVR: D124939

Wed, May 4, 10:06 AM · Restricted Project, Restricted Project
aykevl updated the diff for D124939: [compiler-rt][AVR] Use correct return value for __ledf2, __lesf2, etc.
Wed, May 4, 10:04 AM · Restricted Project, Restricted Project
aykevl requested review of D124939: [compiler-rt][AVR] Use correct return value for __ledf2, __lesf2, etc.
Wed, May 4, 10:00 AM · Restricted Project, Restricted Project
aykevl added inline comments to D123088: attributes: introduce allockind attr for describing allocator fn behavior.
Wed, May 4, 5:06 AM · Restricted Project, Restricted Project

Mon, May 2

aykevl requested review of D124815: [libclang] Fall back to getMainExecutable when dladdr fails.
Mon, May 2, 6:30 PM · Restricted Project, Restricted Project

Apr 20 2022

Herald added a project to D119431: [C API] Add LLVMWriteThinLTOBitcodeToMemoryBuffer to C API: Restricted Project.

ping

Apr 20 2022, 6:49 AM · Restricted Project, Restricted Project

Apr 12 2022

aykevl added a comment to D123088: attributes: introduce allockind attr for describing allocator fn behavior.

Not a real review but I found this which looks like a bug.

Apr 12 2022, 3:50 AM · Restricted Project, Restricted Project

Apr 7 2022

aykevl added a comment to D123200: [compiler-rt][builtins] Add several helper functions for AVR.

What about chip families other than avr2 (the default)? Some have a different PC pointer size (1-3 bytes, therefore affecting the ABI), some have different instructions, etc.

Apr 7 2022, 6:26 AM · Restricted Project, Restricted Project, Restricted Project

Mar 26 2022

aykevl added reviewers for D122533: [AVR] Remove AVRRelaxMemOperations: aykevl, benshi001.
Mar 26 2022, 2:37 PM · Restricted Project, Restricted Project, Restricted Project

Mar 25 2022

aykevl added a comment to D118095: [clang][AVR] Reject non assembly source files for the avr1 family.

@MaskRay it was my suggestion to move this from the toolchain specific file to the generic file, because it makes the implementation much simpler. See my comment D117423#3251110 for details.

Mar 25 2022, 7:51 AM · Restricted Project, Restricted Project
aykevl accepted D118354: [AVR][NFC] Fix incorrect register states in expanding pseudo instructions.
Mar 25 2022, 7:35 AM · Restricted Project, Restricted Project
aykevl accepted D115618: [AVR] Optimize int16 airthmetic right shift for shift amount 7/14/15.
Mar 25 2022, 7:28 AM · Restricted Project, Restricted Project
aykevl updated the diff for D117426: [AVR] Only push and clear R1 in interrupts when necessary.

@benshi001 I've rebased the patch and updated it with your suggestions.

Mar 25 2022, 6:18 AM · Restricted Project, Restricted Project

Mar 24 2022

aykevl accepted D122401: [AVR] Add more devices.
Mar 24 2022, 12:54 PM · Restricted Project, Restricted Project, Restricted Project

Mar 23 2022

aykevl accepted D120720: [clang][AVR] Implement standard calling convention for AVR and AVRTiny.
Mar 23 2022, 11:18 AM · Restricted Project, Restricted Project
aykevl accepted D121672: [AVR] Reject/Reserve R0~R15 on AVRTiny.
Mar 23 2022, 10:06 AM · Restricted Project, Restricted Project
aykevl accepted D119807: [AVR][MC] Emit some aliases for GPRs and IO registers.

Hmm, ok. An assembly test might have been useful to show that it actually works but the patch looks fine to me so I'll accept it.

Mar 23 2022, 9:56 AM · Restricted Project, Restricted Project

Mar 22 2022

aykevl accepted D121767: [AVR] Fix incorrect calling convention for varargs functions.

I assume you've verified the new test cases with avr-gcc? If so, this looks good to me.

Mar 22 2022, 5:40 PM · Restricted Project, Restricted Project
aykevl added inline comments to D121672: [AVR] Reject/Reserve R0~R15 on AVRTiny.
Mar 22 2022, 5:37 PM · Restricted Project, Restricted Project
aykevl added a comment to D119807: [AVR][MC] Emit some aliases for GPRs and IO registers.

I think there is one issue in the test. Other than that, this looks good to me.

Mar 22 2022, 5:35 PM · Restricted Project, Restricted Project
aykevl accepted D121359: [AVR] Add more devices.
Mar 22 2022, 5:27 PM · Restricted Project, Restricted Project, Restricted Project
aykevl added inline comments to D121672: [AVR] Reject/Reserve R0~R15 on AVRTiny.
Mar 22 2022, 5:21 PM · Restricted Project, Restricted Project
aykevl accepted D121539: [AVR] Generate 'rcall' instead of 'call' on avr2 and avr25.

Looks good to me!

Mar 22 2022, 5:08 PM · Restricted Project, Restricted Project
aykevl added a comment to D120026: [ARM] Fix ARM backend to correctly use atomic expansion routines..

This also affects Cortex-M0, but I don't think __sync_* routines actually exist in any Cortex-M0 libraries. So in practice this just leads to a slightly different linker error for those cases, I think.

Mar 22 2022, 7:46 AM · Restricted Project, Restricted Project

Mar 12 2022

aykevl added inline comments to D119342: [LoopRotate] Don't rotate loops when the minsize attribute is present.
Mar 12 2022, 9:22 AM · Restricted Project, Restricted Project

Mar 1 2022

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

Ping?

Mar 1 2022, 6:46 AM · Restricted Project, Restricted Project

Feb 10 2022

aykevl updated the diff for D119342: [LoopRotate] Don't rotate loops when the minsize attribute is present.

Ok, I've updated this patch to remove EnableHeaderDuplication.

Feb 10 2022, 11:25 PM · Restricted Project, Restricted Project
aykevl updated the diff for D119431: [C API] Add LLVMWriteThinLTOBitcodeToMemoryBuffer to C API.
  • fix
Feb 10 2022, 5:24 AM · Restricted Project, Restricted Project
aykevl updated the diff for D119431: [C API] Add LLVMWriteThinLTOBitcodeToMemoryBuffer to C API.
  • add Go API
Feb 10 2022, 5:20 AM · Restricted Project, Restricted Project
aykevl requested review of D119431: [C API] Add LLVMWriteThinLTOBitcodeToMemoryBuffer to C API.
Feb 10 2022, 5:19 AM · Restricted Project, Restricted Project
aykevl added a comment to D72404: [ThinLTO/FullLTO] Support Os and Oz.

@mehdi_amini thanks for explaining! D119342 moves slightly closer to removing SizeLevel from the pass pipeline setup.

Feb 10 2022, 4:24 AM · Restricted Project, Restricted Project

Feb 9 2022

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

Should we do this when the optsize function attribute is set, not just when the minsize function attribute is set?

I don't think so. Disabling rotation is a heavy hammer, as it will disable a lot of other loop optimizations implicitly due to most transforms requiring rotated form.

Feb 9 2022, 11:57 AM · Restricted Project, Restricted Project
aykevl requested review of D119342: [LoopRotate] Don't rotate loops when the minsize attribute is present.
Feb 9 2022, 7:26 AM · Restricted Project, Restricted Project
aykevl added a comment to D72404: [ThinLTO/FullLTO] Support Os and Oz.

After some more testing on a larger amount of code (many small programs, together over 1MB in binary size), LoopRotate indeed seems to be the culprit. I'm now looking into a patch to LoopRotate to respect the optsize function attribute.

Feb 9 2022, 6:16 AM · Restricted Project, Restricted Project
aykevl added a comment to D72404: [ThinLTO/FullLTO] Support Os and Oz.

Apparently there is also another patch that tries to do something very similar: D81223.

Feb 9 2022, 5:40 AM · Restricted Project, Restricted Project

Feb 8 2022

Herald added a reviewer for D72404: [ThinLTO/FullLTO] Support Os and Oz: MaskRay.

I would be very interested in this patch, because for me to use ThinLTO without size regressions I need to set the optimization size level in the linker (PassManagerBuilder.SizeLevel etc).
This patch seems mostly correct to me, except for the function attributes. These function attributes (optsize, minsize) should IMHO be set in the frontend, not in the linker.

Feb 8 2022, 4:28 AM · Restricted Project, Restricted Project

Feb 2 2022

aykevl committed rG44ee9864a456: [AVR][NFC] Make atomics tests easier to read (authored by aykevl).
[AVR][NFC] Make atomics tests easier to read
Feb 2 2022, 12:11 AM
aykevl committed rG316664783df8: [AVR] Fix atomicrmw result value (authored by aykevl).
[AVR] Fix atomicrmw result value
Feb 2 2022, 12:11 AM
aykevl closed D117991: [AVR][NFC] Make atomics tests easier to read.
Feb 2 2022, 12:10 AM · Restricted Project
aykevl closed D117725: [AVR] Fix atomicrmw result value.
Feb 2 2022, 12:10 AM · Restricted Project

Jan 23 2022

aykevl added a reviewer for D114611: [AVR] Expand STDWSPQRr & STDSPQRr, approach #2: aykevl.
Jan 23 2022, 9:44 AM · Restricted Project, Restricted Project, Restricted Project
aykevl added inline comments to D117725: [AVR] Fix atomicrmw result value.
Jan 23 2022, 9:05 AM · Restricted Project
aykevl requested review of D117991: [AVR][NFC] Make atomics tests easier to read.
Jan 23 2022, 9:02 AM · Restricted Project
aykevl updated the diff for D117725: [AVR] Fix atomicrmw result value.
  • small update to the load8.ll test to make it more readable
Jan 23 2022, 9:00 AM · Restricted Project
aykevl committed rG116ab78694dd: [AVR] Make use of the constant value 0 in R1 (authored by aykevl).
[AVR] Make use of the constant value 0 in R1
Jan 23 2022, 8:08 AM
aykevl committed rG153359180a9d: [AVR] Remove regalloc workaround for LDDWRdPtrQ (authored by aykevl).
[AVR] Remove regalloc workaround for LDDWRdPtrQ
Jan 23 2022, 8:08 AM
aykevl closed D117425: [AVR] Make use of the constant value 0 in R1.
Jan 23 2022, 8:08 AM · Restricted Project
aykevl closed D117831: [AVR] Remove regalloc workaround for LDDWRdPtrQ.
Jan 23 2022, 8:08 AM · Restricted Project, Restricted Project

Jan 22 2022

aykevl added inline comments to D117725: [AVR] Fix atomicrmw result value.
Jan 22 2022, 11:07 AM · Restricted Project
aykevl added inline comments to D117725: [AVR] Fix atomicrmw result value.
Jan 22 2022, 11:05 AM · Restricted Project
aykevl updated the diff for D117725: [AVR] Fix atomicrmw result value.
  • use getIORegSREG() instead of hardcoding I/O address 0x3f.
Jan 22 2022, 11:02 AM · Restricted Project
aykevl added inline comments to D117425: [AVR] Make use of the constant value 0 in R1.
Jan 22 2022, 10:40 AM · Restricted Project
aykevl requested review of D117957: [AVR] Remove unused register scavenger.
Jan 22 2022, 10:29 AM · Restricted Project
aykevl abandoned D117802: [AVR] Use correct register class for LPM/ELPM.

Hmm, I realize that this is not the best approach. I will make a new patch. You are correct that some instructions had the wrong register class operand.

Jan 22 2022, 10:09 AM · Restricted Project

Jan 20 2022

aykevl requested review of D117831: [AVR] Remove regalloc workaround for LDDWRdPtrQ.
Jan 20 2022, 12:59 PM · Restricted Project, Restricted Project
aykevl requested review of D117802: [AVR] Use correct register class for LPM/ELPM.
Jan 20 2022, 9:41 AM · Restricted Project

Jan 19 2022

aykevl accepted D116493: [AVR] Generate ELPM for loading byte/word from extended program memory.

Looks good to me!

Jan 19 2022, 3:20 PM · Restricted Project
aykevl accepted D115987: [AVR][MC] Generate section '.progmemX.data' for extended flash banks.

Looks good to me! A few suggestions below (which aren't necessary, just ideas).

Jan 19 2022, 3:10 PM · Restricted Project
aykevl requested review of D117725: [AVR] Fix atomicrmw result value.
Jan 19 2022, 2:44 PM · Restricted Project
aykevl committed rGca27b026f990: [AVR] Do not clear r0 at interrupt entry (authored by aykevl).
[AVR] Do not clear r0 at interrupt entry
Jan 19 2022, 5:23 AM
aykevl closed D116756: [AVR] Do not clear r0 at interrupt entry.
Jan 19 2022, 5:23 AM · Restricted Project
aykevl committed rG3d59d94a206a: [AVR] Mark call-clobbered registers as clobbered in interrupt handlers (authored by aykevl).
[AVR] Mark call-clobbered registers as clobbered in interrupt handlers
Jan 19 2022, 5:23 AM
aykevl closed D116551: [AVR] Mark call-clobbered registers as clobbered in interrupt handlers.
Jan 19 2022, 5:23 AM · Restricted Project
aykevl committed rGf41d2d9469d6: [AVR] Remove redundant dynalloca SP save/restore pass (authored by aykevl).
[AVR] Remove redundant dynalloca SP save/restore pass
Jan 19 2022, 5:23 AM
aykevl closed D97815: [AVR] Remove redundant dynalloca SP save/restore pass.
Jan 19 2022, 5:22 AM · Restricted Project
aykevl committed rGd649faff9c0c: [LLD][COFF] Support GNU style == aliases (authored by aykevl).
[LLD][COFF] Support GNU style == aliases
Jan 19 2022, 5:22 AM
aykevl closed D113365: [LLD][COFF] Support GNU style == aliases.
Jan 19 2022, 5:22 AM · Restricted Project

Jan 18 2022

aykevl added a comment to D116493: [AVR] Generate ELPM for loading byte/word from extended program memory.

I found out that avr-gcc does not support reusing the same ldi instruction for multiple elpm instructions, so if we can do that, we're better than avr-gcc :)
https://godbolt.org/z/Yzhaj7e54

Jan 18 2022, 8:07 AM · Restricted Project
aykevl added a comment to D116493: [AVR] Generate ELPM for loading byte/word from extended program memory.

This looks pretty good. Thanks for the improvements!

Jan 18 2022, 8:02 AM · Restricted Project
aykevl accepted D115982: [clang][AVR] Implement '__flashN' for variables on different flash banks.

Looks good to me!

Jan 18 2022, 6:48 AM · Restricted Project
aykevl added a comment to D117423: [AVR][clang] Reject non assembly source files for the avr1 family.

I'm not sure this is the correct location for these checks. You're essentially checking whether the compilation looks like a C/C++ compilation or an assembly compilation based on the flags and the file name. However, the Clang driver already does something like this: it converts the command line arguments and files into a list of jobs to perform. This is done in Driver::BuildActions, Driver::BuildJobs, Clang::ConstructJob, and other places.
I think a better place to do this check is in Clang::ConstructJob. There is already something similar here:

Jan 18 2022, 6:37 AM · Restricted Project

Jan 17 2022

aykevl added inline comments to D86547: [compiler-rt][builtins] Use c[tl]zsi macro instead of __builtin_c[tl]z.
Jan 17 2022, 5:13 AM · Restricted Project
aykevl accepted D86547: [compiler-rt][builtins] Use c[tl]zsi macro instead of __builtin_c[tl]z.

Looks good to me.

Jan 17 2022, 5:07 AM · Restricted Project
aykevl accepted D86546: [compiler-rt][builtins] Use explicitly-sized integer types for LibCalls.

I've looked through the code again. It looks correct and (in past testing) it fixed a bug I had, so I'm going to accept this.

Jan 17 2022, 4:43 AM · Restricted Project
aykevl requested changes to D115618: [AVR] Optimize int16 airthmetic right shift for shift amount 7/14/15.

(just so that this doesn't appear in my review queue anymore)

Jan 17 2022, 4:29 AM · Restricted Project, Restricted Project
aykevl added a comment to D115618: [AVR] Optimize int16 airthmetic right shift for shift amount 7/14/15.

Can you please add some .mir tests? As an example, I have created one for ASRW7Rd and ASRW8Rd:

Jan 17 2022, 4:27 AM · Restricted Project, Restricted Project

Jan 16 2022

aykevl added inline comments to D117426: [AVR] Only push and clear R1 in interrupts when necessary.
Jan 16 2022, 4:43 AM · Restricted Project, Restricted Project
aykevl requested review of D117426: [AVR] Only push and clear R1 in interrupts when necessary.
Jan 16 2022, 4:40 AM · Restricted Project, Restricted Project
aykevl updated the summary of D117425: [AVR] Make use of the constant value 0 in R1.
Jan 16 2022, 4:36 AM · Restricted Project
aykevl requested review of D117425: [AVR] Make use of the constant value 0 in R1.
Jan 16 2022, 4:35 AM · Restricted Project

Jan 6 2022

aykevl requested review of D116756: [AVR] Do not clear r0 at interrupt entry.
Jan 6 2022, 9:29 AM · Restricted Project
aykevl updated the diff for D116551: [AVR] Mark call-clobbered registers as clobbered in interrupt handlers.
  • rebase (try 2, previous one was the wrong patch)
Jan 6 2022, 8:56 AM · Restricted Project
aykevl updated the diff for D116551: [AVR] Mark call-clobbered registers as clobbered in interrupt handlers.
  • rebased
Jan 6 2022, 8:54 AM · Restricted Project
aykevl added a comment to D116551: [AVR] Mark call-clobbered registers as clobbered in interrupt handlers.

Just one suggestion, run llvm/utils/update_llc_test_checks.py against the test case llvm/test/CodeGen/AVR/interrupts.ll

Jan 6 2022, 8:28 AM · Restricted Project
aykevl updated the diff for D116551: [AVR] Mark call-clobbered registers as clobbered in interrupt handlers.
  • replaced CHECK: with CHECK-NEXT:
Jan 6 2022, 8:25 AM · Restricted Project
aykevl added a reviewer for D107853: [NFC][AVR] Remove unused isMachineVerifierClean(): aykevl.

I actually made several patches to the AVR backend to make it machine verifier clean, so it was certainly not incorrectly disabled. Here are the patches: D96969, D97127, D97172, D97131, D97159. This did in fact find a few actual bugs, so I'm very happy with the work on the machine verifier!

Jan 6 2022, 5:33 AM · Restricted Project