Page MenuHomePhabricator

jhibbits (Justin Hibbits)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 8 2014, 1:26 PM (267 w, 18 h)

Recent Activity

Sep 19 2019

jhibbits added a comment to D67787: Add 8548 CPU definition and attributes.

I made 8548 an alias in clang to e500, because e500 is recognized in llvm as a CPU, so gets us the feature list and, more importantly, the instruction scheduler.

Sep 19 2019, 8:23 PM · Restricted Project
jhibbits created D67787: Add 8548 CPU definition and attributes.
Sep 19 2019, 8:23 PM · Restricted Project

Sep 12 2019

jhibbits accepted D67513: [PowerPC] Remove the SPE4RC register class and instead add f32 to the GPRC register class..
Sep 12 2019, 2:44 PM · Restricted Project
jhibbits added inline comments to D67513: [PowerPC] Remove the SPE4RC register class and instead add f32 to the GPRC register class..
Sep 12 2019, 2:21 PM · Restricted Project
jhibbits added a comment to D67513: [PowerPC] Remove the SPE4RC register class and instead add f32 to the GPRC register class..

Thanks for getting rid of SPE4RC, I really did not like it, but couldn't think of a better way. Glad you did.

Sep 12 2019, 1:17 PM · Restricted Project

Sep 5 2019

jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Not in 9.0, but I will try to push for it in 9.0.1.

Sep 5 2019, 7:26 AM · Restricted Project, Restricted Project
jhibbits committed rG3dac214273ee: Add -m(no)-spe to clang (authored by jhibbits).
Add -m(no)-spe to clang
Sep 5 2019, 6:39 AM
jhibbits committed rL371066: Add -m(no)-spe to clang.
Add -m(no)-spe to clang
Sep 5 2019, 6:39 AM
jhibbits closed D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.
Sep 5 2019, 6:39 AM · Restricted Project, Restricted Project

Sep 3 2019

jhibbits accepted D67119: On PowerPC, Secure-PLT by default for FreeBSD 13 and higher.
Sep 3 2019, 11:41 AM · Restricted Project, Restricted Project
jhibbits accepted D67118: On PowerPC, Secure-PLT by default for FreeBSD 13 and higher.

Thanks for pushing these through. They've been sitting in my private repo for too long now out of laziness.

Sep 3 2019, 11:40 AM · Restricted Project

Jul 29 2019

jhibbits requested review of D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Should've marked it as need review earlier.

Jul 29 2019, 12:53 PM · Restricted Project, Restricted Project
jhibbits added a reviewer for D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang: hfinkel.
Jul 29 2019, 12:53 PM · Restricted Project, Restricted Project

Jul 17 2019

jhibbits accepted D60335: Use -fomit-frame-pointer when optimizing PowerPC code.

Looks fine to me. Since it can be turned off, I don't see a problem if it causes issues.

Jul 17 2019, 9:45 AM · Restricted Project
jhibbits committed rG0257c6b659f1: PowerPC: Fix register spilling for SPE registers (authored by jhibbits).
PowerPC: Fix register spilling for SPE registers
Jul 17 2019, 5:32 AM
jhibbits committed rG5214956eaaa1: PowerPC/SPE: Fix load/store handling for SPE (authored by jhibbits).
PowerPC/SPE: Fix load/store handling for SPE
Jul 17 2019, 5:31 AM
jhibbits committed rL366319: PowerPC: Fix register spilling for SPE registers.
PowerPC: Fix register spilling for SPE registers
Jul 17 2019, 5:31 AM
jhibbits closed D56703: PowerPC: Fix register spilling for SPE registers.
Jul 17 2019, 5:31 AM · Restricted Project
jhibbits committed rL366318: PowerPC/SPE: Fix load/store handling for SPE.
PowerPC/SPE: Fix load/store handling for SPE
Jul 17 2019, 5:31 AM
jhibbits closed D54409: PowerPC/SPE: Fix load/store handling for SPE.
Jul 17 2019, 5:30 AM · Restricted Project

Jul 16 2019

jhibbits added inline comments to D54409: PowerPC/SPE: Fix load/store handling for SPE.
Jul 16 2019, 6:46 PM · Restricted Project

Jun 29 2019

jhibbits updated the diff for D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Made '8548' CPU designation just a stub, to be filled out later. I added it
just for parity with GCC. The 8548 CPU, for GCC, also sets the
NO_LWSYNC macro, which doesn't belong with the SPE change, so will have
to be revisited later.

