Page MenuHomePhabricator

LemonBoy (LemonBoy)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 10 2016, 2:52 PM (331 w, 3 d)

Recent Activity

Jun 19 2022

LemonBoy abandoned D102862: [lld][ELF][SPARC] Support TLS GD relocations.
Jun 19 2022, 1:39 AM · Restricted Project, Restricted Project
LemonBoy abandoned D102908: [lld][ELF][SPARC] Support TLS IE relocations.
Jun 19 2022, 1:38 AM · Restricted Project, Restricted Project
LemonBoy abandoned D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.
Jun 19 2022, 1:38 AM · Restricted Project, Restricted Project
LemonBoy abandoned D102342: [SPARC] Fix register reuse in leaf function remapping step.
Jun 19 2022, 1:38 AM · Restricted Project, Restricted Project

Dec 12 2021

LemonBoy added a comment to D115114: [MSP430] Allow functions to be defined with MSP430_BUILTIN CC.

PENG

Dec 12 2021, 2:25 AM · Restricted Project

Dec 5 2021

LemonBoy requested review of D115114: [MSP430] Allow functions to be defined with MSP430_BUILTIN CC.
Dec 5 2021, 6:27 AM · Restricted Project

Nov 14 2021

LemonBoy committed rG3e0f3041cc1a: [SPARC] Zero-extend the operands when doing UMULO on 64-bit integers (authored by koakuma).
[SPARC] Zero-extend the operands when doing UMULO on 64-bit integers
Nov 14 2021, 11:00 AM
LemonBoy closed D110555: [SPARC] Zero-extend the operands when doing UMULO on 64-bit integers.
Nov 14 2021, 11:00 AM · Restricted Project

Nov 13 2021

LemonBoy updated subscribers of rGa7b1872593db: [AArch64] Fix a bug from a pattern for uaddv(uaddlp(x)) ==> uaddlv.

@tstellar Can this commit be backported to 13.0.1 ?

Nov 13 2021, 3:31 AM
LemonBoy added a comment to D112388: x86: Fix lowering of libm libcalls w/ fp128 operands.

ping?

Nov 13 2021, 3:08 AM · Restricted Project
LemonBoy added a comment to D102342: [SPARC] Fix register reuse in leaf function remapping step.

But this approach is fine be me, but the check should be in isLeafProc().

Nov 13 2021, 3:08 AM · Restricted Project, Restricted Project
LemonBoy accepted D110555: [SPARC] Zero-extend the operands when doing UMULO on 64-bit integers.

LGTM. I can land this for you if you have no commit access, just give me the name/email you want to be credited as.

Nov 13 2021, 3:01 AM · Restricted Project

Nov 8 2021

LemonBoy added a comment to D110555: [SPARC] Zero-extend the operands when doing UMULO on 64-bit integers.

The fix LGTM, there's only a minor nit wrt the test placement.

Nov 8 2021, 9:37 AM · Restricted Project

Nov 5 2021

LemonBoy accepted D113263: [AArch64] Fix a bug from a pattern for uaddv(uaddlp(x)) ==> uaddlv.

LGTM.
My only suggestion would be to drop the popcount test as the bug affects uaddlv4h_from_v8i8, but that's only a minor nit.

Nov 5 2021, 4:49 AM · Restricted Project

Nov 4 2021

LemonBoy updated subscribers of D104236: [AArch64] Add a TableGen pattern to generate uaddlv from uaddlp and addv.

I'm not sure this transform is sound, if you consider a simple case such as uaddlv4h_from_v8i8 and perform the expansion by hand you'll see wildly different results.
Given an input vector of u8{1,1,1,1,1,1,1,1} one would expect uaddlp to turn it into u16{2,2,2,2} and uaddlv to fold it into u16{0x8}. On the other hand, replacing everything with a single uaddlv operating on a v0.16b yields u16{0x404} as it skips the pairwise sum step.

Nov 4 2021, 4:41 PM · Restricted Project

Oct 28 2021

LemonBoy added a comment to D112388: x86: Fix lowering of libm libcalls w/ fp128 operands.

ping?

Oct 28 2021, 7:54 AM · Restricted Project
LemonBoy abandoned D97665: [InstSimplify] Don't fold comparisons of non-inbounds GEPs.
Oct 28 2021, 7:53 AM · Restricted Project
LemonBoy added a comment to D110555: [SPARC] Zero-extend the operands when doing UMULO on 64-bit integers.

Please upload the diff with full context, check out the contribution guide for more info.

Oct 28 2021, 2:36 AM · Restricted Project

Oct 24 2021

