llvm-6502/test/Transforms/SROA
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
..
basictest.ll Switch to a signed representation for the dynamic offsets while walking 2012-09-23 11:43:14 +00:00
fca.ll Add a major missing piece to the new SROA pass: aggressive splitting of 2012-09-18 12:57:43 +00:00
lit.local.cfg
phi-and-select.ll Fix a case where the new SROA pass failed to zap dead operands to 2012-09-21 23:36:40 +00:00
vector-promotion.ll