[PATCH] Do not use isel on P7 and P8

Olivier Sallenave ohsallen at us.ibm.com
Wed Mar 11 10:42:16 PDT 2015


Hi hfinkel,

It appears that using branches is almost always better than using isel for P7 and P8, because of branch prediction — the decision outcome has to be almost completely random for isel to win. Also isel has a way higher latency for P8 than for A2, for instance. This patch disables the usage of isel for P7 and P8, and employs regular branches instead.

Had to change some regression tests to use A2 instead of P7 for checking that isel is generated. There are still 2 tests for which I have problems:
    LLVM :: CodeGen/PowerPC/ifcvt.ll
    LLVM :: CodeGen/PowerPC/p8-isel-sched.ll

ifcvt.ll: using A2 does not generate isel (Hal: seems fishy, right?)
p8-isel-sched.ll: shall we remove this testcase?

Thanks,
Olivier

http://reviews.llvm.org/D8260

Files:
  lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  lib/Target/PowerPC/PPCISelLowering.cpp
  lib/Target/PowerPC/PPCInstrInfo.cpp
  lib/Target/PowerPC/PPCSubtarget.h
  test/CodeGen/PowerPC/crbit-asm.ll
  test/CodeGen/PowerPC/crbits.ll
  test/CodeGen/PowerPC/fold-zero.ll
  test/CodeGen/PowerPC/i1-ext-fold.ll
  test/CodeGen/PowerPC/i64_fp_round.ll
  test/CodeGen/PowerPC/ifcvt.ll
  test/CodeGen/PowerPC/isel.ll
  test/CodeGen/PowerPC/subreg-postra-2.ll
  test/CodeGen/PowerPC/subreg-postra.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8260.21742.patch
Type: text/x-patch
Size: 10483 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150311/2aa2ac4f/attachment.bin>


More information about the llvm-commits mailing list