summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Fix a comment typo.Bob Wilson2010-08-271-1/+1
| | | | llvm-svn: 112302
* Unsigned value cannot be < 0.Bob Wilson2010-08-271-2/+2
| | | | llvm-svn: 112300
* When merging adjacent operands, scan ahead and merge all equalDan Gohman2010-08-271-11/+14
| | | | | | adjacent operands at once, instead of just two at a time. llvm-svn: 112299
* Fix a couple of typos.Eric Christopher2010-08-272-2/+2
| | | | | | Patch by Cameron Esfahani! llvm-svn: 112297
* remove some special shift cases that have been subsumed into theChris Lattner2010-08-271-34/+13
| | | | | | more general simplify demanded bits logic. llvm-svn: 112291
* Make the {A,+,B}<L> + {C,+,D}<L> --> Other + {A+C,+,B+D}<L>Dan Gohman2010-08-271-23/+21
| | | | | | | | transformation collect all the addrecs with the same loop add combine them at once rather than starting everything over at the first chance. llvm-svn: 112290
* merge and filecheckize testChris Lattner2010-08-272-42/+57
| | | | llvm-svn: 112289
* merge two testsChris Lattner2010-08-272-10/+12
| | | | llvm-svn: 112288
* Remove now unneeded command line flag that enables 'optimize compares.'Bill Wendling2010-08-271-8/+1
| | | | llvm-svn: 112287
* Fix typos in comments.Owen Anderson2010-08-271-2/+2
| | | | llvm-svn: 112286
* teach the truncation optimization that an entire chain ofChris Lattner2010-08-272-4/+26
| | | | | | | computation can be truncated if it is fed by a sext/zext that doesn't have to be exactly equal to the truncation result type. llvm-svn: 112285
* Switch ScalarEvolution's main Value*->SCEV* map from std::mapDan Gohman2010-08-272-31/+34
| | | | | | to DenseMap. llvm-svn: 112281
* get this test passing on linux builders.Chris Lattner2010-08-271-8/+8
| | | | llvm-svn: 112280
* Add an instcombine to clean up a common pattern producedChris Lattner2010-08-272-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | by the SRoA "promote to large integer" code, eliminating some type conversions like this: %94 = zext i16 %93 to i32 ; <i32> [#uses=2] %96 = lshr i32 %94, 8 ; <i32> [#uses=1] %101 = trunc i32 %96 to i8 ; <i8> [#uses=1] This also unblocks other xforms from happening, now clang is able 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 pshufd $1, %xmm0, %xmm2 addss %xmm0, %xmm2 movdqa %xmm1, %xmm3 addss %xmm2, %xmm3 pshufd $1, %xmm1, %xmm0 addss %xmm3, %xmm0 ret on x86-64, instead of: _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 This seems pretty close to optimal to me, at least without using horizontal adds. This also triggers in lots of other code, including SPEC. llvm-svn: 112278
* Add alignment arguments to all the NEON load/store intrinsics.Bob Wilson2010-08-2724-323/+436
| | | | | | | Update all the tests using those intrinsics and add support for auto-upgrading bitcode files with the old versions of the intrinsics. llvm-svn: 112271
* Use LVI to eliminate conditional branches where we've tested a related ↵Owen Anderson2010-08-274-6/+53
| | | | | | | | condition previously. Update tests for this change. This fixes PR5652. llvm-svn: 112270
* Optimize SCEVComplexityCompare. Use a 3-way return instead of a 2-wayDan Gohman2010-08-271-48/+82
| | | | | | | return to avoid needing two calls to test for equivalence, and sort addrecs by their degree before examining their operands. llvm-svn: 112267
* Clarify a comment.Dan Gohman2010-08-271-1/+1
| | | | llvm-svn: 112266
* Parse " (Hidden)" and cope with it.Dan Gohman2010-08-271-0/+7
| | | | llvm-svn: 112265
* Default to looking for clang++ in the PATH, rather than trying toDan Gohman2010-08-271-2/+2
| | | | | | guess a path that will work. llvm-svn: 112264
* Properly handle passing of FP stuff to varargs function on Win64:Anton Korobeynikov2010-08-272-0/+42
| | | | | | | value should be copied to the corresponding shadow reg as well. Patch by Cameron Esfahani! llvm-svn: 112262
* MCELF: Port EmitInstruction changes from MachO streamer. Patch by Roman Divacky.Benjamin Kramer2010-08-271-41/+46
| | | | llvm-svn: 112260
* MCELF: Always overwrite FixedValue.Benjamin Kramer2010-08-271-2/+3
| | | | llvm-svn: 112259
* Fix the msvs 2010 build.Michael J. Spencer2010-08-271-2/+8
| | | | | | | | | | | | | | 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
* X86: Fix an encoding issue with LOCK_ADD64mr, which could lead to very hard ↵Daniel Dunbar2010-08-272-1/+23
| | | | | | to find miscompiles with the integrated assembler. llvm-svn: 112250
* Revert r112213. It is not needed.Devang Patel2010-08-262-19/+8
| | | | llvm-svn: 112242
* Simplify eliminateFrameIndex() interface back down now that PEI doesn't needJim Grosbach2010-08-2632-155/+76
| | | | | | to try to re-use scavenged frame index reference registers. rdar://8277890 llvm-svn: 112241
* If node is not available then use FuncInfo.ValueMap to emit debug info for ↵Devang Patel2010-08-261-5/+9
| | | | | | byval parameter. llvm-svn: 112238
* Remove the now obsolete frame index virtual re-use algorithm from PEI. Pre-RAJim Grosbach2010-08-261-148/+9
| | | | | | | virtual base registers handle this function, and more. A bit more cleanup to do on the interface to eliminateFrameIndex() after this. llvm-svn: 112237
* filecheckizeChris Lattner2010-08-261-7/+19
| | | | llvm-svn: 112235
* rename test.Chris Lattner2010-08-261-0/+0
| | | | llvm-svn: 112234
* optimize "integer extraction out of the middle of a vector" as producedChris Lattner2010-08-262-13/+60
| | | | | | | by SRoA. This is part of rdar://7892780, but needs another xform to expose this. llvm-svn: 112232
* tidy up a bit. no functional change.Jim Grosbach2010-08-263-32/+12
| | | | llvm-svn: 112228
* optimize bitcast(trunc(bitcast(x))) where the result is a float and 'x'Chris Lattner2010-08-262-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* filecheckizeChris Lattner2010-08-261-6/+7
| | | | llvm-svn: 112225
* rename testChris Lattner2010-08-261-0/+0
| | | | llvm-svn: 112224
* add m_BitCast for matching a bitcast.Chris Lattner2010-08-261-0/+7
| | | | llvm-svn: 112222
* Turn off the scavenging based frame reg reuse briefly to measure whether it'sJim Grosbach2010-08-261-1/+1
| | | | | | | | 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
* zap the now unused MVT::getIntVectorWithNumElementsBruno Cardoso Lopes2010-08-262-16/+10
| | | | llvm-svn: 112218
* Speculatively revert r112207.Devang Patel2010-08-261-3/+1
| | | | llvm-svn: 112216
* 80 col.Devang Patel2010-08-261-1/+2
| | | | llvm-svn: 112215
* Update DanglingDebugInfo so that it can be used to track llvm.dbg.declare also.Devang Patel2010-08-262-8/+19
| | | | llvm-svn: 112213
* Use pseudo instructions for VST3.Bob Wilson2010-08-264-59/+81
| | | | llvm-svn: 112208
* Donot forget to resolve dangling debug info in a case where virtual ↵Devang Patel2010-08-261-1/+3
| | | | | | register, used for a value, is initialized after a dbg intrinsic is seen. llvm-svn: 112207
* Reapply r112176 without removing the other CMN patterns (that was ↵Bill Wendling2010-08-261-2/+46
| | | | | | unintentional). llvm-svn: 112206
* Experimental clang-based code-completion support for vim. This currentlyDan Gohman2010-08-261-0/+124
| | | | | | depends on some clang patches which are not yet upstream. llvm-svn: 112204
* MCELF: Fix a thinko of mine.Benjamin Kramer2010-08-261-1/+3
| | | | llvm-svn: 112203
* Fix comment typos.Bob Wilson2010-08-263-3/+3
| | | | llvm-svn: 112202
* Fix prototypes.Devang Patel2010-08-262-4/+5
| | | | llvm-svn: 112200
* Make JumpThreading smart enough to properly thread StrSwitch when it's ↵Owen Anderson2010-08-262-17/+239
| | | | | | compiled with clang++. llvm-svn: 112198
OpenPOWER on IntegriCloud