2a6e3e5fea3d182726b49c071fddc4f0cef6294f
Given IR that encoded computation like "vec(4) + ptr2int(some pointer)", we'd report that "int2ptr(4)" was the base pointer and the ptr2int value was the offset. This in turn could lead to incorrect code from LLVM, since we'd end up with GEP instructions where the first operand was int2ptr(4) and the offset was the original pointer value. This in turn was sometimes leading to incorrect code and thence a failure on the tests/gs-double-improve-multidim.ispc test since LLVM's memory read/write analysis assumes that nothing after the first operand of a GEP is actually a pointer.
============================== Intel(r) SPMD Program Compiler ============================== Welcome to the Intel(r) SPMD Program Compiler (ispc)! ispc is a new compiler for "single program, multiple data" (SPMD) programs. Under the SPMD model, the programmer writes a program that mostly appears to be a regular serial program, though the execution model is actually that a number of program instances execute in parallel on the hardware. ispc compiles a C-based SPMD programming language to run on the SIMD units of CPUs; it frequently provides a a 3x or more speedup on CPUs with 4-wide SSE units, without any of the difficulty of writing intrinsics code. ispc is an open source compiler under the BSD license; see the file LICENSE.txt. ispc supports Windows, Mac, and Linux, with both x86 and x86-64 targets. It currently supports the SSE2, SSE4, and AVX instruction sets. For more information and examples, as well as a wiki and the bug database, see the ispc distribution site, http://ispc.github.com.
Description
Languages
C++
63.5%
LLVM
19.1%
M4
11.6%
Python
4.5%
Makefile
0.5%
Other
0.6%