Page MenuHomePhabricator

ajasty-cavium (Ananth Jasty)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 13 2016, 6:13 PM (162 w, 19 h)

Recent Activity

Feb 20 2019

ajasty-cavium updated subscribers of D58348: [AArch64] Fix for bug 35094 atomicrmw on Armv8.1-A+lse.
Feb 20 2019, 4:32 PM · Restricted Project

Jun 21 2017

ajasty-cavium added a comment to D33586: ARMv8.1 support for LLVM AArch64.

I can commit it on your behalf if you want me to.

Would greatly appreciate it!

You want me to use the summary as commit message?

Jun 21 2017, 3:10 AM
ajasty-cavium added a comment to D33586: ARMv8.1 support for LLVM AArch64.

Thank you Chris, I do not have commit rights, should I forward to the mailing list?

I can commit it on your behalf if you want me to.

Jun 21 2017, 2:59 AM
ajasty-cavium accepted D33586: ARMv8.1 support for LLVM AArch64.

Thank you Chris, I do not have commit rights, should I forward to the mailing list?

Jun 21 2017, 2:33 AM

Jun 20 2017

ajasty-cavium updated the diff for D33586: ARMv8.1 support for LLVM AArch64.

Added additional test cases for dead-register.

Jun 20 2017, 6:51 PM

Jun 19 2017

ajasty-cavium added a comment to D33586: ARMv8.1 support for LLVM AArch64.

Also reimplemented blacklist using all aarch64 opcodes.

Did you test that this blacklist now indeed works as expected? If you have such a test, can you add it. Thanks.

Jun 19 2017, 2:33 PM
ajasty-cavium updated the diff for D33586: ARMv8.1 support for LLVM AArch64.

Fixed CAS, renamed operands to "old/new" for clarity. Also updated test to use x0/x1 to confirm proper operand order.

Jun 19 2017, 6:01 AM

Jun 12 2017

ajasty-cavium updated the diff for D33586: ARMv8.1 support for LLVM AArch64.

Fixed dead-register blacklist, and disabled expandInIR for cmp-swap. Passes make check and individual test. Changed test invocation to -mattr=+lse.

Jun 12 2017, 11:09 AM

Jun 7 2017

ajasty-cavium added a comment to D33586: ARMv8.1 support for LLVM AArch64.

Seems like a good start for 8.1-A atomics to me. There are some things that might be improved upon, like supporting weaker orderings. Do you plan on doing that work as well?

Jun 7 2017, 11:53 AM

Jun 6 2017

ajasty-cavium updated the diff for D33586: ARMv8.1 support for LLVM AArch64.

Updated with full context.

Jun 6 2017, 11:03 AM
ajasty-cavium updated the diff for D33586: ARMv8.1 support for LLVM AArch64.

Updated with dead-register checking, added test.

Jun 6 2017, 10:14 AM

May 31 2017

ajasty-cavium added a comment to D33586: ARMv8.1 support for LLVM AArch64.

One other thing you have to be careful of: if an instruction loads into xzr or wzr then it's actually an "STwhatever" operation and defined not to have acquire semantics regardless of its mnemonic. So you probably have to modify AArch64DeadRegisterDefinitionsPass.cpp to ignore these instructions.

Yeah, this was a major concern of mine, technically it's an invalid mnemonic with ladaddal x0, xz, p. One solution was to custom lower all the atomic_load_X where operand 0 wasn't used, and create new AArch64ISD's for them. I wasn't thrilled about this for the first pass (because it seems to work anyway), but for the final it's something to consider.

I don't think you can say that it works that easily. The instruction will not implement the acquire semantics, so the memory model gets broken. Not an easy thing to track down once that happens. I think ignoring these instructions in AArch64DeadRegisterDefinitionsPass.cpp as suggested is a good approach.

May 31 2017, 2:20 PM

May 30 2017

ajasty-cavium added a reviewer for D33586: ARMv8.1 support for LLVM AArch64: christof.
May 30 2017, 9:53 AM

May 26 2017

ajasty-cavium added a comment to D33586: ARMv8.1 support for LLVM AArch64.

One other thing you have to be careful of: if an instruction loads into xzr or wzr then it's actually an "STwhatever" operation and defined not to have acquire semantics regardless of its mnemonic. So you probably have to modify AArch64DeadRegisterDefinitionsPass.cpp to ignore these instructions.

May 26 2017, 12:13 PM
ajasty-cavium updated the diff for D33586: ARMv8.1 support for LLVM AArch64.

Fixed to full diff.

May 26 2017, 9:33 AM

May 25 2017

ajasty-cavium updated the summary of D33586: ARMv8.1 support for LLVM AArch64.
May 25 2017, 11:29 PM
ajasty-cavium updated the summary of D33586: ARMv8.1 support for LLVM AArch64.
May 25 2017, 11:21 PM
ajasty-cavium created D33586: ARMv8.1 support for LLVM AArch64.
May 25 2017, 11:19 PM

Sep 13 2016

ajasty-cavium retitled D24540: [AArch64] Add Cavium ThunderX subtarget support. from to [AArch64] Add Cavium ThunderX subtarget support..
Sep 13 2016, 6:30 PM