Jun 29 2019, 8:08 PM · Restricted Project, Restricted Project

Jun 28 2019

jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Actually, I'm not yet ready to commit this. I want to enforce the 8548 -> e500 processor model before I call this ready. How do I do that with the mcpu?

Jun 28 2019, 8:50 PM · Restricted Project, Restricted Project
jhibbits added a comment to D54409: PowerPC/SPE: Fix load/store handling for SPE.

The immediate offsets for the evldd/evstdd instructions are UInt8, not SInt8, but otherwise your change looks fine. Do you have additional tests for it? You had mentioned before about problematic relocations, is that still the case with your patch?

Jun 28 2019, 7:36 AM · Restricted Project
jhibbits added a comment to D56703: PowerPC: Fix register spilling for SPE registers.

I removed the extra spill changes. Those can be done later if there actually is a problem. This didn't change the tests at all. I'm not quite sure how to write a test to demonstrate that "some but not all" registers are spilled in a given case, given that the register allocator can change at any time, so can't hard-code the registers that would get spilled, and I don't think I can even hard-code the number of registers that could get spilled.

Jun 28 2019, 7:23 AM · Restricted Project
jhibbits updated the summary of D56703: PowerPC: Fix register spilling for SPE registers.
Jun 28 2019, 7:17 AM · Restricted Project
jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

I'll commit it tonight. Was going to last night, but ran into a clang test failure, that turned out to be a long-standing failure with FreeBSD/powerpc64, not a problem with my change.

Jun 28 2019, 7:17 AM · Restricted Project, Restricted Project

Jun 27 2019

jhibbits added inline comments to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.
Jun 27 2019, 8:27 PM · Restricted Project, Restricted Project
jhibbits updated the diff for D56703: PowerPC: Fix register spilling for SPE registers.

Reduce the scope of the patch.

Jun 27 2019, 6:56 PM · Restricted Project
jhibbits updated the diff for D54409: PowerPC/SPE: Fix load/store handling for SPE.

Address nemanjai's feedback. Move the EVX check into a separate callable
function. In the future it could possibly be used as a separate addressing
mode, but a naive approach didn't work, and this solves the problem at hand.

Jun 27 2019, 6:56 PM · Restricted Project

Jun 23 2019

jhibbits accepted D63563: [PPC32] Fix PLT calls for -msecure-plt -fpic.

Looks fine to me. @hfinkel or @nemanjai?

Jun 23 2019, 7:28 PM · Restricted Project

Jun 16 2019

jhibbits committed rG1d1cf30b738b: PowerPC: Optimize SPE double parameter calling setup (authored by jhibbits).
PowerPC: Optimize SPE double parameter calling setup
Jun 16 2019, 8:15 PM
jhibbits committed rL363526: PowerPC: Optimize SPE double parameter calling setup.
PowerPC: Optimize SPE double parameter calling setup
Jun 16 2019, 8:15 PM
jhibbits closed D54583: PowerPC: Optimize SPE double parameter calling setup.
Jun 16 2019, 8:15 PM · Restricted Project

May 11 2019

jhibbits added a comment to D56703: PowerPC: Fix register spilling for SPE registers.

Can you add a test case? At least for the spills that you're adding.

May 11 2019, 10:37 AM · Restricted Project

Apr 29 2019

jhibbits added inline comments to D54409: PowerPC/SPE: Fix load/store handling for SPE.
Apr 29 2019, 7:26 AM · Restricted Project

Apr 24 2019

jhibbits accepted D61026: Fix initial-exec in PIC mode for PPC32.

Looks fine to me.

Apr 24 2019, 1:37 PM · Restricted Project

Apr 2 2019

jhibbits added inline comments to D54583: PowerPC: Optimize SPE double parameter calling setup.
Apr 2 2019, 1:12 PM · Restricted Project

Mar 28 2019

jhibbits added a comment to D54583: PowerPC: Optimize SPE double parameter calling setup.

@jhibbits I don't know how to create a new revision here. My idea is to handle this fix via you, as you are already known for the SPE modifications.

Mar 28 2019, 7:22 AM · Restricted Project

Mar 27 2019

jhibbits added a comment to D59310: [PowerPC] Fix issue with inline asm - soft float mode.