LemonBoy requested review of D112388: x86: Fix lowering of libm libcalls w/ fp128 operands.
Oct 24 2021, 1:11 PM · Restricted Project

Jun 22 2021

LemonBoy added a comment to D97665: [InstSimplify] Don't fold comparisons of non-inbounds GEPs.

Ping?

Jun 22 2021, 12:29 AM · Restricted Project
LemonBoy added a comment to D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

Downstream we turned it into a std::pair<uint64_t, uint64_t> (https://github.com/CTSRD-CHERI/llvm-project/blob/de58a2a25c32471b4b3c2aec77fee624e24120cd/lld/ELF/Relocations.cpp#L136-L179), though something more general where it's parameterised on the number of words might be nicer rather than hand-rolling a pair version.

Jun 22 2021, 12:28 AM · Restricted Project, Restricted Project

Jun 21 2021

LemonBoy updated the diff for D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

Here's the updated patch, I'm now able to link and run several small programs linked against glibc (in both PIC/PIE mode), shared libraries and some basic examples w/ ifuncs.

Jun 21 2021, 7:41 AM · Restricted Project, Restricted Project

Jun 20 2021

LemonBoy added a comment to D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

Ok, so you need R_RELAX_GOT_OFF to match R_RELAX_GOT_PC?

A relocation that behaves as R_GOT_OFF or, when it's possible to relax it, as a R_GOTREL.

Yes, the R_GOT_OFF version of what R_RELAX_GOT_PC is to R_GOT_PC (e.g. movq foo@GOTPCREL(%rip), %rax -> leaq foo(%rip), %rax, where the latter means leaq foo@PCREL(%rip) but that's implied by the %rip base).

Jun 20 2021, 11:27 AM · Restricted Project, Restricted Project
LemonBoy added a comment to D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

Ok, so you need R_RELAX_GOT_OFF to match R_RELAX_GOT_PC?

Jun 20 2021, 10:00 AM · Restricted Project, Restricted Project
LemonBoy added a comment to D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

Is dynamic linking fully functional?

Jun 20 2021, 8:59 AM · Restricted Project, Restricted Project

Jun 18 2021

LemonBoy added a comment to D102575: [SPARC][MC] Support more relocation types.

Ping

Jun 18 2021, 10:52 AM · Restricted Project, Restricted Project
LemonBoy updated the diff for D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

Add back the RELA bit, no explicit test is needed as the existing ones are already covering that bit.

Jun 18 2021, 6:46 AM · Restricted Project, Restricted Project

Jun 17 2021

LemonBoy abandoned D102986: [lld][ELF][SPARC] Emit RELA entries.
Jun 17 2021, 11:04 PM · Restricted Project
LemonBoy added a comment to D102986: [lld][ELF][SPARC] Emit RELA entries.

Alright, folding this back into D102986 (with the getDynRel fix?)

Jun 17 2021, 11:04 PM · Restricted Project
LemonBoy accepted D96311: [SPARC] Recognize the prefetch instruction.

LGTM

Jun 17 2021, 10:58 PM · Restricted Project

Jun 13 2021

LemonBoy committed rG5be3a1a06483: [SPARC] Legalize truncation and extension between fp128 and half (authored by LemonBoy).
[SPARC] Legalize truncation and extension between fp128 and half
Jun 13 2021, 11:05 AM
LemonBoy closed D104185: [SPARC] Legalize truncation and extension between fp128 and half.
Jun 13 2021, 11:05 AM · Restricted Project

Jun 12 2021

LemonBoy added a comment to D104185: [SPARC] Legalize truncation and extension between fp128 and half.

The diff looks fine but:

(a) the commit title only mentions truncstore whilst this also fixes both general truncation and extension
(b) the commit body doesn't mention extension

Jun 12 2021, 11:19 AM · Restricted Project
LemonBoy retitled D104185: [SPARC] Legalize truncation and extension between fp128 and half from [SPARC] Legalize truncating stores of fp128 to half values to [SPARC] Legalize truncation and extension between fp128 and half.
Jun 12 2021, 11:18 AM · Restricted Project
LemonBoy requested review of D104185: [SPARC] Legalize truncation and extension between fp128 and half.
Jun 12 2021, 11:08 AM · Restricted Project

Jun 9 2021

LemonBoy committed rGd3faef6eefe5: [SROA] Avoid splitting loads/stores with irregular type (authored by LemonBoy).
[SROA] Avoid splitting loads/stores with irregular type
Jun 9 2021, 7:37 AM
LemonBoy added a comment to D99435: [SROA] Avoid splitting loads/stores with irregular type.

Sorry for the noise, the test got stale since I first uploaded it. I'll push again once this is sorted out.

Jun 9 2021, 3:37 AM · Restricted Project
LemonBoy committed rG905f4eb537c1: [SROA] Avoid splitting loads/stores with irregular type (authored by LemonBoy).
[SROA] Avoid splitting loads/stores with irregular type
Jun 9 2021, 2:48 AM
LemonBoy closed D99435: [SROA] Avoid splitting loads/stores with irregular type.
Jun 9 2021, 2:48 AM · Restricted Project

Jun 8 2021

LemonBoy added reviewers for D99435: [SROA] Avoid splitting loads/stores with irregular type: aeubanks, rnk.
Jun 8 2021, 1:43 AM · Restricted Project

May 30 2021

LemonBoy updated the diff for D102575: [SPARC][MC] Support more relocation types.

Address review comments.

May 30 2021, 9:55 AM · Restricted Project, Restricted Project

May 28 2021

LemonBoy committed rGb577ec495698: [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer… (authored by LemonBoy).
[AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer…
May 28 2021, 11:57 PM
LemonBoy closed D103232: [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones.
May 28 2021, 11:57 PM · Restricted Project
LemonBoy added a comment to D103232: [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones.

The transform makes sense on targets that don't have atomic operations on floating-point registers, but that isn't all targets. In particular, the GPU targets have floating-point atomic operations, and bitcasting like this might get in the way of the natural lowering there.

If you think it makes sense to use a dedicated lowering hook, rather than extending AtomicExpansionKind, that's fine, I guess.

May 28 2021, 12:30 PM · Restricted Project
LemonBoy added a comment to D103232: [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones.

I don't really like unconditionally messing with the type of the atomic operation; not sure what kind of impact that will have.

Maybe it would make sense to add a new AtomicExpansionKind?

May 28 2021, 1:14 AM · Restricted Project

May 27 2021

LemonBoy requested review of D103232: [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones.
May 27 2021, 2:36 AM · Restricted Project

May 23 2021

LemonBoy added a comment to D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

I think it is useful to set up a minimal goal. When you fix/implement GOT/PLT, make sure some basic programs with GOT/PLT are really working.

If we do "fix GOT a" "fot GOT b" "fix PLT c", it is very likely that a subsequent commit may update an earlier commit. This is less elegant.

So what's the state of this port? When I implemented ppc32 support and added riscv support, I made sure glibc/musl ppc32/riscv dynamically linking programs work.

Some (candidate) milestones: (1) support -fno-pic -no-pie -nostdlib link (2) support dynamic linking (many stuff are here: RELATIVE/COPY/GOT/PLT/...) (3) support tls (4) support extra things that glibc static links require

May 23 2021, 11:38 AM · Restricted Project, Restricted Project
LemonBoy added a comment to D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

I dislike that we are fixing these stuff increasingly with so many patches.

See the history of Arch/PPC.cpp - most stuff are implemented with very few commits.

May 23 2021, 10:17 AM · Restricted Project, Restricted Project
LemonBoy added a comment to D102986: [lld][ELF][SPARC] Emit RELA entries.

Can we not have a test that uses textrel; what's wrong with:

.data
x: .xword y

or

.data
x: .xword x
May 23 2021, 10:01 AM · Restricted Project
LemonBoy updated the diff for D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.

Depends on D102986.

May 23 2021, 9:53 AM · Restricted Project, Restricted Project
LemonBoy requested review of D102986: [lld][ELF][SPARC] Emit RELA entries.
May 23 2021, 9:52 AM · Restricted Project
LemonBoy updated the diff for D102908: [lld][ELF][SPARC] Support TLS IE relocations.

Make this patch depend on D102985

May 23 2021, 9:04 AM · Restricted Project, Restricted Project
LemonBoy requested review of D102985: [lld][ELF][SPARC] Implement and fixup GOT/PLT relocations.
May 23 2021, 8:52 AM · Restricted Project, Restricted Project
LemonBoy updated the diff for D102908: [lld][ELF][SPARC] Support TLS IE relocations.

I apparently misunderstood the description about reserved GOT entries.

May 23 2021, 7:36 AM · Restricted Project, Restricted Project
LemonBoy added inline comments to D102908: [lld][ELF][SPARC] Support TLS IE relocations.
May 23 2021, 7:17 AM · Restricted Project, Restricted Project
LemonBoy updated the diff for D102862: [lld][ELF][SPARC] Support TLS GD relocations.

Rebased on top of D102908.
Correct computation of relaxed tp-relative offset.
Turn add into or/xor during the relaxation.

May 23 2021, 4:06 AM · Restricted Project, Restricted Project
LemonBoy updated the diff for D102908: [lld][ELF][SPARC] Support TLS IE relocations.

Reserve 3 slots in the GOT, this detail was well-hidden in the documentation.
Address some stylistic nits.

May 23 2021, 3:39 AM · Restricted Project, Restricted Project

May 22 2021

LemonBoy added inline comments to D102908: [lld][ELF][SPARC] Support TLS IE relocations.
May 22 2021, 11:39 PM · Restricted Project, Restricted Project
LemonBoy committed rGfd5cc418186a: [SelectionDAG] Fix argument copy elision with irregular types (authored by LemonBoy).
[SelectionDAG] Fix argument copy elision with irregular types
May 22 2021, 12:44 AM
LemonBoy closed D102153: [SelectionDAG] Fix argument copy elision with irregular types.
May 22 2021, 12:43 AM · Restricted Project
LemonBoy updated the diff for D102908: [lld][ELF][SPARC] Support TLS IE relocations.

Fix test formatting.
Force use of rela over rel, forgot to commit this change with the previous patch.

May 22 2021, 12:36 AM · Restricted Project, Restricted Project

May 21 2021

LemonBoy updated the diff for D102153: [SelectionDAG] Fix argument copy elision with irregular types.

Reinstate the alloca initialization check.

May 21 2021, 9:39 AM · Restricted Project
LemonBoy updated the diff for D102153: [SelectionDAG] Fix argument copy elision with irregular types.

Add a test w/ partially-initialized alloca.

May 21 2021, 3:44 AM · Restricted Project
LemonBoy added inline comments to D102153: [SelectionDAG] Fix argument copy elision with irregular types.
May 21 2021, 3:43 AM · Restricted Project
LemonBoy added a comment to D102862: [lld][ELF][SPARC] Support TLS GD relocations.

Is IE supported now? I think the correct order is LE, IE, GD/LD.

May 21 2021, 2:54 AM · Restricted Project, Restricted Project
LemonBoy requested review of D102908: [lld][ELF][SPARC] Support TLS IE relocations.
May 21 2021, 2:38 AM · Restricted Project, Restricted Project

May 20 2021

LemonBoy updated the diff for D102862: [lld][ELF][SPARC] Support TLS GD relocations.

Address review comments.

May 20 2021, 1:47 PM · Restricted Project, Restricted Project
LemonBoy added inline comments to D102862: [lld][ELF][SPARC] Support TLS GD relocations.
May 20 2021, 1:47 PM · Restricted Project, Restricted Project
LemonBoy requested review of D102862: [lld][ELF][SPARC] Support TLS GD relocations.
May 20 2021, 11:57 AM · Restricted Project, Restricted Project

May 18 2021

LemonBoy added a comment to D102153: [SelectionDAG] Fix argument copy elision with irregular types.

I don't see why this optimization should be declared illegal. Why isn't it the caller's responsibility to store these narrow integers canonically? C doesn't have narrow integers, but GCC doesn't do this. If a variable is passed in memory, it just uses the memory that was passed into it.

May 18 2021, 2:06 AM · Restricted Project

May 17 2021

LemonBoy updated the diff for D101694: [SPARC] Fix type for i64 inline asm operands.

Cleaner and nicer logic.

May 17 2021, 4:20 AM · Restricted Project, Restricted Project
LemonBoy added a comment to D102153: [SelectionDAG] Fix argument copy elision with irregular types.

Ping?

May 17 2021, 12:03 AM · Restricted Project
LemonBoy accepted D96312: [SPARC] recognize the "rd %pc, reg" special form.

LGTM

May 17 2021, 12:02 AM · Restricted Project

May 16 2021

LemonBoy accepted D96313: [SPARCv9] allow stw as alias for st.

LGTM and matches GAS' behaviour.

May 16 2021, 11:57 PM · Restricted Project
LemonBoy updated the diff for D102575: [SPARC][MC] Support more relocation types.

Address review comments.

May 16 2021, 11:53 PM · Restricted Project, Restricted Project
LemonBoy added a comment to D102575: [SPARC][MC] Support more relocation types.

Is "tail reloc" a standard term for this?

May 16 2021, 12:47 PM · Restricted Project, Restricted Project
LemonBoy updated the diff for D102575: [SPARC][MC] Support more relocation types.

Distinguish %gdop and TLS-relocations applied to ld and ldx at parser level.

May 16 2021, 12:07 PM · Restricted Project, Restricted Project
LemonBoy added inline comments to D102575: [SPARC][MC] Support more relocation types.
May 16 2021, 6:57 AM · Restricted Project, Restricted Project
LemonBoy requested review of D102575: [SPARC][MC] Support more relocation types.
May 16 2021, 4:41 AM · Restricted Project, Restricted Project

May 12 2021

LemonBoy requested review of D102342: [SPARC] Fix register reuse in leaf function remapping step.
May 12 2021, 11:05 AM · Restricted Project, Restricted Project

May 10 2021

LemonBoy added a comment to D98882: [LoopVectorize] Support widening memory ops with irregular types.

Ping?

May 10 2021, 11:59 PM · Restricted Project, Restricted Project
LemonBoy added inline comments to D97665: [InstSimplify] Don't fold comparisons of non-inbounds GEPs.
May 10 2021, 2:37 PM · Restricted Project
LemonBoy updated the diff for D97665: [InstSimplify] Don't fold comparisons of non-inbounds GEPs.

Rebased. I've moved the test to icmp-null.ll and made it a bit nicer.

May 10 2021, 12:27 PM · Restricted Project
LemonBoy updated the summary of D102153: [SelectionDAG] Fix argument copy elision with irregular types.
May 10 2021, 1:08 AM · Restricted Project
LemonBoy requested review of D102153: [SelectionDAG] Fix argument copy elision with irregular types.
May 10 2021, 1:08 AM · Restricted Project

May 9 2021

LemonBoy committed rGad5f3f525828: [SelectionDAG] Regenerate test checks (NFC) (authored by LemonBoy).
[SelectionDAG] Regenerate test checks (NFC)
May 9 2021, 9:52 AM

May 7 2021

LemonBoy committed rGf87638338464: [AsmParser][ARM] Make .thumb_func imply .thumb (authored by LemonBoy).
[AsmParser][ARM] Make .thumb_func imply .thumb
May 7 2021, 3:14 AM
LemonBoy closed D101975: [AsmParser][ARM] Make .thumb_func imply .thumb.
May 7 2021, 3:13 AM · Restricted Project
LemonBoy added a comment to D101975: [AsmParser][ARM] Make .thumb_func imply .thumb.

LGTM too.

Could I trouble you to add a test case for something like:

        .text
        .arm
        .thumb_func
        nop
sym:
        bx lr

This just makes sure we get the nop before sym in Thumb state even though the symbol doesn't start immediately after the thumb_func.

May 7 2021, 3:12 AM · Restricted Project
LemonBoy added a comment to D101694: [SPARC] Fix type for i64 inline asm operands.

Ping?

May 7 2021, 12:38 AM · Restricted Project, Restricted Project

May 6 2021

LemonBoy updated the diff for D101975: [AsmParser][ARM] Make .thumb_func imply .thumb.

Fix LLD test.

May 6 2021, 2:28 AM · Restricted Project

May 5 2021

LemonBoy added inline comments to D101975: [AsmParser][ARM] Make .thumb_func imply .thumb.
May 5 2021, 11:57 PM · Restricted Project
LemonBoy requested review of D101975: [AsmParser][ARM] Make .thumb_func imply .thumb.
May 5 2021, 11:55 PM · Restricted Project
LemonBoy added inline comments to D101898: [ARM] Prevent spilling between ldrex/strex pairs.
May 5 2021, 7:08 AM · Restricted Project

May 3 2021

LemonBoy added a comment to D98882: [LoopVectorize] Support widening memory ops with irregular types.

Weekly ping.

May 3 2021, 2:55 AM · Restricted Project, Restricted Project

May 1 2021

LemonBoy requested review of D101694: [SPARC] Fix type for i64 inline asm operands.
May 1 2021, 12:09 PM · Restricted Project, Restricted Project
LemonBoy committed rG4751cadcca45: [AArch64] Prevent spilling between ldxr/stxr pairs (authored by LemonBoy).
[AArch64] Prevent spilling between ldxr/stxr pairs
May 1 2021, 8:17 AM
LemonBoy closed D101163: [AArch64] Prevent spilling between ldxr/stxr pairs.
May 1 2021, 8:17 AM · Restricted Project
LemonBoy committed rG5a42538b769e: [NFC][ARM] Regenerate arm64-atomic.ll test (authored by LemonBoy).
[NFC][ARM] Regenerate arm64-atomic.ll test
May 1 2021, 7:33 AM
LemonBoy added a reverting change for rGd9856b12f2be: [NFC][ARM] Regenerate arm64-atomic.ll test: rG83c540dcd350: Revert "[NFC][ARM] Regenerate arm64-atomic.ll test".
May 1 2021, 4:01 AM