llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
29.02k stars 11.96k forks source link

[Polly] Run-time alias check construction hangs #21540

Closed tobiasgrosser closed 8 years ago

tobiasgrosser commented 10 years ago
Bugzilla Link 21166
Resolution FIXED
Resolved on Jan 18, 2016 17:01
Version unspecified
OS Linux
Attachments Test case
CC @jdoerfert

Extended Description

Running

alias polly-opt='opt -load LLVMPolly.so'

polly-opt -polly-code-generator=isl test-case.ll

causes a time out for me.

My first investigations point to:

commit 61337345c7fbc77f04a816d5ca45631a013132f9 Author: Johannes Doerfert doerfert@cs.uni-saarland.de Date: Wed Oct 1 12:42:37 2014 +0000

[RTC] Use the domain to split alias groups.

  We use a parametric abstraction of the domain to split alias groups
  if accesses cannot be executed under the same parameter evaluation.

  The two test cases check that we can remove alias groups if the
  pointers which might alias are never accessed under the same parameter
  evaluation and that the minimal/maximal accesses are not global but
  with regards to the parameter evaluation.

Differential Revision: http://reviews.llvm.org/D5436
tlattner commented 8 years ago

Move to Polly Product.

jdoerfert commented 10 years ago

Fixed in r219131.

jdoerfert commented 10 years ago

When you dump the SCoP before we build alias groups you see:

   Stmt_for_body9
        Domain :=
            { Stmt_for_body9[i0, i1] : 1 = 0 };

and that's why the splitting procedure doesn't converge.

Fix: http://reviews.llvm.org/D5623