Can you adjust the summary? This doesn't prevent floating point instructions completely, it only prevents floating point register constraints. The assertion that it prevents all floating point instructions is what I first took issue with, so please make it explicit that this is *only* regarding register constraints.

Mar 27 2019, 8:26 AM · Restricted Project, Restricted Project
jhibbits accepted D59310: [PowerPC] Fix issue with inline asm - soft float mode.

Reading through the diff again, closer, and checking the FreeBSD source, this is acceptable. FreeBSD only uses the base register, and hard-codes register numbers, so doesn't go through float register allocation.

Mar 27 2019, 8:23 AM · Restricted Project, Restricted Project
jhibbits accepted D59185: [PowerPC] Set the default PLT mode on musl to Secure PLT.

Looks fine to me.

Mar 27 2019, 8:15 AM · Restricted Project, Restricted Project
jhibbits added a comment to D54583: PowerPC: Optimize SPE double parameter calling setup.

@kthomsen can you create a new revision just for that diff?

Mar 27 2019, 8:15 AM · Restricted Project

Mar 14 2019

jhibbits added a comment to D59310: [PowerPC] Fix issue with inline asm - soft float mode.

I'd like to amend my previous comment: FreeBSD, and I'd guess Linux, too, explicitly builds the kernel with -msoft-float, in order to prevent FPU-consuming optimizations. However, we still need to be able to save and restore FPU context, which requires inline asm (or a completely asm file, not something we want). This change would prevent us being able to do that.

Mar 14 2019, 7:43 AM · Restricted Project, Restricted Project

Mar 13 2019

jhibbits added a comment to D59310: [PowerPC] Fix issue with inline asm - soft float mode.

I really don't like this. It should be possible to mix soft-float, Altivec, VSX, and SPE in the same file using inline asm. I put a check in for SPE codegen specifically to permit inline asm for other floating point models.

Mar 13 2019, 11:16 AM · Restricted Project, Restricted Project

Feb 28 2019

jhibbits updated the diff for D54583: PowerPC: Optimize SPE double parameter calling setup.

Address feedback. Provide full context for diffs.

Feb 28 2019, 10:32 AM · Restricted Project
jhibbits updated the diff for D54409: PowerPC/SPE: Fix load/store handling for SPE.

Address feedback. Provide full context for diffs.

Feb 28 2019, 10:32 AM · Restricted Project
jhibbits updated the diff for D56703: PowerPC: Fix register spilling for SPE registers.

Address feedback. Update patch to provide full context.

Feb 28 2019, 10:30 AM · Restricted Project

Feb 19 2019

jhibbits requested review of D54409: PowerPC/SPE: Fix load/store handling for SPE.

I thought this would've been auto-marked as needs review when I updated, but apparently not.

Feb 19 2019, 12:40 PM · Restricted Project

Feb 5 2019

jhibbits updated the diff for D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Add feedback from @vit9696, and VAARG fix from @kthomsen.

Feb 5 2019, 8:36 PM · Restricted Project, Restricted Project
jhibbits updated the diff for D54409: PowerPC/SPE: Fix load/store handling for SPE.

Incorporate patch from @kthomsen for handling globals.

Feb 5 2019, 8:31 PM · Restricted Project

Jan 29 2019

jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

@vit9696 sure thing.

Jan 29 2019, 8:02 AM · Restricted Project, Restricted Project
jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Hi Kei, that's fantastic! There's one more thing to add to this, which is to predefine NO_FPRS, and it should be a good replacement for gcc for 90+% of cases. I'll add your changes and this, and resubmit this review.

Jan 29 2019, 7:31 AM · Restricted Project, Restricted Project

Jan 23 2019

jhibbits added a comment to D54583: PowerPC: Optimize SPE double parameter calling setup.

Hi @vit9696, it looks like Kei's patch fixes the issue you're seeing as well.

Jan 23 2019, 6:38 PM · Restricted Project
jhibbits added a comment to D54583: PowerPC: Optimize SPE double parameter calling setup.

Hi Kei, thanks! I'll gladly add it to one of the patches. It might fit better with D54409, since the purpose of that is to fix the evldd handling in general.

Jan 23 2019, 6:14 PM · Restricted Project

Jan 21 2019

jhibbits added a comment to D54583: PowerPC: Optimize SPE double parameter calling setup.

Hi Kei, yes you need the patch in D54409, which fixes the offset handling. It should fix your case as well, but I didn't test foreign addresses.

