[LLVMbugs] [Bug 20568] New: failure to remove trivially dead loop

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Aug 6 14:17:43 PDT 2014


http://llvm.org/bugs/show_bug.cgi?id=20568

            Bug ID: 20568
           Summary: failure to remove trivially dead loop
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: richard-llvm at metafoo.co.uk
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

From
http://stackoverflow.com/questions/25151508/why-dont-modern-c-compilers-optimize-away-simple-loops-like-this-clang-msv

LLVM does not remove the loops in this code:

#include <stdio.h>
#include <time.h>

static int const N = 0x8000;

int main()
{
    clock_t const start = clock();
    for (int i = 0; i < N; ++i)
    {
        int a[N];    // Never used outside of this block, but not optimized
away
        for (int j = 0; j < N; ++j)
        {
            ++a[j];  // This is undefined behavior too, but Clang doesn't see
it
        }
    }
    clock_t const finish = clock();
    fprintf(stderr, "%u ms\n",
        static_cast<unsigned int>((finish - start) * 1000 / CLOCKS_PER_SEC));
    return 0;
}

(See also PR13050; this seems like a different problem, though.)

-- 
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/20140806/958ceb40/attachment.html>


More information about the llvm-bugs mailing list