Page MenuHomePhabricator

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

aguinet (Adrien Guinet)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 23 2016, 2:29 PM (388 w, 2 d)

Recent Activity

Apr 5 2021

aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

@rjmccall @mstorsjo @aaron.ballman any advice on what to do next? Should I bring this discussion back to llvm-dev?

Apr 5 2021, 3:30 AM · Restricted Project, Restricted Project

Mar 3 2021

aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

So, what could be the futur of that patch? Would that be okay to merge with a target_abi Clang attribute?

Mar 3 2021, 10:32 AM · Restricted Project, Restricted Project

Feb 3 2021

aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

I may be over-reacting to the way the patch seemed to be touching on the C++ ABI in multiple places. My understanding is that ms_abi is just a calling-convention attribute; it's basically "use the (default) calling convention that MSVC would use for this function". If that's all you want, then this is reasonable, although I am worried about creating a new attribute for every system that Wine chooses to target.

I literally based this patch on how ms_abi was implemented. It's unfortunately more than just teaching clang to change the calling convention on LLVM IR functions. The fact that ABI implementations are spread all over the place between various places in LLVM is, as far as I remember, a known problem discussed many times on llvm-dev, and looks like a hard one to fix.

Right, I understand that — I've even given an LLVM talk about it. I was just confused about your intent because you made some effort to match other parts of the ABI besides what we might traditionally consider the calling convention. I suppose some of those changes could be thought of as feature-specific calling conventions, but I don't usually think of them that way.

Feb 3 2021, 11:32 AM · Restricted Project, Restricted Project

Jan 21 2021

aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

I may be over-reacting to the way the patch seemed to be touching on the C++ ABI in multiple places. My understanding is that ms_abi is just a calling-convention attribute; it's basically "use the (default) calling convention that MSVC would use for this function". If that's all you want, then this is reasonable, although I am worried about creating a new attribute for every system that Wine chooses to target.

Jan 21 2021, 11:27 PM · Restricted Project, Restricted Project

Jan 7 2021

aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

I'm not calling Wine a niche use-case, I'm calling this feature a niche use-case. The lack of this feature has not blocked Wine from being a successful project. The feature has to stand on its own and be more broadly useful than the momentary convenience of a few developers.

Jan 7 2021, 12:43 AM · Restricted Project, Restricted Project

Jan 5 2021

aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

I do feel like this is a terrible idea, sorry. It's a *very* niche use case to be dedicating a new compiler feature to, and it's a feature that demands a lot from the internal compiler architecture in ways that other features don't.

Jan 5 2021, 11:28 PM · Restricted Project, Restricted Project
aguinet added inline comments to D89490: Introduce __attribute__((darwin_abi)).
Jan 5 2021, 4:27 AM · Restricted Project, Restricted Project
aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Rebase on current master, and take into account @aaron.ballman 's fixes (thanks!).

Jan 5 2021, 4:27 AM · Restricted Project, Restricted Project
aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

For now, only Linux/ARM64 is supported/tested.

Is there any reason this is Linux-specific (as far as support; I understand if it's not easy for you to test on non-Linux arm64).

Jan 5 2021, 4:03 AM · Restricted Project, Restricted Project

Dec 28 2020

aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Replace a just introduced const auto usage.

Dec 28 2020, 2:41 AM · Restricted Project, Restricted Project
aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Clang format fixes

Dec 28 2020, 2:36 AM · Restricted Project, Restricted Project
aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Rebased on current master branch, and added clang sema tests cc @aaron.ballman .

Dec 28 2020, 2:33 AM · Restricted Project, Restricted Project

Dec 7 2020

aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

Thanks @aaron.ballman for the comments!

Dec 7 2020, 1:35 PM · Restricted Project, Restricted Project
aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Multiple things:

Dec 7 2020, 1:34 PM · Restricted Project, Restricted Project

Dec 3 2020

aguinet accepted D92180: Speedup some unicode rendering.
Dec 3 2020, 6:37 AM · Restricted Project

Dec 2 2020

aguinet accepted D92180: Speedup some unicode rendering.
Dec 2 2020, 6:55 AM · Restricted Project

Nov 29 2020

aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Relax checks in CodeGenCXX/darwinabi-returnthis.cpp Clang test (to adapt to new attributes), and removes some useless brackets in if statements.

Nov 29 2020, 1:23 AM · Restricted Project, Restricted Project
aguinet added inline comments to D89490: Introduce __attribute__((darwin_abi)).
Nov 29 2020, 12:56 AM · Restricted Project, Restricted Project
aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).
Nov 29 2020, 12:56 AM · Restricted Project, Restricted Project

Nov 28 2020

aguinet added inline comments to D92180: Speedup some unicode rendering.
Nov 28 2020, 11:08 AM · Restricted Project

Oct 16 2020

aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

