Page MenuHomePhabricator

aykevl (Ayke)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 25 2018, 9:12 AM (101 w, 6 d)

Recent Activity

Sun, Apr 5

aykevl added a comment to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

@xbolva00 I could, but to me this is not trivial (I'm not familiar with the code and I'm not sure what I would break). If it's easy for you, then please do (otherwise I can send a patch for review).
I have already worked around this issue in a different way (by running the compiler invocation in a separate process).

Sun, Apr 5, 9:04 AM · Restricted Project, Restricted Project
aykevl updated the summary of D63852: [Clang] Move assembler into a separate file.
Sun, Apr 5, 9:04 AM · Restricted Project
aykevl added a comment to D63852: [Clang] Move assembler into a separate file.

Ping?
I'm not sure who to add as a reviewer.

Sun, Apr 5, 8:32 AM · Restricted Project
aykevl added a reviewer for D63852: [Clang] Move assembler into a separate file: echristo.
Sun, Apr 5, 8:32 AM · Restricted Project

Thu, Apr 2

aykevl added a comment to D66324: clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM.

I have the same issue as @wenju. The second time I call ExecuteCompilerInvocation it will give the error above, leading me to believe some memory isn't properly cleared.

Thu, Apr 2, 8:38 AM · Restricted Project, Restricted Project

Tue, Mar 17

aykevl committed rG4add24920550: [AVR] Add support for the -mdouble=x flag (authored by aykevl).
[AVR] Add support for the -mdouble=x flag
Tue, Mar 17, 5:44 AM
aykevl committed rG0818e6cf1d30: [LLDB] Add support for AVR breakpoints (authored by aykevl).
[LLDB] Add support for AVR breakpoints
Tue, Mar 17, 5:44 AM
aykevl closed D76181: [AVR] Add support for the -mdouble=x flag.
Tue, Mar 17, 5:44 AM · Restricted Project
aykevl closed D74255: [LLDB] Add support for AVR breakpoints.
Tue, Mar 17, 5:44 AM · Restricted Project

Mon, Mar 16

aykevl added a comment to D76201: [TargetLowering] Only demand a rotation's modulo amount bits.

Thank you for the fix for AVR! It's unfamiliar code to me but it seems reasonable.

Mon, Mar 16, 2:46 PM · Restricted Project
aykevl added a comment to D76201: [TargetLowering] Only demand a rotation's modulo amount bits.

See my inline comment. I only checked rol8 on AVR but I think the same applies to ror8. Basically it seems like the transformation is correct but will make the operation unacceptably slower.

Mon, Mar 16, 7:35 AM · Restricted Project

Sun, Mar 15

aykevl added a comment to D76181: [AVR] Add support for the -mdouble=x flag.

The GCC side commits can be found on https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92055
So it seems that we will have both -mlong-double-{64,80,128} (80 is used by x86 fp80) and -mlong-double={32,64}... (I actually prefer = to -)

Sun, Mar 15, 7:28 AM · Restricted Project
aykevl added a reviewer for D76182: [AVR] Support aliases in non-zero address space: MaskRay.
Sun, Mar 15, 7:28 AM · Restricted Project
aykevl updated the diff for D76181: [AVR] Add support for the -mdouble=x flag.

Fixed nits.

Sun, Mar 15, 7:28 AM · Restricted Project

Sat, Mar 14

aykevl created D76182: [AVR] Support aliases in non-zero address space.
Sat, Mar 14, 11:48 AM · Restricted Project
aykevl created D76181: [AVR] Add support for the -mdouble=x flag.
Sat, Mar 14, 11:47 AM · Restricted Project

Mar 8 2020

aykevl added a comment to D72206: [bindings/go] Implement API for adding debug info to global variables.

@whitequark can you take a look?

Mar 8 2020, 6:23 AM · Restricted Project

Mar 7 2020

aykevl added a comment to D75099: [AVR] Include AVR by default in LLVM builds.

Hi Dylan - on the mailing list thread for this I raised a concern about disassembler support based on comments I'd seen in a recent patch. Can you please clarify the current status there?

@aykevl perhaps you might have a more up-to-date answer than me here given the recent DWARF-dumping fixes you've made?

Mar 7 2020, 10:16 AM · Restricted Project
aykevl added a reviewer for D75763: [ELF] Postpone evaluation of ORIGIN/LENGTH in a MEMORY command: aykevl.

Adding myself as reviewer so I don't lose this patch. I hope to test this out soon.

