[llvm-bugs] [Bug 27013] New: Delinearization fails and produces invariant access function for variant access

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Mar 21 05:54:00 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27013

            Bug ID: 27013
           Summary: Delinearization fails and produces invariant access
                    function for variant access
           Product: Polly
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Other
          Assignee: polly-dev at googlegroups.com
          Reporter: doerfert at cs.uni-saarland.de
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 16064
  --> https://llvm.org/bugs/attachment.cgi?id=16064&action=edit
IR testcase

For the C code:

for (MCUindex = 0; MCUindex < MCUs_across; MCUindex++) { 
  lastDC = lastblockrow[h_samp_factor - 1][0]; 
  for (bi = 0; bi < h_samp_factor; bi++) { 
    thisblockrow[bi][0] = lastDC;
  } 
  thisblockrow += h_samp_factor; /* advance to next MCU in row */ 
  lastblockrow += h_samp_factor; 
} 

in

  MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/jccoefct.c

we generate variant multidimensional accesses even though there are none.
This causes us to hoist "lastblockrow[h_samp_factor - 1][0]", thus
mis-compiling the code. The problem seems to be the PHI nodes that change the
pointers for "thisblockrow" and "lastblockrow" break some delinarization
process.

NOTE: You need to allow unsigned comparisons (or change the unsigned comparison
in the code)!

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160321/ee54e07b/attachment.html>


More information about the llvm-bugs mailing list