Page MenuHomePhabricator

ZarkoCA (Zarko Todorovski)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 11 2018, 9:51 AM (68 w, 6 d)

Recent Activity

Today

ZarkoCA updated the diff for D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.

Rebase.

Mon, Apr 6, 7:32 AM · Restricted Project
ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Rebase and ping.

Mon, Apr 6, 7:32 AM · Restricted Project, Restricted Project

Thu, Apr 2

ZarkoCA added inline comments to D77235: [NFC][PowerPC] Cleanup 64-bit and Darwin CalleeSavedRegs.
Thu, Apr 2, 7:33 AM · Restricted Project
ZarkoCA added inline comments to D76380: [PowerPC][AIX] Implement by-val caller arguments in multiple registers.
Thu, Apr 2, 7:01 AM · Restricted Project

Wed, Apr 1

ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Removed data layout and target triple info from test output.

Wed, Apr 1, 10:26 AM · Restricted Project, Restricted Project
ZarkoCA updated the diff for D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.

Set isSoftFloat to return false for AIX.

Wed, Apr 1, 8:27 AM · Restricted Project
ZarkoCA added inline comments to D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.
Wed, Apr 1, 8:27 AM · Restricted Project
ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Fixed test cases that were breaking.

Wed, Apr 1, 7:40 AM · Restricted Project, Restricted Project

Tue, Mar 31

ZarkoCA planned changes to D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Fixing test case issues.

Tue, Mar 31, 7:44 AM · Restricted Project, Restricted Project

Mon, Mar 30

ZarkoCA added inline comments to D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.
Mon, Mar 30, 8:46 PM · Restricted Project
ZarkoCA updated the diff for D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.

Fixed test cases to use builtins again, set no soft float abi for AIX.

Mon, Mar 30, 8:46 PM · Restricted Project
ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Rebased to include byval changes.

Mon, Mar 30, 8:46 PM · Restricted Project, Restricted Project
ZarkoCA added inline comments to D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.
Mon, Mar 30, 8:13 PM · Restricted Project, Restricted Project

Fri, Mar 27

ZarkoCA added inline comments to D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.
Fri, Mar 27, 9:05 AM · Restricted Project
ZarkoCA updated the diff for D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.

Created PPCAIX32TargetCodeGenInfo class so that initDwarfEHRegSizeTable now returns true on AIX and added a test.

Fri, Mar 27, 8:45 AM · Restricted Project
ZarkoCA added inline comments to D76875: [NFC] [PPC] [AIX] Test improvements for byval arguments that fit in a single register.
Fri, Mar 27, 6:29 AM · Restricted Project
ZarkoCA added a comment to D76902: [PowerPC][AIX] ByVal formal argument support: multiple registers.

