- Aug 27, 2010
-
-
Dan Gohman authored
return to avoid needing two calls to test for equivalence, and sort addrecs by their degree before examining their operands. llvm-svn: 112267
-
Dan Gohman authored
llvm-svn: 112266
-
Dan Gohman authored
llvm-svn: 112265
-
Dan Gohman authored
guess a path that will work. llvm-svn: 112264
-
Anton Korobeynikov authored
value should be copied to the corresponding shadow reg as well. Patch by Cameron Esfahani! llvm-svn: 112262
-
Benjamin Kramer authored
llvm-svn: 112260
-
Benjamin Kramer authored
llvm-svn: 112259
-
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: 112257
-
Daniel Dunbar authored
X86: Fix an encoding issue with LOCK_ADD64mr, which could lead to very hard to find miscompiles with the integrated assembler. llvm-svn: 112250
-
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
-
Chris Lattner authored
llvm-svn: 112235
-
Chris Lattner authored
llvm-svn: 112234
-
Chris Lattner authored
by SRoA. This is part of rdar://7892780, but needs another xform to expose this. llvm-svn: 112232
-
- Aug 26, 2010
-
-
Jim Grosbach authored
llvm-svn: 112228
-
Chris Lattner authored
is a vector to be a vector element extraction. This allows clang to compile: struct S { float A, B, C, D; }; float foo(struct S A) { return A.A + A.B+A.C+A.D; } into: _foo: ## @foo ## BB#0: ## %entry movd %xmm0, %rax shrq $32, %rax movd %eax, %xmm2 addss %xmm0, %xmm2 movapd %xmm1, %xmm3 addss %xmm2, %xmm3 movd %xmm1, %rax shrq $32, %rax movd %eax, %xmm0 addss %xmm3, %xmm0 ret instead of: _foo: ## @foo ## BB#0: ## %entry movd %xmm0, %rax movd %eax, %xmm0 shrq $32, %rax movd %eax, %xmm2 addss %xmm0, %xmm2 movd %xmm1, %rax movd %eax, %xmm1 addss %xmm2, %xmm1 shrq $32, %rax movd %eax, %xmm0 addss %xmm1, %xmm0 ret ... eliminating half of the horribleness. llvm-svn: 112227
-
Chris Lattner authored
llvm-svn: 112225
-
Chris Lattner authored
llvm-svn: 112224
-
Chris Lattner authored
llvm-svn: 112222
-
Jim Grosbach authored
still having a significant effect. It shouldn't be now that the pre-RA virtual base reg stuff is in. Assuming that's valididated by the nightly testers, we can simplify a lot of the PEI frame index code. llvm-svn: 112220
-
Bruno Cardoso Lopes authored
llvm-svn: 112218
-
Devang Patel authored
llvm-svn: 112216
-
Devang Patel authored
llvm-svn: 112215
-
Devang Patel authored
llvm-svn: 112213
-
Bob Wilson authored
llvm-svn: 112208
-
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
-
Bill Wendling authored
llvm-svn: 112206
-
Dan Gohman authored
depends on some clang patches which are not yet upstream. llvm-svn: 112204
-
Benjamin Kramer authored
llvm-svn: 112203
-
Bob Wilson authored
llvm-svn: 112202
-
Devang Patel authored
llvm-svn: 112200
-
Owen Anderson authored
llvm-svn: 112198
-
Benjamin Kramer authored
llvm-svn: 112197
-
Jim Grosbach authored
encodable as a 16-bit wide instruction. llvm-svn: 112195
-
Dan Gohman authored
llvm-svn: 112191
-
Dan Gohman authored
fix: add a flag to MapValue and friends which indicates whether any module-level mappings are being made. In the common case of inlining, no module-level mappings are needed, so MapValue doesn't need to examine non-function-local metadata, which can be very expensive in the case of a large module with really deep metadata (e.g. a large C++ program compiled with -g). This flag is a little awkward; perhaps eventually it can be moved into the ClonedCodeInfo class. llvm-svn: 112190
-
Benjamin Kramer authored
llvm-svn: 112189
-
Benjamin Kramer authored
Do unsigned char comparisons in StringRef::compare_lower to be more consistent with compare in corner cases. llvm-svn: 112185
-