llvm-6502/lib
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
..
Analysis Simplify some code with no functionality change. Make the test a lot more 2011-01-23 20:06:05 +00:00
Archive Archive: Fix temp path names. 2011-01-17 16:43:30 +00:00
AsmParser Allow unnamed_addr on declarations. 2011-01-15 08:15:00 +00:00
Bitcode FixedNumOperandTraits and VariadicOperandTraits assumed that, given a 2011-01-11 15:07:38 +00:00
CodeGen Add support for the --noexecstack option. 2011-01-23 17:55:27 +00:00
CompilerDriver Support/Path: Deprecate PathV1::exists and replace all uses with PathV2::fs::exists. 2011-01-10 02:34:23 +00:00
ExecutionEngine Handles libffi on the CMake build. 2011-01-21 15:42:54 +00:00
Linker Allow unnamed_addr on declarations. 2011-01-15 08:15:00 +00:00
MC Add support for the --noexecstack option. 2011-01-23 17:55:27 +00:00
Object Object: Fix type punned pointer issues by making DataRefImpl a union and using intptr_t. 2011-01-21 02:27:02 +00:00
Support Null initialize a few variables flagged by 2011-01-23 17:05:06 +00:00
Target Add a memset loop that LoopIdiomRecognize doesn't recognize. 2011-01-23 20:31:00 +00:00
Transforms Enhance SRoA to promote allocas that are used by selects in some 2011-01-23 22:04:55 +00:00
VMCore teach Value::isDereferenceablePointer that byval arguments are always 2011-01-23 21:15:29 +00:00
Makefile Add LLVMObject Library. 2010-11-15 03:21:41 +00:00