Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline

Amanieu (Amanieu d'Antras)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 18 2018, 11:55 AM (301 w, 6 d)

Recent Activity

Dec 29 2022

Amanieu added a comment to D104931: [AArch64] Wire up ILP32 ABI support in Clang.

The situation around -mabi for AArch64 is a bit awkward: Clang uses it to select the ARM64 calling convention (-mabi=aapcs vs -mabi=darwinpcs) while GCC uses it to select between LP64 and ILP32. I'm not sure how we should be handling this.

Dec 29 2022, 12:10 PM · Restricted Project, Restricted Project

Sep 29 2022

Amanieu added a comment to D134717: [Clang][AArch64] Fix va_arg with -mgeneral-regs-only.

I fully agree that this likely wasn't intentional, but this is still very useful for code that can't use FP registers for whatever reason (e.g. kernels). Regarding the ABI, it doesn't need to be officially defined: it just needs to be compatible with other code compiled with -mgeneral-regs-only.

Sep 29 2022, 2:42 AM · Restricted Project, Restricted Project
Amanieu added a comment to D134717: [Clang][AArch64] Fix va_arg with -mgeneral-regs-only.

Currently using Clang with -mgeneral-regs-only generates perfectly fine soft-float AArch64, with the except of the va_arg() implementation which is fixed here. In fact Rust even has a aarch64-unknown-none-softfloat which relies on this behavior in LLVM. I believe this behavior is *more* useful than GCC's which simply rejects float/double types, and it makes sense to keep it and fix it.

Sep 29 2022, 1:20 AM · Restricted Project, Restricted Project

Sep 28 2022

Amanieu added a comment to D134684: [LegalizeTypes][Mips][RISCV][SystemZ] Mask shift amounts in ExpandShiftWithUnknownAmountBit..

Note that the case in PR57988 doesn't involve any out-of-range shifts in the source program. The current codegen means that with (1i128 << 0) you end up calling __ashldi with a shift amount of -64. If that's something we're happy with then the documentation should be fixed and I can go update Rust's compiler-builtins to wrap instead of panicking on out-of-range shifts in debug builds (which is how this bug was discovered).

Sep 28 2022, 1:40 PM · Restricted Project, Restricted Project

Sep 27 2022

Amanieu requested review of D134717: [Clang][AArch64] Fix va_arg with -mgeneral-regs-only.
Sep 27 2022, 1:27 AM · Restricted Project, Restricted Project

Sep 26 2022

Amanieu added inline comments to D134684: [LegalizeTypes][Mips][RISCV][SystemZ] Mask shift amounts in ExpandShiftWithUnknownAmountBit..
Sep 26 2022, 5:04 PM · Restricted Project, Restricted Project

Jun 22 2022

Amanieu committed rGd0a4450ecdaf: Rename GCCBuiltin into ClangBuiltin (authored by GuillaumeGomez).
Rename GCCBuiltin into ClangBuiltin
Jun 22 2022, 11:50 AM · Restricted Project, Restricted Project, Restricted Project
Amanieu closed D127460: Rename GCCBuiltin into ClangBuiltin.
Jun 22 2022, 11:49 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jun 16 2022

Amanieu committed rGcaa2a829cdf9: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used (authored by Amanieu).
[MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used
Jun 16 2022, 1:37 PM · Restricted Project, Restricted Project
Amanieu closed D127751: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used.
Jun 16 2022, 1:36 PM · Restricted Project, Restricted Project

Jun 15 2022

Amanieu added inline comments to D127751: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used.
Jun 15 2022, 6:26 PM · Restricted Project, Restricted Project

Jun 14 2022

Amanieu added inline comments to D127751: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used.
Jun 14 2022, 3:44 PM · Restricted Project, Restricted Project
Amanieu updated the diff for D127751: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used.
Jun 14 2022, 3:44 PM · Restricted Project, Restricted Project
Amanieu updated the diff for D127751: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used.
Jun 14 2022, 12:27 PM · Restricted Project, Restricted Project
Amanieu added inline comments to D127751: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used.
Jun 14 2022, 9:22 AM · Restricted Project, Restricted Project
Amanieu updated the diff for D127751: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used.

Updated test.

Jun 14 2022, 9:21 AM · Restricted Project, Restricted Project
Amanieu requested review of D127751: [MergeFunctions] Preserve symbols used llvm.used/llvm.compiler.used.
Jun 14 2022, 8:14 AM · Restricted Project, Restricted Project

Feb 25 2022

Amanieu added a comment to D120382: [Mangler] Mangle aliases to fastcall/vectorcall functions correctly.

For context, I encountered a linker error caused by this in Rust which does use the IR mangler.

Feb 25 2022, 2:12 PM · Restricted Project
Amanieu committed rG54b909de682b: [Mangler] Mangle aliases to fastcall/vectorcall functions correctly (authored by Amanieu).
[Mangler] Mangle aliases to fastcall/vectorcall functions correctly
Feb 25 2022, 2:11 PM
Amanieu closed D120382: [Mangler] Mangle aliases to fastcall/vectorcall functions correctly.
Feb 25 2022, 2:11 PM · Restricted Project

Feb 24 2022

Amanieu added a reviewer for D120382: [Mangler] Mangle aliases to fastcall/vectorcall functions correctly: chandlerc.
Feb 24 2022, 8:52 PM · Restricted Project

Feb 23 2022

Amanieu added a reviewer for D120382: [Mangler] Mangle aliases to fastcall/vectorcall functions correctly: rnk.
Feb 23 2022, 6:13 AM · Restricted Project
Amanieu updated the diff for D120382: [Mangler] Mangle aliases to fastcall/vectorcall functions correctly.

Fixed to use dyn_cast_or_null.

Feb 23 2022, 5:51 AM · Restricted Project

Feb 22 2022

Amanieu requested review of D120382: [Mangler] Mangle aliases to fastcall/vectorcall functions correctly.
Feb 22 2022, 7:59 PM · Restricted Project
Amanieu added a comment to D104931: [AArch64] Wire up ILP32 ABI support in Clang.

Ping.

Feb 22 2022, 7:51 AM · Restricted Project, Restricted Project

Jul 22 2021

Amanieu added a comment to D104931: [AArch64] Wire up ILP32 ABI support in Clang.

Ping.

Jul 22 2021, 4:41 AM · Restricted Project, Restricted Project

Jun 25 2021

Amanieu requested review of D104931: [AArch64] Wire up ILP32 ABI support in Clang.
Jun 25 2021, 10:50 AM · Restricted Project, Restricted Project

May 31 2021

Amanieu committed rG22f635b1b31a: [LangRef] update according to unwinding support in inline asm (authored by cynecx).
[LangRef] update according to unwinding support in inline asm
May 31 2021, 1:03 AM
Amanieu closed D102642: [LangRef] update according to unwinding support in inline asm.
May 31 2021, 1:03 AM · Restricted Project
Amanieu accepted D102642: [LangRef] update according to unwinding support in inline asm.

LGTM

May 31 2021, 12:57 AM · Restricted Project

May 13 2021

Amanieu committed rG93d56922faba: Don't run MachineVerifier on sjlj-unwind-inline-asm test because of known issue… (authored by cynecx).
Don't run MachineVerifier on sjlj-unwind-inline-asm test because of known issue…
May 13 2021, 3:14 PM
Amanieu closed D102433: Don't run MachineVerifier on sjlj-unwind-inline-asm test because of known issue (PR39439).
May 13 2021, 3:14 PM · Restricted Project
Amanieu accepted D102433: Don't run MachineVerifier on sjlj-unwind-inline-asm test because of known issue (PR39439).

LGTM

May 13 2021, 1:45 PM · Restricted Project
Amanieu committed rG8ec9fd483949: Support unwinding from inline assembly (authored by cynecx).
Support unwinding from inline assembly
May 13 2021, 11:15 AM
Amanieu closed D95745: Support unwinding from inline assembly.
May 13 2021, 11:15 AM · Restricted Project, Restricted Project

May 10 2021

Amanieu accepted D95745: Support unwinding from inline assembly.

LGTM

May 10 2021, 3:35 PM · Restricted Project, Restricted Project

Apr 28 2021

Amanieu committed rGad9ce8142dd5: [ConstantMerge] Don't merge thread_local constants with non-thread_local… (authored by Amanieu).
[ConstantMerge] Don't merge thread_local constants with non-thread_local…
Apr 28 2021, 3:44 PM
Amanieu closed D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.
Apr 28 2021, 3:44 PM · Restricted Project
Amanieu updated the diff for D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.

Don't merge thread-local constants

Apr 28 2021, 1:43 PM · Restricted Project
Amanieu added a comment to D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.

I'm not even sure what it would *mean* to have an unnamed TLS constant: I would expect an earlier pass to convert it to a normal constant rather than having to it in ConstantMerge.

Apr 28 2021, 11:57 AM · Restricted Project

Apr 27 2021

Amanieu added reviewers for D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants: mehdi_amini, eli.friedman, davide, rjmccall, void.
Apr 27 2021, 11:07 PM · Restricted Project
Amanieu added a comment to D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.

Ping

Apr 27 2021, 3:09 PM · Restricted Project

Apr 19 2021

Amanieu added a comment to D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.

Ping.

Apr 19 2021, 8:10 AM · Restricted Project
Amanieu retitled D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants from [ConstantMerge] Don't merge thread_local constants to [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.
Apr 19 2021, 8:10 AM · Restricted Project

Apr 12 2021

Amanieu updated the diff for D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.

Merge thread_locals only if they use the same TLS mode

Apr 12 2021, 10:50 AM · Restricted Project
Amanieu added a comment to D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.

It's a bit more tricky than that:

  • I'm not sure how we should handle the case where we are trying to merge 2 thread_local constants with different TLS models.
  • In general we are better off *not* merging global constants with TLS constants since calculating a TLS address can be expensive.
Apr 12 2021, 10:38 AM · Restricted Project
Amanieu added a reviewer for D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants: hiraditya.
Apr 12 2021, 10:13 AM · Restricted Project
Amanieu requested review of D100322: [ConstantMerge] Don't merge thread_local constants with non-thread_local constants.
Apr 12 2021, 10:11 AM · Restricted Project

Mar 27 2021

Amanieu added a comment to D95745: Support unwinding from inline assembly.

The new operand to InlineAsm needs to be handled in llvm/lib/Transforms/Utils/ValueMapper.cpp otherwise you will end up with a bug similar to https://bugs.llvm.org/show_bug.cgi?id=45291.

Mar 27 2021, 10:19 PM · Restricted Project, Restricted Project

Jan 20 2021

Amanieu committed rG21bfd068b32e: [AArch64] Add support for the GNU ILP32 ABI (authored by Amanieu).
[AArch64] Add support for the GNU ILP32 ABI
Jan 20 2021, 5:36 AM
Amanieu closed D94143: [AArch64] Add support for the GNU ILP32 ABI.
Jan 20 2021, 5:36 AM · Restricted Project

Jan 19 2021

Amanieu added a comment to D94143: [AArch64] Add support for the GNU ILP32 ABI.

Ping

Jan 19 2021, 9:32 AM · Restricted Project

Jan 15 2021

Amanieu added a comment to D94143: [AArch64] Add support for the GNU ILP32 ABI.

My understanding is that AArch64 gnu_ilp32 support is present in mainline gcc, but not in mainline glibc nor in the mainline linux kernel. My understanding is also that it's unlikely that AArch64 gnu_ilp32 support will be added to mainline glibc or linux kernel anytime soon.
That makes me wonder how useful it is to support AArch64 gnu_ilp32 in mainline LLVM. It seems unlikely that it can be used for linux targets anytime soon. Are there non-linux targets using AArch64 gnu_ilp32?

Jan 15 2021, 8:49 AM · Restricted Project
Amanieu updated the diff for D94143: [AArch64] Add support for the GNU ILP32 ABI.

Undo some unnecessary formatting changes.

Jan 15 2021, 8:43 AM · Restricted Project

Jan 12 2021

Amanieu updated the diff for D94143: [AArch64] Add support for the GNU ILP32 ABI.
Jan 12 2021, 1:28 PM · Restricted Project
Amanieu added a comment to D94143: [AArch64] Add support for the GNU ILP32 ABI.

In D16213 I introduced the MCTargetOptions argument to the MCAsmBackend constructor, as well as in constructor wrapper functions. This change touched multiple (every, probably) backend. Given the extension to embed the ABI in the Triple, can the MCTargetOptions argument be removed? That shouldn't be in this commit, I think.

Jan 12 2021, 1:28 PM · Restricted Project
Amanieu updated the diff for D94143: [AArch64] Add support for the GNU ILP32 ABI.
Jan 12 2021, 10:56 AM · Restricted Project

Jan 11 2021

Amanieu updated the diff for D94143: [AArch64] Add support for the GNU ILP32 ABI.

clang-format & clang-tidy fixes

Jan 11 2021, 10:20 AM · Restricted Project

Jan 5 2021

Amanieu requested review of D94143: [AArch64] Add support for the GNU ILP32 ABI.
Jan 5 2021, 6:22 PM · Restricted Project

Jun 13 2020

Amanieu committed rG6973125cb746: Fix FastISel dropping srcloc metadata from InlineAsm (authored by Amanieu).
Fix FastISel dropping srcloc metadata from InlineAsm
Jun 13 2020, 9:06 AM
Amanieu closed D80759: Fix FastISel dropping srcloc metadata from InlineAsm.
Jun 13 2020, 9:06 AM · Restricted Project
Amanieu committed rG0c1a135adae5: [libunwind][RISCV] Track PC separately from RA (authored by Amanieu).
[libunwind][RISCV] Track PC separately from RA
Jun 13 2020, 12:30 AM
Amanieu closed D78931: [libunwind][RISCV] Track PC separately from RA.
Jun 13 2020, 12:30 AM · Restricted Project, Restricted Project

Jun 2 2020

Amanieu added a comment to D80759: Fix FastISel dropping srcloc metadata from InlineAsm.

Ping. Please commit this for me since I don't have commit access.

Jun 2 2020, 11:32 AM · Restricted Project

May 28 2020

Amanieu updated the diff for D80759: Fix FastISel dropping srcloc metadata from InlineAsm.

I've added the Extra_IsConvergent flag which was also missing from FastISel.

May 28 2020, 4:32 PM · Restricted Project
Amanieu added a comment to D80759: Fix FastISel dropping srcloc metadata from InlineAsm.

By the way, I don't have commit access. Could you please commit this for me?

May 28 2020, 3:59 PM · Restricted Project
Amanieu added a comment to D80759: Fix FastISel dropping srcloc metadata from InlineAsm.

Sorry I don't understand, what do you want me to do?

May 28 2020, 3:25 PM · Restricted Project
Amanieu created D80759: Fix FastISel dropping srcloc metadata from InlineAsm.
May 28 2020, 2:18 PM · Restricted Project
Amanieu added a comment to D78931: [libunwind][RISCV] Track PC separately from RA.

Ping.

May 28 2020, 10:23 AM · Restricted Project, Restricted Project

May 16 2020

Amanieu added a comment to D80066: ValueMapper does not preserve inline assembly dialect when remapping the type.

I don't have commit access, could you please commit this for me?

May 16 2020, 5:29 PM · Restricted Project
Amanieu added a comment to D80066: ValueMapper does not preserve inline assembly dialect when remapping the type.

I'm not exactly sure. The original Rust bug report is pretty hard to extract since it seems to heavily depend on how rustc is splitting code into codegen units.

May 16 2020, 4:25 PM · Restricted Project
Amanieu updated subscribers of D80066: ValueMapper does not preserve inline assembly dialect when remapping the type.
May 16 2020, 3:21 PM · Restricted Project
Amanieu added a reviewer for D80066: ValueMapper does not preserve inline assembly dialect when remapping the type: echristo.
May 16 2020, 2:49 PM · Restricted Project
Amanieu created D80066: ValueMapper does not preserve inline assembly dialect when remapping the type.
May 16 2020, 12:41 PM · Restricted Project

May 4 2020

Amanieu added a comment to D78931: [libunwind][RISCV] Track PC separately from RA.

GCC's implementation is in libgcc/unwind-dw2.c. The relevant code is here. The PC is tracked separately in the ra field, while the registers are in the reg array.

May 4 2020, 12:21 PM · Restricted Project, Restricted Project
Amanieu added a comment to D78931: [libunwind][RISCV] Track PC separately from RA.

Ping

May 4 2020, 10:43 AM · Restricted Project, Restricted Project

Apr 28 2020

Amanieu added a comment to D78977: [X86] Add x, t and g modifiers for inline asm.

I don't have commit access, could you commit this for me?

Apr 28 2020, 1:34 AM · Restricted Project
Amanieu updated the diff for D78977: [X86] Add x, t and g modifiers for inline asm.

clang-format

Apr 28 2020, 12:29 AM · Restricted Project

Apr 27 2020

Amanieu added a comment to D78977: [X86] Add x, t and g modifiers for inline asm.

They are not mentioned in the GCC documentation, but are documented in this comment in the GCC code:

Apr 27 2020, 11:57 PM · Restricted Project
Amanieu created D78977: [X86] Add x, t and g modifiers for inline asm.
Apr 27 2020, 6:20 PM · Restricted Project
Amanieu added a comment to D78931: [libunwind][RISCV] Track PC separately from RA.

The RISC-V unwinding spec is pretty bare: https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md#dwarf

Apr 27 2020, 10:11 AM · Restricted Project, Restricted Project
Amanieu updated the diff for D78931: [libunwind][RISCV] Track PC separately from RA.
Apr 27 2020, 9:06 AM · Restricted Project, Restricted Project
Amanieu updated the diff for D78926: [libunwind] Fix libunwind build without a heap.

Added context

Apr 27 2020, 9:06 AM · Restricted Project, Restricted Project
Amanieu added a comment to D78926: [libunwind] Fix libunwind build without a heap.

Please commit on my behalf.

Apr 27 2020, 9:06 AM · Restricted Project, Restricted Project
Amanieu created D78931: [libunwind][RISCV] Track PC separately from RA.
Apr 27 2020, 8:01 AM · Restricted Project, Restricted Project
Amanieu created D78926: [libunwind] Fix libunwind build without a heap.
Apr 27 2020, 7:29 AM · Restricted Project, Restricted Project

Sep 18 2019

Amanieu added a comment to D66889: [libunwind] Fix unw_get_proc_info sometimes returning stale data.

@mstorsjo Yes, I need someone to commit this for me.

Sep 18 2019, 11:02 AM
Amanieu updated the diff for D66889: [libunwind] Fix unw_get_proc_info sometimes returning stale data.

Added a test.

Sep 18 2019, 11:02 AM

Sep 15 2019

Amanieu added a reviewer for D66889: [libunwind] Fix unw_get_proc_info sometimes returning stale data: mstorsjo.
Sep 15 2019, 8:19 AM

Aug 28 2019

Amanieu created D66889: [libunwind] Fix unw_get_proc_info sometimes returning stale data.
Aug 28 2019, 9:26 AM