Mar 7 2020, 10:16 AM · Restricted Project

Feb 26 2020

aykevl committed rG6afc3de42f8f: [AVR] Fix private label prefix (authored by aykevl).
[AVR] Fix private label prefix
Feb 26 2020, 11:33 AM
aykevl committed rG165f707f9d0f: [AVR] Don't adjust addresses by 2 for absolute values (authored by aykevl).
[AVR] Don't adjust addresses by 2 for absolute values
Feb 26 2020, 11:33 AM
aykevl closed D75124: [AVR] Fix private label prefix.
Feb 26 2020, 11:33 AM · Restricted Project
aykevl closed D74213: [AVR] Don't adjust addresses by 2 for absolute values.
Feb 26 2020, 11:32 AM · Restricted Project

Feb 25 2020

aykevl created D75124: [AVR] Fix private label prefix.
Feb 25 2020, 8:35 AM · Restricted Project
aykevl added a comment to D74255: [LLDB] Add support for AVR breakpoints.

However, if we look at this locally, if the AVR architecture has a trap opcode (maybe to implement __builtin_debugbreak() -- I am assuming that's what 0x98 0x95 is), then I don't see a problem with this function returning it.

Feb 25 2020, 7:48 AM · Restricted Project
aykevl added a comment to D73969: [LLDB] Let DataExtractor deal with two-byte addresses.

Thanks for the review!

Feb 25 2020, 7:38 AM · Restricted Project, Restricted Project
aykevl abandoned D73961: [LLDB] Addresses can be two bytes in size.

Closing this one. Maybe there is something useful in this patch but if there is, I'll submit that in a standalone (more focused) patch. The majority of it has been merged in D73969.

Feb 25 2020, 7:38 AM · Restricted Project, Restricted Project
aykevl committed rGec1efe71130f: [LLDB] Let DataExtractor deal with two-byte addresses (authored by aykevl).
[LLDB] Let DataExtractor deal with two-byte addresses
Feb 25 2020, 7:29 AM
aykevl closed D73969: [LLDB] Let DataExtractor deal with two-byte addresses.
Feb 25 2020, 7:28 AM · Restricted Project, Restricted Project
aykevl added a comment to D75099: [AVR] Include AVR by default in LLVM builds.

Great! I've been looking forward to this.

Feb 25 2020, 7:24 AM · Restricted Project
aykevl added a comment to D73969: [LLDB] Let DataExtractor deal with two-byte addresses.

I agree only one of those two places should be enough. My idea was to make the constructors delegate to one another (if necessary by creating a private uber-constructor that everybody can delegate to). Then we could have only one assert.

But if that's hard for some reason, your proposal seems fine too.

Feb 25 2020, 7:09 AM · Restricted Project, Restricted Project
aykevl updated the diff for D73969: [LLDB] Let DataExtractor deal with two-byte addresses.

Rebase on master (after GetPointer was removed).

Feb 25 2020, 7:00 AM · Restricted Project, Restricted Project
aykevl abandoned D66395: [util] Add check to git-llvm to avoid pushing to a non-trunk branch.

I don't think this is relevant anymore with the move to git.

Feb 25 2020, 6:56 AM · Restricted Project
aykevl updated the diff for D74213: [AVR] Don't adjust addresses by 2 for absolute values.

I found a way to test at least the case where the value should not be shifted. If it is shifted, the instruction becomes something other than a nop.
For the other case (when the value should be shifted), the AVR backend needs to be able to disassemble branch instructions.

Feb 25 2020, 6:46 AM · Restricted Project
aykevl added a comment to D51642: [LLVM-C] Add bindings for addCoroutinePassesToExtensionPoints.

Merged: https://github.com/llvm/llvm-project/commit/2a7a989c3edc33ad3042052ed50fee37ab254c7d (but Phabricator won't show a second merge)

Feb 25 2020, 5:27 AM · Restricted Project

Feb 24 2020

aykevl committed rG2a7a989c3edc: [LLVM-C] Add bindings for addCoroutinePassesToExtensionPoints (authored by aykevl).
[LLVM-C] Add bindings for addCoroutinePassesToExtensionPoints
Feb 24 2020, 11:17 AM
aykevl updated the diff for D51642: [LLVM-C] Add bindings for addCoroutinePassesToExtensionPoints.

Rebased on master.

Feb 24 2020, 11:16 AM · Restricted Project
aykevl closed D72209: [bindings/go] Add RemoveFromParentAsInstruction.

I forgot to include the Differential Revision line but this has been committed here:
https://github.com/llvm/llvm-project/commit/00570c2f18872ce0a1f68cc73e7e259ad67aa60d

Feb 24 2020, 10:48 AM · Restricted Project
aykevl committed rG5b2046c95c67: [AVR] Disassemble register operands (authored by aykevl).
[AVR] Disassemble register operands
Feb 24 2020, 10:39 AM
aykevl committed rG00570c2f1887: [bindings/go] Add RemoveFromParentAsInstruction (authored by aykevl).
[bindings/go] Add RemoveFromParentAsInstruction
Feb 24 2020, 10:39 AM
aykevl closed D74045: [AVR] Disassemble register operands.
Feb 24 2020, 10:39 AM · Restricted Project
aykevl committed rGd1af6011e56b: [AVR] Don't assert on an undefined operand (authored by aykevl).
[AVR] Don't assert on an undefined operand
Feb 24 2020, 10:30 AM
aykevl closed D73958: [AVR] Don't assert on an undefined operand.
Feb 24 2020, 10:30 AM · Restricted Project
aykevl committed rGa5424ded377e: [AVR] Use correct register class for mul instructions (authored by aykevl).
[AVR] Use correct register class for mul instructions
Feb 24 2020, 10:21 AM
aykevl closed D74281: [AVR] Use correct register class for mul instructions.
Feb 24 2020, 10:21 AM · Restricted Project

Feb 8 2020

aykevl added a comment to D64830: [Xtensa 4/10] Add basic *td files with Xtensa architecture description..

@appcs Do you perhaps have access to the ISA documentation so you can review these patches?

Feb 8 2020, 11:13 AM · Restricted Project
aykevl created D74281: [AVR] Use correct register class for mul instructions.
Feb 8 2020, 9:35 AM · Restricted Project

Feb 7 2020

aykevl created D74255: [LLDB] Add support for AVR breakpoints.
Feb 7 2020, 2:07 PM · Restricted Project
aykevl added a comment to D74213: [AVR] Don't adjust addresses by 2 for absolute values.

After some investigation, it appears that "temporary labels" can be constructed like this:

Feb 7 2020, 1:30 PM · Restricted Project
aykevl updated the summary of D74213: [AVR] Don't adjust addresses by 2 for absolute values.
Feb 7 2020, 4:16 AM · Restricted Project
aykevl created D74213: [AVR] Don't adjust addresses by 2 for absolute values.
Feb 7 2020, 4:16 AM · Restricted Project
aykevl added a comment to D73962: [DebugInfo] Error if unsupported address size detected in line table.

@jhenderson thanks!
It took me a while but finally I figured out that the problem is with the AVR backend - at least the first bug I was dealing with. For some reason it adjusted absolute relocations, breaking references between DWARF sections.

Feb 7 2020, 3:23 AM · Restricted Project

Feb 6 2020

aykevl added a comment to D73969: [LLDB] Let DataExtractor deal with two-byte addresses.

Right now there are asserts both when constructing/copying(?) the object (5 asserts) and at the place where m_addr_size is used (3 asserts). I would propose picking one place, such as where it is used. That would reduce the number of asserts to 3 and keep them close together. What do you think?

I agree only one of those two places should be enough. My idea was to make the constructors delegate to one another (if necessary by creating a private uber-constructor that everybody can delegate to). Then we could have only one assert.

Feb 6 2020, 3:46 AM · Restricted Project, Restricted Project

Feb 5 2020

aykevl added a comment to D73962: [DebugInfo] Error if unsupported address size detected in line table.

I just noticed this patch from D73961. I am not yet familiar with the DWARF support in LLVM but just wanted to say two things:

Feb 5 2020, 11:32 AM · Restricted Project
aykevl added a comment to D73961: [LLDB] Addresses can be two bytes in size.

How do you normally generate the binaries with these kinds of addresses? Can they be produced with clang? Can they be produced with llvm-mc? Linked with lld ?

Feb 5 2020, 11:12 AM · Restricted Project, Restricted Project
aykevl updated the diff for D73969: [LLDB] Let DataExtractor deal with two-byte addresses.

I do have one question though. Will the DataExtractor actually do something reasonable for non-power-of-2 sizes (5,6,7) ? If yes, then great -- if not, we should keep the assert as 2 || 4 || 8.

Feb 5 2020, 11:02 AM · Restricted Project, Restricted Project
aykevl updated the summary of D74049: [AVR] Implement disassembly support for I/O instructions.
Feb 5 2020, 6:30 AM · Restricted Project
aykevl created D74049: [AVR] Implement disassembly support for I/O instructions.
Feb 5 2020, 6:30 AM · Restricted Project
aykevl created D74045: [AVR] Disassemble register operands.
Feb 5 2020, 5:52 AM · Restricted Project
aykevl updated the diff for D73958: [AVR] Don't assert on an undefined operand.

Added comments, as requested.

Feb 5 2020, 5:50 AM · Restricted Project
aykevl committed rGea8b2cb9bf5e: [AVR] Add disassembly tests for supported instructions (authored by aykevl).
[AVR] Add disassembly tests for supported instructions
Feb 5 2020, 3:43 AM
aykevl closed D73911: [AVR] Add disassembly tests for supported instructions.
Feb 5 2020, 3:42 AM · Restricted Project

Feb 4 2020

aykevl created D73969: [LLDB] Let DataExtractor deal with two-byte addresses.
Feb 4 2020, 8:04 AM · Restricted Project, Restricted Project
aykevl added a comment to D73961: [LLDB] Addresses can be two bytes in size.

See D73969.

Feb 4 2020, 8:04 AM · Restricted Project, Restricted Project
aykevl updated the diff for D73969: [LLDB] Let DataExtractor deal with two-byte addresses.

Added a unit test.

Feb 4 2020, 8:04 AM · Restricted Project, Restricted Project
aykevl created D73961: [LLDB] Addresses can be two bytes in size.
Feb 4 2020, 6:05 AM · Restricted Project, Restricted Project
aykevl created D73958: [AVR] Don't assert on an undefined operand.
Feb 4 2020, 5:37 AM · Restricted Project

Feb 3 2020

aykevl created D73911: [AVR] Add disassembly tests for supported instructions.
Feb 3 2020, 11:19 AM · Restricted Project

Jan 30 2020

aykevl committed rG727ed11b24c0: [AVR] Recognize the AVR architecture in lldb (authored by aykevl).
[AVR] Recognize the AVR architecture in lldb
Jan 30 2020, 4:49 AM
aykevl closed D73539: [AVR] Recognize the AVR architecture in lldb.
Jan 30 2020, 4:49 AM · Restricted Project

Jan 29 2020

aykevl added a comment to D73539: [AVR] Recognize the AVR architecture in lldb.

Ok, I've updated the title and the commit message (text until the separator). Does that look good?

Jan 29 2020, 8:16 AM · Restricted Project
aykevl retitled D73539: [AVR] Recognize the AVR architecture in lldb from [AVR] Basic support for remote debugging to [AVR] Recognize the AVR architecture in lldb.
Jan 29 2020, 8:16 AM · Restricted Project

Jan 28 2020

aykevl added a comment to D73539: [AVR] Recognize the AVR architecture in lldb.

It's worth noting that I haven't managed to get a line table from a binary produced by LLVM (with my own compiler frontend) and linked by avr-gcc. But I believe that is a bug in the AVR backend of LLVM as a binary built entirely by avr-gcc works just fine.

Jan 28 2020, 10:11 AM · Restricted Project
aykevl updated the diff for D73539: [AVR] Recognize the AVR architecture in lldb.

@labath Thank you for the quick review!

Jan 28 2020, 6:23 AM · Restricted Project
aykevl created D73539: [AVR] Recognize the AVR architecture in lldb.
Jan 28 2020, 3:46 AM · Restricted Project

Jan 4 2020

aykevl created D72209: [bindings/go] Add RemoveFromParentAsInstruction.
Jan 4 2020, 9:55 AM · Restricted Project
aykevl updated the summary of D72208: [bindings/go] Add methods to read debuginfo for globals.
Jan 4 2020, 9:55 AM · Restricted Project
aykevl updated the summary of D72208: [bindings/go] Add methods to read debuginfo for globals.
Jan 4 2020, 9:55 AM · Restricted Project
aykevl created D72208: [bindings/go] Add methods to read debuginfo for globals.
Jan 4 2020, 9:55 AM · Restricted Project
aykevl created D72207: [LLVM-C][bindings/go] Get metadata from a value.
Jan 4 2020, 9:49 AM · Restricted Project
aykevl created D72206: [bindings/go] Implement API for adding debug info to global variables.
Jan 4 2020, 9:46 AM · Restricted Project
aykevl added a reviewer for D51642: [LLVM-C] Add bindings for addCoroutinePassesToExtensionPoints: GorNishanov.

@whitequark can you take another look at this patch? (I can rebase it if needed).

Jan 4 2020, 9:00 AM · Restricted Project

Jan 3 2020

aykevl committed rG555fc92a8591: [bindings/go] Add Subprogram method (authored by aykevl).
[bindings/go] Add Subprogram method
Jan 3 2020, 1:21 PM
aykevl closed D71528: [bindings/go] Add Subprogram method.
Jan 3 2020, 1:20 PM · Restricted Project

Dec 15 2019

aykevl created D71528: [bindings/go] Add Subprogram method.
Dec 15 2019, 9:37 AM · Restricted Project

Dec 3 2019

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

For what it's worth, RISC-V implements semantics close to but not exactly like ARM, with NaN being treated as if it was +Infinity.
Source: https://content.riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf#page=63

Dec 3 2019, 11:38 AM · Restricted Project
aykevl added a comment to D63852: [Clang] Move assembler into a separate file.

Ping?
This would be super useful to have: it avoids copying most of cc1as.

Dec 3 2019, 8:59 AM · Restricted Project

Nov 16 2019

aykevl committed rG57776f71fa32: [ELF] Fix lld build on Windows/MinGW (authored by aykevl).
[ELF] Fix lld build on Windows/MinGW
Nov 16 2019, 4:42 AM
aykevl closed D70266: [ELF] Fix lld build on Windows/MinGW.
Nov 16 2019, 4:42 AM · Restricted Project

Nov 15 2019

aykevl added a comment to D70266: [ELF] Fix lld build on Windows/MinGW.

So far nobody has mentioned that the reduced struct (struct Foo { unsigned myBit : 1; char myByte; };) is 8 bytes with MSVC. It's highly possible that GCC is aligning their ABI with MSVC for better compatibility.

Nov 15 2019, 10:14 AM · Restricted Project
aykevl added a comment to D70266: [ELF] Fix lld build on Windows/MinGW.

I ran the same code as above on MinGW 7.3.0, and with that version the struct size is 4 bytes. So it looks like GCC/MinGW changed how they lay out a struct in memory (breaking ABI compatibility?).

Nov 15 2019, 9:29 AM · Restricted Project
aykevl updated the summary of D70266: [ELF] Fix lld build on Windows/MinGW.
Nov 15 2019, 9:21 AM · Restricted Project
aykevl updated the summary of D70266: [ELF] Fix lld build on Windows/MinGW.
Nov 15 2019, 9:21 AM · Restricted Project
aykevl added a comment to D70266: [ELF] Fix lld build on Windows/MinGW.

Another test. I compiled the following code: https://godbolt.org/z/hVCAUB

Nov 15 2019, 8:18 AM · Restricted Project
aykevl added a comment to D70266: [ELF] Fix lld build on Windows/MinGW.

I ran the following commands in CI:

Nov 15 2019, 8:00 AM · Restricted Project

Nov 14 2019

aykevl added a comment to D64077: [ELF] Assert sizeof(SymbolUnion) <= 80.

I wrote a patch, see: https://reviews.llvm.org/D70266

Nov 14 2019, 12:52 PM · Restricted Project
aykevl created D70266: [ELF] Fix lld build on Windows/MinGW.
Nov 14 2019, 12:07 PM · Restricted Project
aykevl added a comment to D64077: [ELF] Assert sizeof(SymbolUnion) <= 80.

I did some monkey-patching of Symbol.h:

Nov 14 2019, 11:20 AM · Restricted Project

Nov 12 2019

aykevl added a comment to D63781: [ELF] Error on archive with missing index.

Just a note after the fact: this change broke linking in TinyGo. It used to manually build an archive (without index) with object files from compiler-rt and that worked just fine in LLVM 8 - it did read symbols from those archives even without a symbol table. In LLVM 9, ld.lld refuses to link those libraries. We'll work around it by manually building a symbol table for lld.

Nov 12 2019, 8:55 AM · Restricted Project

Nov 2 2019

aykevl added a comment to D64238: [WebAssembly] Add static_assert(sizeof(SymbolUnion) <= 96).

Sorry, that was probably https://reviews.llvm.org/D64077 instead.

Nov 2 2019, 5:32 AM · Restricted Project