llvm-6502/lib/Transforms
Chandler Carruth 02e92a0b5d Switch to a signed representation for the dynamic offsets while walking
across the uses of the alloca. It's entirely possible for negative
numbers to come up here, and in some rare cases simply doing the 2's
complement arithmetic isn't the correct decision. Notably, we can't zext
the index of the GEP. The definition of GEP is that these offsets are
sign extended or truncated to the size of the pointer, and then wrapping
2's complement arithmetic used.

This patch fixes an issue that comes up with *no* input from the
buildbots or bootstrap afaict. The only place where it manifested,
disturbingly, is Clang's own regression test suite. A reduced and
targeted collection of tests are added to cope with this. Note that I've
tried to pin down the potential cases of overflow, but may have missed
some cases. I've tried to add a few cases to test this, but its hard
because LLVM has quite limited support for >64bit constructs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164475 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-23 11:43:14 +00:00
..
Hello Since the Hello pass is built as a loadable dynamic library, don't try to convert it to new-style registration yet. 2010-10-07 00:31:16 +00:00
InstCombine InstCombine: Make sure we use the pre-zext type when creating a constant of a value that is zext'd. 2012-09-21 16:26:41 +00:00
Instrumentation s/__llvm_gcov_flush/__gcov_flush/g 2012-09-17 17:57:05 +00:00
IPO LNT builders have picked up new SROA, disable it to get the remaining builders green again. 2012-09-18 13:43:00 +00:00
Scalar Switch to a signed representation for the dynamic offsets while walking 2012-09-23 11:43:14 +00:00
Utils SimplifyCFG: sink common codes from IF, ELSE blocks down to END block. 2012-09-20 22:37:36 +00:00
Vectorize Make MemoryBuiltins aware of TargetLibraryInfo. 2012-08-29 15:32:21 +00:00
CMakeLists.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
LLVMBuild.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
Makefile Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00