Jan 21 2019, 9:48 AM · Restricted Project

Jan 20 2019

jhibbits updated the diff for D54583: PowerPC: Optimize SPE double parameter calling setup.

One more argument index fixup.

Jan 20 2019, 1:49 PM · Restricted Project

Jan 18 2019

jhibbits added a comment to D54583: PowerPC: Optimize SPE double parameter calling setup.

Hi Kei, thanks for that. I've updated my code, and will post an updated diff tomorrow.

Jan 18 2019, 9:38 PM · Restricted Project

Jan 17 2019

jhibbits updated the diff for D54583: PowerPC: Optimize SPE double parameter calling setup.

Fix argument indices for indexing through OutVals[]. It should be the argument index, not the physical register index.

Jan 17 2019, 1:00 PM · Restricted Project
jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Hi @vit9696, thanks for that, it was a straightforward fix. I'll post an update shortly for D54583, if arcanist cooperates. The short of it is I need two indices for arguments, since one is for logical arguments the other is for physical register allocation. I was only using 1, based on physical register allocation.

Jan 17 2019, 12:54 PM · Restricted Project, Restricted Project
jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Hi @vit9696 it does crash with the linux target (powerpc-gnu-linux), but is fine with powerpc-gnu-freebsd.

Jan 17 2019, 10:14 AM · Restricted Project, Restricted Project
jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

This looks to be caused by using 128-bit long double on the platform. Does linux really use 128-bit long doubles on ppc32? FreeBSD uses 64-bit long double, so compiling that with '-target powerpc-gnu-freebsd' works fine. I'm not sure how to handle the 128-bit values.

Jan 17 2019, 10:01 AM · Restricted Project, Restricted Project

Jan 14 2019

jhibbits created D56703: PowerPC: Fix register spilling for SPE registers.
Jan 14 2019, 8:38 PM · Restricted Project
jhibbits updated the diff for D54583: PowerPC: Optimize SPE double parameter calling setup.

Fix expanding builtins to libcalls. Remove the need for intermediate illegal types in expanding and pairing the arguments and return values.

Jan 14 2019, 8:37 PM · Restricted Project

Dec 31 2018

jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Hi vit,

Dec 31 2018, 1:15 PM · Restricted Project, Restricted Project

Dec 29 2018

jhibbits added inline comments to D54583: PowerPC: Optimize SPE double parameter calling setup.
Dec 29 2018, 8:24 PM · Restricted Project

Nov 24 2018

jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Hi Vit,

Nov 24 2018, 9:22 AM · Restricted Project, Restricted Project

Nov 15 2018

jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Hi Vit,

Nov 15 2018, 8:40 AM · Restricted Project, Restricted Project
jhibbits created D54583: PowerPC: Optimize SPE double parameter calling setup.
Nov 15 2018, 8:38 AM · Restricted Project

Nov 11 2018

jhibbits created D54409: PowerPC/SPE: Fix load/store handling for SPE.
Nov 11 2018, 2:58 PM · Restricted Project

Aug 14 2018

jhibbits abandoned D38778: Implement rudimentary support for the PowerPC SPE APU.
Aug 14 2018, 10:39 AM
jhibbits commandeered D38778: Implement rudimentary support for the PowerPC SPE APU.

Yes, yes it is

Aug 14 2018, 10:38 AM

Aug 10 2018

jhibbits added a comment to D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.

Hi Vit,

Aug 10 2018, 8:28 AM · Restricted Project, Restricted Project

Jul 24 2018

jhibbits updated the summary of D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.
Jul 24 2018, 1:30 PM · Restricted Project, Restricted Project
jhibbits created D49754: Add -m(no-)spe, and e500 CPU definitions and support to clang.
Jul 24 2018, 1:27 PM · Restricted Project, Restricted Project

Jul 17 2018

jhibbits committed rL337350: Fix build failures from r337347, found by clang.
Fix build failures from r337347, found by clang
Jul 17 2018, 10:24 PM
jhibbits committed rL337347: Introduce codegen for the Signal Processing Engine.
Introduce codegen for the Signal Processing Engine
Jul 17 2018, 9:30 PM
jhibbits closed D44830: Introduce codegen for the Signal Processing Engine.
Jul 17 2018, 9:30 PM
jhibbits committed rL337346: Complete the SPE instruction set patterns.
Complete the SPE instruction set patterns
Jul 17 2018, 9:30 PM
jhibbits closed D44829: Complete the SPE instruction set patterns.
Jul 17 2018, 9:30 PM
jhibbits committed rL337345: Add PowerPC e500(v2) core scheduler and directives..
Add PowerPC e500(v2) core scheduler and directives.
Jul 17 2018, 9:30 PM
jhibbits closed D44828: Add PowerPC e500(v2) core scheduler and directives..
Jul 17 2018, 9:30 PM