One missing formatting case...

Oct 16 2020, 2:21 AM · Restricted Project, Restricted Project
aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Add some clang-format tags, and restore back the "original" formatting for these cases

Oct 16 2020, 2:18 AM · Restricted Project, Restricted Project

Oct 15 2020

aguinet added inline comments to D89490: Introduce __attribute__((darwin_abi)).
Oct 15 2020, 11:38 PM · Restricted Project, Restricted Project
aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Fix one clang-tidy warning

Oct 15 2020, 11:30 PM · Restricted Project, Restricted Project
aguinet added inline comments to D89490: Introduce __attribute__((darwin_abi)).
Oct 15 2020, 11:22 PM · Restricted Project, Restricted Project
aguinet updated the diff for D89490: Introduce __attribute__((darwin_abi)).

Update format + llvm tests

Oct 15 2020, 2:04 PM · Restricted Project, Restricted Project
aguinet added a comment to D89490: Introduce __attribute__((darwin_abi)).

I see that the llvm side of the patch lacks tests?

Oct 15 2020, 1:29 PM · Restricted Project, Restricted Project
aguinet requested review of D89490: Introduce __attribute__((darwin_abi)).
Oct 15 2020, 12:09 PM · Restricted Project, Restricted Project

Aug 25 2020

aguinet added a comment to D85740: Universal MachO: support LLVM IR objects.

Thanks for the merge and reviews @alexshap (and @smeenai) !

Aug 25 2020, 11:23 PM · Restricted Project
aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.

This patch fixes one bug that was present: running llvm-lipo -archs on an LLVM IR object would crash, because we didn't check for that case in printBinaryArchs. This new patch fixes it, with an associated test.

Aug 25 2020, 7:36 AM · Restricted Project
aguinet added a comment to D85740: Universal MachO: support LLVM IR objects.

@alexshap note that I don't have RW access to the llvm repository, so I can't merge this myself

Aug 25 2020, 12:19 AM · Restricted Project
aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.
Aug 25 2020, 12:15 AM · Restricted Project
aguinet added a comment to D85740: Universal MachO: support LLVM IR objects.

Thanks for the new reviews! Fixed in the incoming diff

Aug 25 2020, 12:15 AM · Restricted Project
aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.

Fresh air!

Aug 25 2020, 12:12 AM · Restricted Project

Aug 24 2020

aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.

Just a small variable naming cleanup

Aug 24 2020, 5:12 AM · Restricted Project
aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.

@alexshap there we go, it should fix all your remarks. Please let my know if there are still some issues.

Aug 24 2020, 5:08 AM · Restricted Project
aguinet added a comment to D85740: Universal MachO: support LLVM IR objects.

Thanks @alexshap for your review and comments! Answers are inline.

Aug 24 2020, 4:13 AM · Restricted Project

Aug 22 2020

aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.

Cleanup/refactoring

Aug 22 2020, 10:02 AM · Restricted Project

Aug 17 2020

aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.

Clang-tidy + format remarks

Aug 17 2020, 6:26 AM · Restricted Project
aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.

Fix fatal error message of MachOUniversalBinary::ObjectForArch::getAsIRObject

Aug 17 2020, 4:39 AM · Restricted Project
aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.

Here is a new patch that includes:

Aug 17 2020, 4:18 AM · Restricted Project

Aug 16 2020

aguinet updated the diff for D67258: Out-of-tree machine IR passes.
  • Update to monorepo and master
  • Add forgotten RegisterMIRPasses.h
  • Compile and test even in static mode
Aug 16 2020, 2:58 AM · Restricted Project, Restricted Project

Aug 14 2020

aguinet added a comment to D85740: Universal MachO: support LLVM IR objects.