A small suggestion would be to add a test to further show that the GPRs are "burned" properly with with floats in the byval handling. Eg. using a struct like `%struct.S31 = type <{ float, i32, i64, double, i32, double }>' and seeing the error that structs split regs and the stack are not handled.

Fri, Mar 27, 5:56 AM · Restricted Project, Restricted Project

Tue, Mar 24

ZarkoCA updated the diff for D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.

Renamed PPC32_SVR4ABIInfo class to PPC32ABIInfo.
Fixed test case to use builtins.
Changed comment.

Tue, Mar 24, 8:02 AM · Restricted Project
ZarkoCA added inline comments to D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.
Tue, Mar 24, 8:02 AM · Restricted Project
ZarkoCA added a comment to D76401: [PowerPC][AIX] ByVal formal argument support: single register..

IMO, the patch is pretty much done, just some test clean up.

Tue, Mar 24, 7:29 AM · Restricted Project, Restricted Project

Mon, Mar 23

ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Simplified testcases.
Added testcases for variadic arguments being passed directly to the stack when all registers are used.

Mon, Mar 23, 3:16 PM · Restricted Project, Restricted Project

Thu, Mar 19

ZarkoCA added inline comments to D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.
Thu, Mar 19, 11:27 AM · Restricted Project, Restricted Project
ZarkoCA added a comment to D76401: [PowerPC][AIX] ByVal formal argument support: single register..

I think that we may need some more struct types with varying size elements. Right now, the tests mostly will check for mostly lbz at an offset. Would be great if we see that lha or even lw is used when required. However, this may be easier to do in a patch where arguments greater than register size are used?

Thu, Mar 19, 10:52 AM · Restricted Project, Restricted Project
ZarkoCA updated the diff for D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.

Changed comments per suggestions.
Added va_copy in test case.

Thu, Mar 19, 10:17 AM · Restricted Project
ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Addressed code comments, working on adding and fixing tests for further clarity.

Thu, Mar 19, 10:17 AM · Restricted Project, Restricted Project
ZarkoCA added inline comments to D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.
Thu, Mar 19, 10:17 AM · Restricted Project

Wed, Mar 18

ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Fixed testcase breakages.

Wed, Mar 18, 9:47 AM · Restricted Project, Restricted Project
ZarkoCA added inline comments to D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.
Wed, Mar 18, 7:02 AM · Restricted Project, Restricted Project
ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Addressed comments by Jason.
Re-added 64BIT changes for LLC.
Split clang changes and made a patch specific with them https://reviews.llvm.org/D76360

Wed, Mar 18, 7:02 AM · Restricted Project, Restricted Project
ZarkoCA added reviewers for D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang: jasonliu, sfertile, cebowleratibm.
Wed, Mar 18, 7:02 AM · Restricted Project
ZarkoCA created D76360: [PPC][AIX] Emit correct Vaarg for 32BIT-AIX in clang.
Wed, Mar 18, 7:02 AM · Restricted Project

Tue, Mar 17

ZarkoCA planned changes to D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

I will split this patch up in two. One for changes in clang specific for 32BIT AIX varargs, and a second for changes in llc for 32/64BIT varargs.

Tue, Mar 17, 12:56 PM · Restricted Project, Restricted Project
ZarkoCA added inline comments to D75863: [AIX] Implement by-val caller arguments in a single register.
Tue, Mar 17, 7:57 AM · Restricted Project
ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Removed unrelated changes in aix-cc-abi.ll

Tue, Mar 17, 7:57 AM · Restricted Project, Restricted Project
ZarkoCA retitled D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX from [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX in 32B-bit mode. to [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX in 32-bit mode..
Tue, Mar 17, 6:52 AM · Restricted Project, Restricted Project
ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.
  • Removed 64BIT support varargs.
  • Added a fatal error for 64bit varargs on AIX.
  • Removed 64bit testcases
Tue, Mar 17, 6:52 AM · Restricted Project, Restricted Project
ZarkoCA retitled D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX from [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX. to [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX in 32B-bit mode..
Tue, Mar 17, 6:52 AM · Restricted Project, Restricted Project

Fri, Mar 13

ZarkoCA updated the diff for D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.

Clang formatted the patch and fixed typo in testcase.

Fri, Mar 13, 8:33 AM · Restricted Project, Restricted Project
ZarkoCA created D76130: [PPC][AIX] Implement variadic function handling in LowerFormalArguments_AIX.
Fri, Mar 13, 6:55 AM · Restricted Project, Restricted Project

Mar 5 2020

ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Rebase off https://reviews.llvm.org/D75126 and fix expected output of caller side tests based on that patch.

Mar 5 2020, 10:22 AM · Restricted Project

Mar 4 2020

ZarkoCA added a comment to D75126: [AIX] Extend integer arguments to register width when passed in stack memory..

Looks good to me, thanks for updating the tests in a separate patch.

Mar 4 2020, 6:44 AM · Restricted Project

Feb 28 2020

ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Fix whitespace errors, sorry for the noise.

Feb 28 2020, 8:14 AM · Restricted Project
ZarkoCA added a comment to D74225: [AIX] Implement formal arguments passed in stack memory.

I think we need some changes to ensure frame objects are created with their proper size and not word size.

We have 2 choices for the smaller then save slot sized objects:

  1. Follow XL's behavior and perform a load of the entire save slot, and create frame objects of this size to match. If we chose this we would have to build and insert 'AssertSExt' and 'AssertZExt` nodes and truncates appropriately. The truncates should get cleaned up down stream due to the assert-extended nodes.
  2. Perform the offset adjustment and load using the load instruction with the correct extending type, and have frame objects created at the correct offset matching the size of the load.

    It seems we are mixing these 2 right now? but I have to play with some smaller tests to make sure my understanding is correct.

