- Aug 27, 2010
-
-
Devang Patel authored
llvm-svn: 112242
-
Jim Grosbach authored
to try to re-use scavenged frame index reference registers. rdar://8277890 llvm-svn: 112241
-
Devang Patel authored
llvm-svn: 112238
-
Jim Grosbach authored
virtual base registers handle this function, and more. A bit more cleanup to do on the interface to eliminateFrameIndex() after this. llvm-svn: 112237
-
- Aug 26, 2010
-
-
Devang Patel authored
llvm-svn: 112216
-
Devang Patel authored
llvm-svn: 112215
-
Devang Patel authored
llvm-svn: 112213
-
Devang Patel authored
Donot forget to resolve dangling debug info in a case where virtual register, used for a value, is initialized after a dbg intrinsic is seen. llvm-svn: 112207
-
Chris Lattner authored
llvm-svn: 112175
-
Chris Lattner authored
llvm-svn: 112171
-
Chris Lattner authored
llvm-svn: 112155
-
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
-
- Aug 25, 2010
-
-
Devang Patel authored
llvm-svn: 112086
-
Devang Patel authored
llvm-svn: 112085
-
Jim Grosbach authored
llvm-svn: 112084
-
Chris Lattner authored
no functionality change. llvm-svn: 111994
-
Chris Lattner authored
functionality change. llvm-svn: 111990
-
Chris Lattner authored
llvm-svn: 111982
-
- Aug 24, 2010
-
-
Jim Grosbach authored
access. rdar://8277890&7352504 llvm-svn: 111968
-
Jim Grosbach authored
For now it's still a command line option, but the interface to the generic code doesn't need to know that. llvm-svn: 111942
-
Devang Patel authored
llvm-svn: 111870
-
- Aug 23, 2010
-
-
Jim Grosbach authored
llvm-svn: 111847
-
Jim Grosbach authored
relative offsets when there are offsets encoded in the instructions and simplifies final allocation in PEI. rdar://8277890 llvm-svn: 111836
-
Devang Patel authored
PR 7920. llvm-svn: 111820
-
Owen Anderson authored
Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API. llvm-svn: 111815
-
Chandler Carruth authored
hierarchy with virtual methods and using llvm_unreachable to properly indicate unreachable states which would otherwise leave variables uninitialized. llvm-svn: 111803
-
- Aug 21, 2010
-
-
Eli Friedman authored
llvm-svn: 111744
-
Bill Wendling authored
It's similar to "linker_private_weak", but it's known that the address of the object is not taken. For instance, functions that had an inline definition, but the compiler decided not to inline it. Note, unlike linker_private and linker_private_weak, linker_private_weak_def_auto may have only default visibility. The symbols are removed by the linker from the final linked image (executable or dynamic library). llvm-svn: 111684
-
- Aug 20, 2010
-
-
Jim Grosbach authored
llvm-svn: 111673
-
Jim Grosbach authored
llvm-svn: 111670
-
Jim Grosbach authored
llvm-svn: 111646
-
Bob Wilson authored
it involves specific floating-point types, legalize should expand an extending load to a non-extending load followed by a separate extend operation. For example, we currently expand SEXTLOAD to EXTLOAD+SIGN_EXTEND_INREG (and assert that EXTLOAD should always be supported). Now we can expand that to LOAD+SIGN_EXTEND. This is needed to allow vector SIGN_EXTEND and ZERO_EXTEND to be used for NEON. llvm-svn: 111586
-
-
Evan Cheng authored
llvm-svn: 111575
-
Evan Cheng authored
llvm-svn: 111574
-
- Aug 19, 2010
-
-
Bill Wendling authored
llvm-svn: 111540
-
Evan Cheng authored
llvm-svn: 111537
-
Michael J. Spencer authored
The Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 implements parts of C++0x based on the draft standard. An old version of the draft had a bug that makes std::pair<T1*, T2*>(something, 0) fail to compile. This is because the template<class U, class V> pair(U&& x, V&& y) constructor is selected, even though it later fails to implicitly convert U and V to frist_type and second_type. This has been fixed in n3090, but it seems that Microsoft is not going to update msvc. llvm-svn: 111535
-
Evan Cheng authored
llvm-svn: 111531
-