About that part, like I said in the description, the way I see it is to enhance the ObjectYAML library so that we can generate LLVM bitcode file format (as described in https://llvm.org/docs/BitCodeFormat.html), so that yaml2obj can generate appropriate LLVM IR test objects. That would be used for instance to test the -create flag. Do you see another way to do this?

Can't you just use llvm-as to produce bitcode files and feed those to llvm-lipo?

Aug 14 2020, 7:19 AM · Restricted Project

Aug 12 2020

aguinet updated the diff for D85740: Universal MachO: support LLVM IR objects.
Aug 12 2020, 1:48 AM · Restricted Project
aguinet added a comment to D85740: Universal MachO: support LLVM IR objects.

Thanks for the comments. Answers below:

Aug 12 2020, 1:46 AM · Restricted Project

Aug 11 2020

aguinet updated the summary of D85740: Universal MachO: support LLVM IR objects.
Aug 11 2020, 9:46 AM · Restricted Project
aguinet updated the summary of D85740: Universal MachO: support LLVM IR objects.
Aug 11 2020, 8:46 AM · Restricted Project
aguinet requested review of D85740: Universal MachO: support LLVM IR objects.
Aug 11 2020, 8:42 AM · Restricted Project

Dec 13 2019

aguinet added inline comments to D67258: Out-of-tree machine IR passes.
Dec 13 2019, 1:49 AM · Restricted Project, Restricted Project

Nov 26 2019

aguinet updated the diff for D67258: Out-of-tree machine IR passes.

Use BUILDTREE_ONLY, as suggested by @serge-sans-paille .

Nov 26 2019, 12:06 AM · Restricted Project, Restricted Project

Nov 25 2019

aguinet added inline comments to D67258: Out-of-tree machine IR passes.
Nov 25 2019, 5:26 AM · Restricted Project, Restricted Project
aguinet added inline comments to D67258: Out-of-tree machine IR passes.
Nov 25 2019, 5:26 AM · Restricted Project, Restricted Project

Nov 21 2019

aguinet updated the diff for D67258: Out-of-tree machine IR passes.

Copyright added on new cpp files.

Nov 21 2019, 12:16 AM · Restricted Project, Restricted Project

Nov 20 2019

aguinet updated the diff for D67258: Out-of-tree machine IR passes.

Cleaning up some commented CMake code...

Nov 20 2019, 11:35 PM · Restricted Project, Restricted Project
aguinet updated the diff for D67258: Out-of-tree machine IR passes.

Thanks Serge for the comments !

Nov 20 2019, 11:25 PM · Restricted Project, Restricted Project

Sep 5 2019

aguinet added a comment to D67258: Out-of-tree machine IR passes.

As a side remark, I have tested this with an out of tree MIR pass that dump MIR, and it works well. Should I add this test within the test suite? I didn't find such test for the current out-of-tree IR system (but chances are I missed it!).

Sep 5 2019, 11:41 PM · Restricted Project, Restricted Project
aguinet created D67258: Out-of-tree machine IR passes.
Sep 5 2019, 11:40 PM · Restricted Project, Restricted Project

Mar 21 2018

aguinet added a comment to D42350: Add constructor DWARF calling convention for every supported LLVM CC.

BTW, I don't have any commit rights thought, so I guess someone needs to merge this at some point?

Mar 21 2018, 3:30 PM
aguinet added a comment to D42350: Add constructor DWARF calling convention for every supported LLVM CC.

Thanks everyone for the review and comments!

Mar 21 2018, 3:11 PM

Feb 10 2018

aguinet updated the diff for D42351: Emit DWARF "constructor" calling convention for every supported Clang CC.

Test case added!

Feb 10 2018, 2:30 AM

Jan 31 2018

aguinet added a comment to D42350: Add constructor DWARF calling convention for every supported LLVM CC.

I'll try to do the same with icc by tring the various ABI it supports (https://software.intel.com/en-us/node/522787), and getting the potential value with readelf (all with a script to be able to run this again!)

Jan 31 2018, 11:18 PM

Jan 22 2018

aguinet added a comment to D42350: Add constructor DWARF calling convention for every supported LLVM CC.

By the way, if you can contribute patches that add more 3rd party DWARF extensions to LLVM, that would be awesome to help avoiding clashes in the future.

Jan 22 2018, 11:18 PM
aguinet updated the diff for D42350: Add constructor DWARF calling convention for every supported LLVM CC.
Jan 22 2018, 11:13 PM
aguinet added a comment to D42350: Add constructor DWARF calling convention for every supported LLVM CC.

I suppose the namespace for DW_CCs is large enough that doing this isn't very risky. Have you double-checked that this doesn't overlap with any other vendor extensions?

Jan 22 2018, 9:47 AM

Jan 21 2018

aguinet created D42351: Emit DWARF "constructor" calling convention for every supported Clang CC.
Jan 21 2018, 3:50 AM
aguinet created D42350: Add constructor DWARF calling convention for every supported LLVM CC.
Jan 21 2018, 3:49 AM
aguinet added a comment to D40644: Fix LLVM_ENABLE_PIC under Unix/Linux.

Hello Chill,

Jan 21 2018, 3:42 AM
aguinet updated subscribers of D40644: Fix LLVM_ENABLE_PIC under Unix/Linux.
Jan 21 2018, 3:35 AM

Nov 30 2017

aguinet created D40644: Fix LLVM_ENABLE_PIC under Unix/Linux.
Nov 30 2017, 2:46 AM

Jun 23 2016

aguinet retitled D21664: Fix Thumb text sections' flags under COFF/Windows (2/2) from to Fix Thumb text sections' flags under COFF/Windows (2/2).
Jun 23 2016, 3:14 PM
aguinet retitled D21662: Fix Thumb text sections' flags under COFF/Windows (1/2) from to Fix Thumb text sections' flags under COFF/Windows (1/2).
Jun 23 2016, 3:11 PM