On the callee side, for i32s on 64BIT and i1s in 32/64BIT we create fixed objects the size of the value type and then use the appropriate load (lw or lb). Except for i8 and i16s which I think are extended to fit the reg size. I think this is consistent with LLVM PPC32.

Feb 28 2020, 7:44 AM · Restricted Project
ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Change the offset for args smaller than loc size on 32BIT too and add a bool stack test case.

Feb 28 2020, 7:30 AM · Restricted Project

Feb 27 2020

ZarkoCA added inline comments to D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 27 2020, 5:59 PM · Restricted Project
ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Updated comment.
Fixed testcases:

Feb 27 2020, 5:41 PM · Restricted Project
ZarkoCA added inline comments to D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 27 2020, 5:41 PM · Restricted Project

Feb 25 2020

ZarkoCA added a comment to D75126: [AIX] Extend integer arguments to register width when passed in stack memory..

It would be better if the test cleanup was done in a separate patch to make it clearer what the expected output of the patch. But that said, it's not difficult to find added testcase and it would be ok with me to leave the modified test cases.

Feb 25 2020, 9:20 AM · Restricted Project

Feb 24 2020

ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Fixed trailing whitespace issues when applying the patch.
Fixed formatting and removed redundant comments.

Feb 24 2020, 10:21 AM · Restricted Project
ZarkoCA added inline comments to D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 24 2020, 10:12 AM · Restricted Project

Feb 20 2020

ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Added Check-Label to testcases.
Changed variable names.
Fixed testcases to improve readability.

Feb 20 2020, 12:10 PM · Restricted Project
ZarkoCA planned changes to D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 20 2020, 12:01 PM · Restricted Project

Feb 19 2020

ZarkoCA added inline comments to D74349: [PowerPC][AIX] Spill and restore the non-volatile condition register bits..
Feb 19 2020, 10:19 AM · Restricted Project

Feb 18 2020

ZarkoCA added inline comments to D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 18 2020, 3:26 AM · Restricted Project
ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Addressed comments and fixed testcases.

Feb 18 2020, 3:26 AM · Restricted Project

Feb 12 2020

ZarkoCA added inline comments to D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 12 2020, 7:31 PM · Restricted Project
ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Added new testcases which include both callee and callee IR and assembly expected output.
Addressed comments:

  1. Added ByVal assertion
  2. Replaced no RegLoc/MemLoc fatal error with an assertion
  3. Moved variable definitions closer to where they are used
  4. Fixed formatting
Feb 12 2020, 7:13 PM · Restricted Project

Feb 10 2020

ZarkoCA planned changes to D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 10 2020, 10:49 AM · Restricted Project
ZarkoCA updated the diff for D74225: [AIX] Implement formal arguments passed in stack memory.

Added assembly tests and fixed white space errors in tests.

Feb 10 2020, 5:07 AM · Restricted Project

Feb 7 2020

ZarkoCA updated the summary of D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 7 2020, 8:18 AM · Restricted Project
ZarkoCA created D74225: [AIX] Implement formal arguments passed in stack memory.
Feb 7 2020, 8:09 AM · Restricted Project

Jan 31 2020

ZarkoCA added a comment to D73209: [AIX] Implement caller arguments passed in stack memory.

fyi@cebowleratibm To me, this patch looks good now. I'm holding on approving to give other reviewers a chance to have a look.

Jan 31 2020, 9:49 AM · Restricted Project

Jan 29 2020

ZarkoCA added inline comments to D73209: [AIX] Implement caller arguments passed in stack memory.
Jan 29 2020, 8:25 AM · Restricted Project
ZarkoCA added inline comments to D73209: [AIX] Implement caller arguments passed in stack memory.
Jan 29 2020, 6:53 AM · Restricted Project

