[LLVMbugs] [Bug 18927] New: Opt incorrectly optimizes pr41454 from gcc testsuite
    bugzilla-daemon at llvm.org 
    bugzilla-daemon at llvm.org
       
    Fri Feb 21 06:15:23 PST 2014
    
    
  
http://llvm.org/bugs/show_bug.cgi?id=18927
            Bug ID: 18927
           Summary: Opt incorrectly optimizes pr41454 from gcc testsuite
           Product: tools
           Version: 3.4
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: opt
          Assignee: unassignedbugs at nondot.org
          Reporter: ihusar at fit.vutbr.cz
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified
Created attachment 12099
  --> http://llvm.org/bugs/attachment.cgi?id=12099&action=edit
test c file
The code in attachment 
#define OFFS 12
int main ()
{
  int BM_tab2[OFFS];
  int *BM_tab = BM_tab2;
  int *BM_tab_base;
  BM_tab_base = BM_tab;
  BM_tab += OFFS;
  while (BM_tab_base != BM_tab)
    {
      *--BM_tab = 6;
      *--BM_tab = 6;
    }
  if (BM_tab2[0] != 6)
    abort ();
  return 0;
}
get incorrectly optimized by opt -O3 to 
; Function Attrs: nounwind uwtable
define i32 @main() #0 {
if.then:
  call void @abort() #2
  unreachable
}
Strange is that when I change OFFS to e.g. 2, 4, 6, 8, 10 then it works
correctly. Values 12, 14, 16, ... cause this test be optimized only to the
abort call. With gcc this test works fine.
I used clang and opt with -O3:
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
-- 
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/20140221/791f2392/attachment.html>
    
    
More information about the llvm-bugs
mailing list