llvm-6502/lib/Transforms
Chris Lattner 1a3257bbf5 Make SROA produce a vector only when the alloca is actually
accessed at least once as a vector.  This prevents it from
compiling the example in not-a-vector into:

define double @test(double %A, double %B) {
	%tmp4 = insertelement <7 x double> undef, double %A, i32 0
	%tmp = insertelement <7 x double> %tmp4, double %B, i32 4
	%tmp2 = extractelement <7 x double> %tmp, i32 4
	ret double %tmp2
}

instead, producing the integer code.  Producing vectors when they
aren't otherwise in the program is dangerous because a lot of other
code treats them carefully and doesn't want to break them down.
OTOH, many things want to break down tasty i448's.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63638 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03 18:15:05 +00:00
..
Hello Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Instrumentation Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
IPO Rename getAnalysisToUpdate to getAnalysisIfAvailable. 2009-01-28 13:14:17 +00:00
Scalar Make SROA produce a vector only when the alloca is actually 2009-02-03 18:15:05 +00:00
Utils Revert r63600. It didn't fix the bug, it just moved it a bit. 2009-02-03 06:30:37 +00:00
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00