llvm-6502/test/Transforms/ScalarRepl
Chris Lattner c87c50a39c Enhance SRoA to promote allocas that are used by selects in some
common cases.  This triggers a surprising number of times in SPEC2K6
because min/max idioms end up doing this.  For example, code from the
STL ends up looking like this to SRoA:

  %202 = load i64* %__old_size, align 8, !tbaa !3
  %203 = load i64* %__old_size, align 8, !tbaa !3
  %204 = load i64* %__n, align 8, !tbaa !3
  %205 = icmp ult i64 %203, %204
  %storemerge.i = select i1 %205, i64* %__n, i64* %__old_size
  %206 = load i64* %storemerge.i, align 8, !tbaa !3

We can now promote both the __n and the __old_size allocas.

This addresses another chunk of rdar://7339113, poor codegen on
stringswitch.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124088 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-23 22:04:55 +00:00
..
2003-05-29-ArrayFail.ll
2003-05-30-InvalidIndices.ll
2003-05-30-MultiLevel.ll
2003-09-12-IncorrectPromote.ll
2003-10-29-ArrayProblem.ll
2005-12-14-UnionPromoteCrash.ll
2006-01-24-IllegalUnionPromoteCrash.ll
2006-04-20-PromoteCrash.ll
2006-10-23-PointerUnionCrash.ll
2006-11-07-InvalidArrayPromote.ll
2006-12-11-SROA-Crash.ll
2007-03-19-CanonicalizeMemcpy.ll
2007-05-24-LargeAggregate.ll
2007-05-29-MemcpyPreserve.ll
2007-11-03-bigendian_apint.ll
2008-01-29-PromoteBug.ll
2008-02-28-SubElementExtractCrash.ll
2008-06-05-loadstore-agg.ll
2008-06-22-LargeArray.ll
2008-08-22-out-of-range-array-promote.ll
2008-09-22-vector-gep.ll
2009-01-09-scalarrepl-empty.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
2009-02-02-ScalarPromoteOutOfRange.ll
2009-02-05-LoadFCA.ll
2009-03-04-MemCpyAlign.ll
2009-03-05-Aggre2Scalar-dbg.ll
2009-04-21-ZeroLengthMemSet.ll
2009-05-08-I1Crash.ll
2009-06-01-BitcastIntPadding.ll
2009-08-16-VLA.ll
2009-12-11-NeonTypes.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-01-18-SelfCopy.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-11-24-IndirectVoid.ll Treat a call of function pointer like a load of the pointer when considering 2010-11-24 22:04:20 +00:00
address-space.ll Fix the second half of PR7437: scalarrepl wasn't preserving 2010-07-08 00:27:05 +00:00
AggregatePromote.ll
arraytest.ll
badarray.ll
basictest.ll if an alloca is only ever accessed as a unit, and is accessed with load/store instructions, 2011-01-16 06:18:28 +00:00
bitfield-sroa.ll
copy-aggregate.ll Extend SROA to handle arrays accessed as homogeneous structs and vice versa. 2011-01-13 17:45:11 +00:00
debuginfo.ll
dg.exp
DifferingTypes.ll
load-store-aggregate.ll
memcpy-align.ll Remove the arm_aapcscc marker from the tests. It is the default 2010-06-15 19:04:29 +00:00
memcpy-from-global.ll allow eliminating an alloca that is just copied from an constant global 2010-11-18 06:41:51 +00:00
memset-aggregate-byte-leader.ll
memset-aggregate.ll
nonzero-first-index.ll Generalize SROA to allow the first index of a GEP to be non-zero. Add a 2009-12-22 06:57:14 +00:00
not-a-vector.ll
phi-select.ll Enhance SRoA to promote allocas that are used by selects in some 2011-01-23 22:04:55 +00:00
phinodepromote.ll
select_promote.ll
sroa_two.ll
sroa-fca.ll
union-fp-int.ll
union-packed.ll
union-pointer.ll
vector_memcpy.ll
vector_promote.ll remove an old hack that avoided creating MMX datatypes. The 2011-01-23 06:40:33 +00:00
volatile.ll