[LLVMbugs] [Bug 23894] New: @llvm.assume is ignored in case of pointer values

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jun 19 04:59:36 PDT 2015


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

            Bug ID: 23894
           Summary: @llvm.assume is ignored in case of pointer values
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: tom.aernoudt at synopsys.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

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

@llvm.assume does not trigger constant propgation in case of pointer values.

eg No constant propagation is done to the retun statement for the following
code:

struct X { unsigned long long* a; };
unsigned long long* fail(X* x)
{
  __builtin_assume(x->a == (unsigned long long*)12345678);
  return x->a;
}

While for the following code this works as expected:

struct Y { unsigned long long a; };
unsigned long long ok(Y* y)
{
  __builtin_assume(y->a == 12345678);
  return y->a;
}

The attached testcase can be used to reproduce the issue.

-- 
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/20150619/0d6d0169/attachment.html>


More information about the llvm-bugs mailing list