summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently ↵Evan Cheng2009-12-174-41/+104
| | | | | | introduced a non-deterministic behavior in the optimizer somewhere. llvm-svn: 91598
* Aggressively flip compare constant expressions where appropriate; constantEli Friedman2009-12-171-3/+5
| | | | | | folding in particular expects null to be on the RHS. llvm-svn: 91587
* Fix a comment grammaro.Bob Wilson2009-12-171-2/+2
| | | | llvm-svn: 91584
* Revert this dag combine change:Evan Cheng2009-12-171-13/+0
| | | | | | | | Fold (zext (and x, cst)) -> (and (zext x), cst) DAG combiner likes to optimize expression in the other way so this would end up cause an infinite looping. llvm-svn: 91574
* Renamed "tCMNZ" to "tCMNz" to be consistent with other similar namings.Johnny Chen2009-12-161-1/+1
| | | | llvm-svn: 91571
* Silence a clang warning about the deprecated (but perfectly reasonable inJohn McCall2009-12-161-2/+2
| | | | | | context) increment-of-bool idiom. llvm-svn: 91564
* Reapply r91392, it was only unmasking the bug, and since TOT is still broken ↵Daniel Dunbar2009-12-163-29/+155
| | | | | | having it reverted does no good. llvm-svn: 91560
* Reapply r91459, it was only unmasking the bug, and since TOT is still broken ↵Daniel Dunbar2009-12-161-404/+424
| | | | | | having it reverted does no good. llvm-svn: 91559
* Mark STREX* as earlyclobber for the success result register.Jim Grosbach2009-12-162-2/+2
| | | | llvm-svn: 91555
* Add @earlyclobber TableGen constraintJim Grosbach2009-12-161-3/+21
| | | | llvm-svn: 91554
* Reuse lowered phi nodes.Jakob Stoklund Olesen2009-12-163-43/+124
| | | | | | | | | | | | | | Tail duplication produces lots of identical phi nodes in different basic blocks. Teach PHIElimination to reuse the join registers when lowering a phi node that is identical to an already lowered node. This saves virtual registers, and more importantly it avoids creating copies the the coalescer doesn't know how to eliminate. Teach LiveIntervalAnalysis about the phi joins with multiple uses. This patch significantly reduces code size produced by -pre-regalloc-taildup. llvm-svn: 91549
* Revert "Reapply 91184 with fixes and an addition to the testcase to cover theDaniel Dunbar2009-12-161-424/+404
| | | | | | | | | problem", this broke llvm-gcc bootstrap for release builds on x86_64-apple-darwin10. This reverts commit db22309800b224a9f5f51baf76071d7a93ce59c9. llvm-svn: 91534
* Revert "Initial work on disabling the scheduler. This is a work in progress, andDaniel Dunbar2009-12-163-155/+29
| | | | | | | this", this broke llvm-gcc bootstrap for release builds on x86_64-apple-darwin10. llvm-svn: 91533
* reapply my strstr optimization. I have reproduced the x86-64 bootstrapChris Lattner2009-12-161-9/+75
| | | | | | | miscompile (i386.o miscompares) but it happens both with and without this patch. llvm-svn: 91532
* now that libsystem no longer uses SmallVector, we can move Chris Lattner2009-12-162-0/+38
| | | | | | SmallVectorBase::grow_pod out of line, finally satisfying PR3758. llvm-svn: 91529
* remove use of SmallVector from Path::makeUnique. Path::makeUniqueChris Lattner2009-12-161-14/+10
| | | | | | is not used by anything performance sensitive, so just use std::string. llvm-svn: 91528
* eliminate an extraneous use of SmallVector in a case whereChris Lattner2009-12-161-6/+4
| | | | | | a fixed size buffer is perfectly fine. llvm-svn: 91527
* Use different name for argument and fieldVictor Hernandez2009-12-161-2/+2
| | | | llvm-svn: 91524
* MDNodes that refer to an instruction are local to a function; in that case, ↵Victor Hernandez2009-12-161-3/+8
| | | | | | explicitly keep track of the function they are local to llvm-svn: 91497
* Add encoding bits for some Thumb instructions. Plus explicitly set the top twoJohnny Chen2009-12-163-10/+18
| | | | | | bytes of Inst to 0x0000 for the benefit of the Thumb decoder. llvm-svn: 91496
* Re-enable 91381 with fixes.Evan Cheng2009-12-163-12/+40
| | | | llvm-svn: 91489
* revert my strstr optimization, I'm told it breaks x86-64 bootstrap.Chris Lattner2009-12-161-75/+9
| | | | | | Will reapply with a fix when I get a chance. llvm-svn: 91486
* Do better with physical reg operands (typically, from inline asm)Dale Johannesen2009-12-161-16/+41
| | | | | | | | | | | | | | | | | | in local register allocator. If a reg-reg copy has a phys reg input and a virt reg output, and this is the last use of the phys reg, assign the phys reg to the virt reg. If a reg-reg copy has a phys reg output and we need to reload its spilled input, reload it directly into the phys reg than passing it through another reg. Following 76208, there is sometimes no dependency between the def of a phys reg and its use; this creates a window where that phys reg can be used for spilling (this is true in linear scan also). This is bad and needs to be fixed a better way, although 76208 works too well in practice to be reverted. However, there should normally be no spilling within inline asm blocks. The patch here goes a long way towards making this actually be true. llvm-svn: 91485
* Every anonymous namespace is different. Caught by clang++.John McCall2009-12-161-4/+0
| | | | llvm-svn: 91481
* Explicit template instantiations must happen in the template's immediatelyJohn McCall2009-12-162-0/+4
| | | | | | enclosing namespace. Caught by clang++. llvm-svn: 91480
* Helpful comment added. Some code cleanup. No functional change.Bill Wendling2009-12-161-11/+27
| | | | llvm-svn: 91479
* Initialize uninitialized variables.Bill Wendling2009-12-161-1/+1
| | | | llvm-svn: 91477
* Initialize uninitialized variables.Bill Wendling2009-12-161-1/+1
| | | | llvm-svn: 91475
* Change indirect-globals to use a dedicated allocIndirectGV. This lets usJeffrey Yasskin2009-12-155-46/+58
| | | | | | | | | remove start/finishGVStub and the BufferState helper class from the MachineCodeEmitter interface. It has the side-effect of not setting the indirect global writable and then executable on ARM, but that shouldn't be necessary. llvm-svn: 91464
* Reapply 91184 with fixes and an addition to the testcase to cover the problemBob Wilson2009-12-151-404/+424
| | | | | | | | | | found last time. Instead of trying to modify the IR while iterating over it, I've change it to keep a list of WeakVH references to dead instructions, and then delete those instructions later. I also added some special case code to detect and handle the situation when both operands of a memcpy intrinsic are referencing the same alloca. llvm-svn: 91459
* Fix GetConstantStringInfo to not look into MDString (it works on Chris Lattner2009-12-152-15/+7
| | | | | | | real data, not metadata) and fix DbgInfoPrinter to not abuse GetConstantStringInfo. llvm-svn: 91444
* Add support to emit debug info for C++ namespaces.Devang Patel2009-12-154-22/+105
| | | | llvm-svn: 91440
* optimize strstr, PR5783Chris Lattner2009-12-151-9/+75
| | | | llvm-svn: 91438
* Added encoding bits for the Thumb ISA. Initial checkin.Johnny Chen2009-12-153-348/+1219
| | | | llvm-svn: 91434
* Delete an unused function.Dan Gohman2009-12-151-38/+0
| | | | llvm-svn: 91432
* add some other xforms that should be done as part of PR5783Chris Lattner2009-12-151-3/+4
| | | | llvm-svn: 91428
* Remove isPod() from DenseMapInfo, splitting it out to its ownChris Lattner2009-12-159-11/+10
| | | | | | | | isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. llvm-svn: 91421
* Fix an encoding bug.Evan Cheng2009-12-151-1/+1
| | | | llvm-svn: 91417
* For fastcc on x86, let ECX be used as a return register after EAX and EDXKenneth Uildriks2009-12-151-1/+8
| | | | llvm-svn: 91410
* Disable 91381 for now. It's miscompiling ARMISelDAG2DAG.cpp.Evan Cheng2009-12-151-1/+3
| | | | llvm-svn: 91405
* Make 91378 more conservative.Evan Cheng2009-12-151-1/+11
| | | | | | | 1. Only perform (zext (shl (zext x), y)) -> (shl (zext x), y) when y is a constant. This makes sure it remove at least one zest. 2. If the shift is a left shift, make sure the original shift cannot shift out bits. llvm-svn: 91399
* You can't use typedefs to declare template member specializations, andJohn McCall2009-12-151-35/+49
| | | | | | clang enforces it. llvm-svn: 91397
* Initial work on disabling the scheduler. This is a work in progress, and thisBill Wendling2009-12-153-29/+155
| | | | | | | | | | | | | | | stuff isn't used just yet. We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2' flags. The hypothesis is that the people who use these flags know what they are doing, and have hand-optimized the C code to reduce latencies and other conflicts. The idea behind our scheme to turn off scheduling is to create a map "on the side" during DAG generation. It will order the nodes by how they appeared in the code. This map is then used during scheduling to get the ordering. llvm-svn: 91392
* Tail duplication should zap a copy it inserted for SSA update if the copy is ↵Evan Cheng2009-12-151-13/+37
| | | | | | the only use of its source. llvm-svn: 91390
* Use sbb x, x to materialize carry bit in a GPR. The result is all one's or ↵Evan Cheng2009-12-154-3/+96
| | | | | | all zero's. llvm-svn: 91381
* Fold (zext (and x, cst)) -> (and (zext x), cst).Evan Cheng2009-12-151-0/+13
| | | | llvm-svn: 91380
* Propagate zest through logical shift.Evan Cheng2009-12-151-0/+10
| | | | llvm-svn: 91378
* Formatting.Eric Christopher2009-12-151-1/+1
| | | | llvm-svn: 91377
* Revert these. They may have been causing 483_xalancbmk to fail:Bill Wendling2009-12-152-52/+26
| | | | | | | | | | | | | | | | | | | | $ svn merge -c -91161 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91161 into '.': U lib/CodeGen/BranchFolding.cpp U lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91113 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91113 into '.': G lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91101 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91101 into '.': U include/llvm/CodeGen/MachineBasicBlock.h G lib/CodeGen/MachineBasicBlock.cpp $ svn merge -c -91092 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91092 into '.': G include/llvm/CodeGen/MachineBasicBlock.h G lib/CodeGen/MachineBasicBlock.cpp llvm-svn: 91376
* nand atomic requires opposite operand orderingJim Grosbach2009-12-151-3/+9
| | | | llvm-svn: 91371
OpenPOWER on IntegriCloud