Jan 23 2020

ZarkoCA added inline comments to D73209: [AIX] Implement caller arguments passed in stack memory.
Jan 23 2020, 7:07 AM · Restricted Project

Jan 15 2020

ZarkoCA added a comment to D72454: [AIX] Enable frame pointer for AIX and add related test suite.

I think this patch is really close, just needs some typo fixes. I'm hesitant to approve since no one else has had a chance to look at it.

Jan 15 2020, 8:49 AM · Restricted Project

Jan 13 2020

ZarkoCA added inline comments to D72454: [AIX] Enable frame pointer for AIX and add related test suite.
Jan 13 2020, 10:54 AM · Restricted Project

Jan 10 2020

ZarkoCA added inline comments to D72454: [AIX] Enable frame pointer for AIX and add related test suite.
Jan 10 2020, 7:05 AM · Restricted Project

Jan 9 2020

ZarkoCA accepted D71013: [AIX] Allow vararg calls when all arguments reside in registers..

LGTM

Jan 9 2020, 10:05 AM · Restricted Project

Jan 8 2020

ZarkoCA added inline comments to D71013: [AIX] Allow vararg calls when all arguments reside in registers..
Jan 8 2020, 6:34 AM · Restricted Project

Dec 17 2019

ZarkoCA added a comment to D71504: [PowerPC] Enable sret arguments..

We added the fatal_error in the previous patch in order to keep the patch as small and focused as possible. For back-end implementation everything should just work: we allocate a frame index for the object on the stack and pass a pointer to the frame-object as the argument. At that point its simply another pointer argument. As Hubert mentions though there is front-end (clang/CodeGen) work that is needed for generating the correct IR for AIX argument passing.

Dec 17 2019, 5:32 AM · Restricted Project

Dec 16 2019

ZarkoCA added a comment to D71504: [PowerPC] Enable sret arguments..

So it doesn't look like we need to add any special handling for struct returns on AIX? I had a quick look and none of the other PPC targets seem to have anything.

Dec 16 2019, 5:31 AM · Restricted Project

Dec 11 2019

ZarkoCA added a comment to D70724: [PowerPC] Add Support for indirect calls on AIX..

Nit: It may be better to rename the test aix-indirect-call.ll to be consistent.

Dec 11 2019, 12:37 PM · Restricted Project

Dec 6 2019

ZarkoCA added inline comments to D70724: [PowerPC] Add Support for indirect calls on AIX..
Dec 6 2019, 6:14 PM · Restricted Project
ZarkoCA added inline comments to D70724: [PowerPC] Add Support for indirect calls on AIX..
Dec 6 2019, 8:50 AM · Restricted Project
ZarkoCA added inline comments to D70724: [PowerPC] Add Support for indirect calls on AIX..
Dec 6 2019, 8:11 AM · Restricted Project

Dec 4 2019

ZarkoCA added inline comments to D71013: [AIX] Allow vararg calls when all arguments reside in registers..
Dec 4 2019, 9:14 AM · Restricted Project
ZarkoCA accepted D70126: [PowerPC] Refactor FinishCall [NFC].

Patch looks good to me.

Dec 4 2019, 7:21 AM · Restricted Project

Nov 26 2019

ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..

Fixed testcase typo.

Nov 26 2019, 1:26 PM · Restricted Project
ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..

Rebase of latest masters (Nov 26, 2019) and fix testcase register typo.

Nov 26 2019, 12:59 PM · Restricted Project
ZarkoCA added a comment to D69578: [AIX] Add support for lowering int, float and double formal arguments..

Only a couple minor comments. Otherwise LGTM.

Nov 26 2019, 10:12 AM · Restricted Project
ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..

Moved variable declarations and definition to just before they are first used.
Added zext i1 testcase and check for absence of clear instruction.

Nov 26 2019, 10:12 AM · Restricted Project

Nov 19 2019

ZarkoCA added inline comments to D69578: [AIX] Add support for lowering int, float and double formal arguments..
Nov 19 2019, 1:20 PM · Restricted Project
ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..

