summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* change Mangler::makeNameProper to return its result in a SmallVectorChris Lattner2010-01-131-7/+8
| | | | | | | | | | | | instead of returning it in an std::string. Based on this change: 1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef 2. Change a bunch of targets to call makeNameProper with a smallstring, making several of them *much* more efficient. 3. Rewrite Mangler::makeNameProper to not build names and then prepend prefixes, not use temporary std::strings, and to avoid other crimes. llvm-svn: 93298
* fix assert in AsmPrinter::EmitGlobalConstantLargeInt to match reality.Chris Lattner2010-01-131-2/+1
| | | | llvm-svn: 93293
* reduce nesting and code duplication in AsmPrinter::EmitGlobalConstantLargeInt.Chris Lattner2010-01-131-31/+26
| | | | llvm-svn: 93292
* reduce indentation and add a fast-path to EmitGlobalConstant for 8-byte Chris Lattner2010-01-131-5/+22
| | | | | | integers on 64-bit systems. llvm-svn: 93291
* reduce indentation and use early exits in AsmPrinter::EmitConstantValueOnlyChris Lattner2010-01-131-107/+122
| | | | llvm-svn: 93290
* Disable opt-ext pass to unbreak the build for now.Evan Cheng2010-01-131-1/+0
| | | | llvm-svn: 93286
* Remove debug option I accidentally left in.Evan Cheng2010-01-131-3/+0
| | | | llvm-svn: 93285
* Update CMake file.Ted Kremenek2010-01-131-1/+2
| | | | llvm-svn: 93283
* Add a quick pass to optimize sign / zero extension instructions. For targets ↵Evan Cheng2010-01-132-0/+154
| | | | | | | | where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg. For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used. llvm-svn: 93278
* Further progration of metadata operands. TheDale Johannesen2010-01-131-1/+7
| | | | | | | dumper doesn't really do what I want yet, but at least it doesn't crash now. llvm-svn: 93272
* Fix a comment typo.Bob Wilson2010-01-121-1/+1
| | | | llvm-svn: 93261
* Update a partially obsolete comment.Dan Gohman2010-01-121-1/+1
| | | | llvm-svn: 93228
* Fix a typo in a comment.Dan Gohman2010-01-121-1/+1
| | | | llvm-svn: 93227
* Avoid adding PHI arguments for a predecessor that has gone away when a ↵Jakob Stoklund Olesen2010-01-111-14/+19
| | | | | | | | BRCOND was constant folded. This fixes PR5980. llvm-svn: 93184
* Disable transformation of select of two loads to a select of address and ↵Mon P Wang2010-01-111-28/+41
| | | | | | | | then a load if the loads are not in the default address space because the transformation discards src value info. llvm-svn: 93180
* s/NextValueNo/NextMDValueNo while processing metadata.Devang Patel2010-01-111-7/+8
| | | | llvm-svn: 93165
* Revert an earlier change to SIGN_EXTEND_INREG for vectors. The VTSDNodeDan Gohman2010-01-097-67/+107
| | | | | | | | | | really does need to be a vector type, because TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type, and it needs to be able to distinguish between vectors and scalars. Also, fix some more issues with legalization of vector casts. llvm-svn: 93043
* Dan pointed out checking whether a node is dead by comparing its opcode to ↵Evan Cheng2010-01-091-8/+26
| | | | | | ISD::DELETED_NODE is not safe. Use a DAGUpdateListener to remove dead nodes from work list instead. llvm-svn: 93031
* ReplaceAllUsesOfValueWith may delete other nodes that the one being ↵Evan Cheng2010-01-081-1/+2
| | | | | | replaced. Do not delete dead nodes again. llvm-svn: 92988
* Fix rdar://7517201, a regression introduced by r92849.Chris Lattner2010-01-071-1/+1
| | | | | | | | | | When folding a and(any_ext(load)) both the any_ext and the load have to have only a single use. This removes the anyext-uses.ll testcase which started failing because it is unreduced and unclear what it is testing. llvm-svn: 92950
* factor this code better and reduce nesting at the sameChris Lattner2010-01-071-61/+41
| | | | | | time, no functionality change. llvm-svn: 92948
* APInt'fy TargetLowering::SimplifySetCC to fix PR5963.Evan Cheng2010-01-071-15/+15
| | | | llvm-svn: 92943
* Simplify code. No intended functionality/performance change.Benjamin Kramer2010-01-071-37/+12
| | | | llvm-svn: 92938
* Kill dead store.Benjamin Kramer2010-01-071-2/+1
| | | | llvm-svn: 92920
* Remove dead variable.Benjamin Kramer2010-01-071-7/+2
| | | | llvm-svn: 92919
* Use pop_back_val instead of back()+pop_back.Benjamin Kramer2010-01-071-7/+4
| | | | llvm-svn: 92918
* Allow double defs after tail duplication.Jakob Stoklund Olesen2010-01-061-1/+2
| | | | llvm-svn: 92874
* Add Target hook to duplicate machine instructions.Jakob Stoklund Olesen2010-01-062-1/+8
| | | | | | | Some instructions refer to unique labels, and so cannot be trivially cloned with CloneMachineInstr. llvm-svn: 92873
* Anti-dependency breaking needs to be careful regarding instructions withJim Grosbach2010-01-062-3/+9
| | | | | | multiple register definitions. llvm-svn: 92864
* Comment.Evan Cheng2010-01-061-0/+3
| | | | llvm-svn: 92850
* Teach dag combine to fold the following transformation more aggressively:Evan Cheng2010-01-064-65/+210
| | | | | | | | | | (OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. llvm-svn: 92849
* 80 column and whitespace cleanupJim Grosbach2010-01-064-95/+108
| | | | llvm-svn: 92837
* Fixed malformed -*- lines in PBQP headers.Lang Hames2010-01-069-9/+9
| | | | llvm-svn: 92830
* Add <imp-def> and <imp-kill> operands when replacing virtual sub-register ↵Jakob Stoklund Olesen2010-01-062-17/+46
| | | | | | | | | | | | | | defs and kills. An instruction like this: %reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0 Must be replaced with this when substituting physical registers: %S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def> llvm-svn: 92812
* The previous code could potentially cause a cycle. Allow ordering w.r.t. a 0 ↵Bill Wendling2010-01-061-2/+2
| | | | | | order. llvm-svn: 92810
* Only check the ordering if there is an ordering for each nodes.Bill Wendling2010-01-061-2/+2
| | | | llvm-svn: 92807
* Add a semi-primitive form of scheduling via the "SDNode ordering" to theBill Wendling2010-01-051-0/+12
| | | | | | bottom-up scheduler. We prefer the lower order number. llvm-svn: 92806
* Don't assign the shift the same type as the variable being shifted. This couldBill Wendling2010-01-051-1/+3
| | | | | | result in illegal types for the SHL operator. llvm-svn: 92797
* Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGenDan Gohman2010-01-051-12/+12
| | | | | | | uses several kinds of opcode values which are not declared within that enum. This fixes PR5946. llvm-svn: 92794
* Restore dump() methods to Loop and MachineLoop.Dan Gohman2010-01-051-0/+5
| | | | llvm-svn: 92772
* Move remaining stuff to the isInteger predicate.Benjamin Kramer2010-01-051-1/+1
| | | | llvm-svn: 92771
* Remove livein checks from machine code verifier.Jakob Stoklund Olesen2010-01-051-99/+13
| | | | | | | | | | | A phi operand that is implicitly defined in a predecessor becomes an undefined register after phi elimination. This causes a lot of false positives when the verifier is checking if live-in registers are live-out from all predecessors. Removing the verifier checks seems like a better solution than insisting on IMPLICIT_DEF instructions in predecessor blocks. llvm-svn: 92769
* If a scope has only one instruction then first instruction is also the last ↵Devang Patel2010-01-051-1/+1
| | | | | | instruction. llvm-svn: 92736
* Avoid going through the LLVMContext for type equality where it's safe to ↵Benjamin Kramer2010-01-054-10/+9
| | | | | | dereference the type pointer. llvm-svn: 92726
* Delete renaming use of dead dbg intrinsics.Devang Patel2010-01-053-16/+0
| | | | | | | | | Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start llvm-svn: 92672
* Use StringRef.startswith().Devang Patel2010-01-051-37/+20
| | | | llvm-svn: 92671
* Change errs() to dbgs().David Greene2010-01-051-19/+19
| | | | llvm-svn: 92597
* Change errs() to dbgs().David Greene2010-01-051-6/+6
| | | | llvm-svn: 92596
* Change errs() to dbgs().David Greene2010-01-051-17/+17
| | | | llvm-svn: 92595
* Change errs() to dbgs().David Greene2010-01-051-13/+13
| | | | llvm-svn: 92594
OpenPOWER on IntegriCloud