- Aug 26, 2010
-
-
Chris Lattner authored
llvm-svn: 112104
-
Chris Lattner authored
expanding: e.g. <2 x float> -> <4 x float> instead of -> 2 floats. This affects two places in the code: handling cross block values and handling function return and arguments. Since vectors are already widened by legalizetypes, this gives us much better code and unblocks x86-64 abi and SPU abi work. For example, this (which is a silly example of a cross-block value): define <4 x float> @test2(<4 x float> %A) nounwind { %B = shufflevector <4 x float> %A, <4 x float> undef, <2 x i32> <i32 0, i32 1> %C = fadd <2 x float> %B, %B br label %BB BB: %D = fadd <2 x float> %C, %C %E = shufflevector <2 x float> %D, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> ret <4 x float> %E } Now compiles into: _test2: ## @test2 ## BB#0: addps %xmm0, %xmm0 addps %xmm0, %xmm0 ret previously it compiled into: _test2: ## @test2 ## BB#0: addps %xmm0, %xmm0 pshufd $1, %xmm0, %xmm1 ## kill: XMM0<def> XMM0<kill> XMM0<def> insertps $0, %xmm0, %xmm0 insertps $16, %xmm1, %xmm0 addps %xmm0, %xmm0 ret This implements rdar://8230384 llvm-svn: 112101
-
Chris Lattner authored
llvm-svn: 112099
-
- Aug 25, 2010
-
-
Dan Gohman authored
instructions, not when remapping modules. llvm-svn: 112091
-
Bruno Cardoso Lopes authored
llvm-svn: 112090
-
Daniel Dunbar authored
llvm-svn: 112089
-
Devang Patel authored
llvm-svn: 112086
-
Devang Patel authored
llvm-svn: 112085
-
Jim Grosbach authored
llvm-svn: 112084
-
Dan Gohman authored
llvm-svn: 112083
-
Dan Gohman authored
from MDValueList between each function, now that the bitcode writer is reusing the index space for function-local metadata. llvm-svn: 112082
-
Dan Gohman authored
llvm-svn: 112081
-
Dan Gohman authored
llvm-svn: 112080
-
Benjamin Kramer authored
llvm-svn: 112079
-
Eric Christopher authored
Patch by Adam Treat! llvm-svn: 112077
-
Michael J. Spencer authored
llvm-svn: 112076
-
Jim Grosbach authored
When doing copy/paste/modify, it's apparently rather important to remember the 'modify' bit... llvm-svn: 112075
-
Chris Lattner authored
llvm-svn: 112073
-
Devang Patel authored
DIGlobalVariable can be used to encode debug info for globals that are directly folded into a constant by FE. llvm-svn: 112072
-
Dan Gohman authored
llvm-svn: 112069
-
Dan Gohman authored
llvm-svn: 112068
-
Benjamin Kramer authored
llvm-svn: 112060
-
Dan Gohman authored
function-specific state. llvm-svn: 112058
-
Dan Gohman authored
llvm-svn: 112056
-
Dan Gohman authored
llvm-svn: 112055
-
Daniel Dunbar authored
comparison that would overflow. - The other under/overflow cases can't actually happen because the immediates which would trigger them are legal (so we don't enter this code), but adjusted the style to make it clear the transform is always valid. llvm-svn: 112053
-
Eric Christopher authored
llvm-svn: 112042
-
Eric Christopher authored
Fixes PR7967. Owen: You added these, any reason? llvm-svn: 112041
-
Eric Christopher authored
llvm-svn: 112039
-
Eric Christopher authored
llvm-svn: 112036
-
Eric Christopher authored
llvm-svn: 112035
-
Anton Korobeynikov authored
Mark _alloca call as clobberring EFLAGS, otherwise some DCE might remove other flags-clobberring stuff (e.g. cmp instructions) occuring after _alloca call. llvm-svn: 112034
-
Eric Christopher authored
llvm-svn: 112033
-
Eric Christopher authored
Fix some todos. No functional change. llvm-svn: 112031
-
Eric Christopher authored
Untested. llvm-svn: 112029
-
Eric Christopher authored
ARM instructions with: foo GPR, rGPR which happens a lot. llvm-svn: 112025
-
Daniel Dunbar authored
llvm-svn: 112022
-
Bruno Cardoso Lopes authored
llvm-svn: 112020
-
Bruno Cardoso Lopes authored
teach lowering to get target specific nodes for pshufd, emulating the same isel behavior for now, so we can pass all vector shuffle tests llvm-svn: 112017
-
Bruno Cardoso Lopes authored
llvm-svn: 112016
-