This patch implements the resource based SchedModel for Power7 CPU. Only the autogenerated cases are updated in this revision.
Details
- Reviewers
nemanjai shchenz stefanp - Group Reviewers
Restricted Project - Commits
- rG69b056d5638b: [PowerPC] Implement SchedModel for Power7
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
llvm/lib/Target/PowerPC/PPCScheduleP7.td | ||
---|---|---|
33 | What rules do we take to add unsupported features here? I believe we are missing lots of CPU features defined in PPC.td. | |
51 | I checked P7_bookIV version 2.1, in sections 4.1.3, it says there is only 1 VMX unit:
Twelve execution units – Two symmetric load/store units (LSU), also capable of executing simple fixed-point ops – Two symmetric fixed-point units (FXU) – Four floating-point units (FPU), implemented as two 2-way SIMD operations for double- and single-precision. Scalar binary floating point instructions can only use two FPUs. – One VMX execution unit capable of executing simple FX, complex FX, permute and 4-way SIMD single-precision FP ops – One decimal floating-point unit (DFU) – 1 Branch execution unit (BR) – 1 CR Logical execution unit (CRL) | |
60 | use meaningful names please. | |
64 | Out of order issue of up to 8 operations into the following 8 issue ports – Two load or store operations – Two fixed-point operations – Two issue ports shared by two floating-point, two VSX, two VMX and one DFP ops – One branch operation – One condition register operation | |
218 | hmm, in the above version, I see latency info for vsx scalar instructions. |
- Update VSX instructions according to new version UM
- Rename issue ports
- Add IsISA2_07 to unsupported features
- VMX has only one port
LGTM with a small fix in one LIT.
I assume 1: you fixed all the LIT failures except the auto generated cases(the summary of the patch needs update). 2: you checked that the performance impact of this patch is positive for -mcpu=pwr7.
llvm/lib/Target/PowerPC/PPCScheduleP7.td | ||
---|---|---|
33 | hmm, OK, let use this setting for now. I think we may need a similar approach in SystemZ arch. That's more clear and robust. | |
llvm/test/CodeGen/PowerPC/aix-vector-stack-caller.ll | ||
85 | Fix the broken case. |
What rules do we take to add unsupported features here? I believe we are missing lots of CPU features defined in PPC.td.