Fixed testcases.

Nov 19 2019, 1:20 PM · Restricted Project
ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..

Moved assert to earliest position in truncateScalarIntger().
Fixed typos.
Removed std::max when calculating MinReservedArea.
Used opt -mem2reg to remove allocas resulting in body of callee functions looking cleaner with fewer unnecessary lines.

Nov 19 2019, 5:38 AM · Restricted Project
ZarkoCA added inline comments to D69578: [AIX] Add support for lowering int, float and double formal arguments..
Nov 19 2019, 5:38 AM · Restricted Project

Nov 14 2019

ZarkoCA added inline comments to D69578: [AIX] Add support for lowering int, float and double formal arguments..
Nov 14 2019, 12:34 PM · Restricted Project
ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..

Made truncateScalarIntegers not a member of PPCISelLowering class.
Removed fatal error for altivec, CC_AIX already errors with vector args.
Removed -mattr=-maltivec on tests where I added it, as we no longer error on those.

Nov 14 2019, 12:34 PM · Restricted Project
ZarkoCA added a comment to D70126: [PowerPC] Refactor FinishCall [NFC].

Overall, I think this refactor aids in readability and clarity of calling convention code PPCISelLowering.cpp. Even small changes like renaming InFlag to Glue go a long way in helping understanding.

Nov 14 2019, 6:35 AM · Restricted Project

Nov 13 2019

ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..

Updates testcases to use all of the parameters in the function definition.

Nov 13 2019, 12:50 PM · Restricted Project
ZarkoCA added a comment to D69578: [AIX] Add support for lowering int, float and double formal arguments..

A couple high level comments on the tests.

  • I like how you extended the 'LowerCall' tests to test both the caller and callee side, as opposed to adding new tests just for the formal argument lowering.
  • There are a lot of tests covering quite a few cases. Its good to have thorough coverage. Having separate test cases for things like 1 float vs 3 floats, and 1 i8, vs 4 sext i8s, vs 4 zext i8s might be a little too verbose though. Having a couple calls that mix various extensions of the i8/i16 types i32 and i64 types should give adequate test coverage. Similarly for the fpr tests, a call which mixes doubles and floats should be adequate. I think the most descriptive test are those that are mixing floating and integer/pointer values. For example calling a function with a signature like: (i64 %a, double %d, i1 zeroext %b, float %f, i16 signext %c) shows how we split the i64 for 32-bit codegen, skip gprs for doubls/floats and map the smaller then register sized types into a gpr all in 1 test.
Nov 13 2019, 8:18 AM · Restricted Project
ZarkoCA added inline comments to D69578: [AIX] Add support for lowering int, float and double formal arguments..
Nov 13 2019, 8:09 AM · Restricted Project
ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..
  1. Addressed second round of comments.
    • Added truncateScalarIntegerArgs function, now we add sext, zext nodes if they are needed and truncate whenever an int size is smaller than the register size.
    • use CCinfo to allocate stack.
    • consolidated calling convention testcases and removed some non-essential tests
Nov 13 2019, 8:08 AM · Restricted Project

Nov 5 2019

ZarkoCA updated the diff for D69578: [AIX] Add support for lowering int, float and double formal arguments..

1 .Fixed broken testcases for AIX because of explicit error with altivec, and added reviewer for these.

  1. Added additional guard to assert if i64 are not split into i32 before register allocation.
  2. Rebased patch on master.
Nov 5 2019, 10:38 AM · Restricted Project

Oct 31 2019

ZarkoCA added inline comments to D69578: [AIX] Add support for lowering int, float and double formal arguments..
Oct 31 2019, 6:16 AM · Restricted Project

Oct 29 2019

ZarkoCA created D69578: [AIX] Add support for lowering int, float and double formal arguments..
Oct 29 2019, 11:51 AM · Restricted Project

Oct 23 2019

ZarkoCA added inline comments to D69101: [AIX] Refactor AIX Call Lowering to use CCState. NFCI..
Oct 23 2019, 6:30 PM · Restricted Project