Jul 15 2018

jhibbits updated the diff for D44829: Complete the SPE instruction set patterns.

Update diff to fix tests failing at this specific rev. All tests had previously
been run against D44830 instead.

Jul 15 2018, 8:14 PM
jhibbits updated the diff for D44830: Introduce codegen for the Signal Processing Engine.

Update diff to fix a test with the new register order.

Jul 15 2018, 8:02 PM

Apr 27 2018

jhibbits added a comment to D44829: Complete the SPE instruction set patterns.

@joerg ping on this? It's pretty straightforward, so should be an easy review.

Apr 27 2018, 1:52 PM

Apr 22 2018

jhibbits updated the diff for D44830: Introduce codegen for the Signal Processing Engine.

Rebase against newer head. Address several comments.

Apr 22 2018, 8:08 PM

Apr 10 2018

jhibbits added inline comments to D44830: Introduce codegen for the Signal Processing Engine.
Apr 10 2018, 2:54 PM
jhibbits accepted D44921: [PowerPC] Option for secure plt mode.
Apr 10 2018, 2:42 PM

Mar 23 2018

jhibbits accepted D42112: [PowerPC] Secure PLT support.

Looks fine to me.

Mar 23 2018, 12:19 PM
jhibbits created D44830: Introduce codegen for the Signal Processing Engine.
Mar 23 2018, 7:27 AM
jhibbits created D44829: Complete the SPE instruction set patterns.
Mar 23 2018, 7:26 AM
jhibbits created D44828: Add PowerPC e500(v2) core scheduler and directives..
Mar 23 2018, 7:24 AM

Mar 17 2018

jhibbits added a comment to D38778: Implement rudimentary support for the PowerPC SPE APU.

I will attempt to break this up into (slightly) smaller chunks. My current thought is:

  • New instructions, and encoding tests
  • e500 scheduling
  • floating point and ABI
  • intrinsics
  • vector
Mar 17 2018, 12:44 PM

Mar 12 2018

jhibbits added inline comments to D42112: [PowerPC] Secure PLT support.
Mar 12 2018, 11:06 AM
jhibbits added inline comments to D42112: [PowerPC] Secure PLT support.
Mar 12 2018, 7:51 AM

Mar 1 2018

jhibbits added inline comments to D42112: [PowerPC] Secure PLT support.
Mar 1 2018, 10:03 AM

Feb 26 2018

jhibbits added a comment to D38778: Implement rudimentary support for the PowerPC SPE APU.

I just did a search on NXP's website, and it appears the last e500v1-based chip went into production around 2001/2002, and had a Longevity-program lifetime of 10 years (MPC8560), superseded by rev 2.0 of the silicon, which used e500v2. So it appears there are no current e500v1-based SoCs in production at this time. e500v2-based SoCs appear to have another 8 years or so, as the latest one went into the longevity program in 2010, with a 15 year product lifetime.

Feb 26 2018, 10:07 AM

Jan 18 2018

jhibbits accepted D41702: Add SysV Abi for PPC64le.

Looks fine to me. We should eventually add tests for this, for both endians.

Jan 18 2018, 1:36 PM

Jan 9 2018

jhibbits added a comment to D41702: Add SysV Abi for PPC64le.

Hmm.. that complicates things a bit. How badly is it broken, do you estimate? Would it be any better than if we just made your new plugin handle the the big-endian target as well (just a best effort, I'm not asking you to actually test it on that target)?

If the ppc64be FreeBSD target is really broken, and there is no desire to fix it, maybe we should just delete the relevant plugin.

@emaste, @jhibbits: do you know what's the state of ppc64 lldb support in freebsd?

Jan 9 2018, 7:30 AM

Jan 28 2017

jhibbits committed rL293417: Add some Book-E instructions to the asm parser and printer..
Add some Book-E instructions to the asm parser and printer.
Jan 28 2017, 9:07 PM