[PATCH] D38611: Fix X86 regression on linpack

Evgeny Stupachenko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 5 19:37:24 PDT 2017


evstupac created this revision.

After setting LSR instructions number priority number 1 for X86, I've received several regression (on of them from Wei Mi) on the tests like this:

  for (int i = 0; i < n; i++) 
    y[i] += c * x[i];
  // y[i], c, x[i] are float

The reason was in too many complicated address calculations which conflict with other instructions.
The suggested heuristic limit number of complicated addresses, leaving all gains and avoiding the regression.


Repository:
  rL LLVM

https://reviews.llvm.org/D38611

Files:
  include/llvm/Analysis/TargetTransformInfo.h
  lib/Target/X86/X86TargetTransformInfo.cpp
  lib/Transforms/Scalar/LoopStrengthReduce.cpp
  test/CodeGen/X86/misched-matrix.ll
  test/Transforms/LoopStrengthReduce/X86/folded_addresses.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38611.117950.patch
Type: text/x-patch
Size: 17992 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171006/7fde63f2/attachment.bin>


More information about the llvm-commits mailing list