summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Ident mnemonics appropriatelyNate Begeman2008-02-051-4/+4
| | | | llvm-svn: 46746
* Fix a bug compiling PR1978 (perhaps not the only one though) whichChris Lattner2008-02-051-54/+5
| | | | | | | | | was incorrectly simplifying "x == (gep x, 1, i)" into false, even though i could be negative. As it turns out, all the code to handle this already existed, we just need to disable the incorrect optimization case and let the general case handle it. llvm-svn: 46739
* Fix an obscure read-after-free bug that Duncan found.Owen Anderson2008-02-051-10/+20
| | | | llvm-svn: 46738
* Typo.Evan Cheng2008-02-041-1/+1
| | | | llvm-svn: 46725
* Dwarf requires variable entries to be in the source order. Right now, since ↵Evan Cheng2008-02-049-12/+7
| | | | | | we are recording variable information at isel time this means parameters would appear in the reverse order. The short term fix is to issue recordVariable() at asm printing time instead. llvm-svn: 46724
* This method should be virtualNate Begeman2008-02-041-1/+1
| | | | llvm-svn: 46723
* Eliminate some redundant code.Nate Begeman2008-02-041-7/+1
| | | | llvm-svn: 46720
* Added "bucket_iterators" to FoldingSet. Bucket iterators allow iterationTed Kremenek2008-02-041-1/+7
| | | | | | over all the nodes in a particular bucket. llvm-svn: 46716
* Set error message.Devang Patel2008-02-041-2/+4
| | | | | | Patch by Shantonu Sen. llvm-svn: 46715
* Fixed 80 col. violation.Ted Kremenek2008-02-041-2/+4
| | | | llvm-svn: 46709
* I don't see how NodeUpdated can be called with aDuncan Sands2008-02-041-5/+10
| | | | | | | | | | | | | | | | | | | | ReadyToProcess node - add an assertion to check this. Add an assertion to NodeDeleted that checks that processed/ready nodes are indeed not deleted. It is because they are never deleted that none of the maps can have a deleted node as the source of a mapping. It does however seem to be possible in theory to have a deleted value as the target of a mapping, however this has not yet been spotted in the wild. Still mulling on what to do about this. [The theoretical situation is this: a node A is expanded/promoted/whatever to a newly created node B. Thus A->B is added to a map. When the subtree rooted at B is legalized it is conceivable that B is deleted due to RAUW on a node somewhere above it]. llvm-svn: 46705
* The rest of the SSE4.1 intrinsic patterns that are obvious to me. GettingNate Begeman2008-02-041-8/+45
| | | | | | Evan's help with the rest. llvm-svn: 46697
* Some more SSE 4.1 intrinsic patterns.Nate Begeman2008-02-041-31/+94
| | | | llvm-svn: 46696
* Be more precise when eliminating pointers bue to memcpy's. This allows moreOwen Anderson2008-02-041-4/+10
| | | | | | stores to be deleted in some cases. llvm-svn: 46694
* Allow GVN to hack on memcpy's, making them open to further optimization.Owen Anderson2008-02-041-0/+82
| | | | llvm-svn: 46693
* There are some cases where icmp(add) can be folded into a new icmp. Handle them.Nick Lewycky2008-02-031-0/+32
| | | | llvm-svn: 46687
* Hack on vectors too.Nick Lewycky2008-02-031-1/+1
| | | | llvm-svn: 46684
* Fold away one multiply in instcombine. This would normally be caught inNick Lewycky2008-02-031-0/+24
| | | | | | reassociate anyways, but they could be generated during instcombine's run. llvm-svn: 46683
* Fix typoChris Lattner2008-02-031-1/+1
| | | | llvm-svn: 46682
* SSE 4.1 Intrinsics and detectionNate Begeman2008-02-036-1/+119
| | | | llvm-svn: 46681
* handle the case where a node can become ready to processChris Lattner2008-02-032-3/+4
| | | | | | multiple times due to a RAUW. llvm-svn: 46680
* Use the new infrastructure for listening to node updates to Chris Lattner2008-02-032-31/+34
| | | | | | | | keep the LegalizeTypes node flags up to date when doing a RAUW. This fixes a nasty bug that Duncan ran into and makes the previous (nonbuggy case) more efficent. llvm-svn: 46679
* the world doesn't need my debugging code.Chris Lattner2008-02-031-1/+0
| | | | llvm-svn: 46678
* Change the 'global modification' APIs in SelectionDAG to take a newChris Lattner2008-02-032-162/+209
| | | | | | | | | | DAGUpdateListener object pointer instead of just returning a vector of deleted nodes. This makes the interfaces more efficient (no more allocating a vector [at least a malloc], filling it in, then walking it) and more clean. This also allows the client to be notified of nodes that are *changed* but not deleted. llvm-svn: 46677
* explicitly include Compiler.h instead of getting it from tblgen in the ↵Chris Lattner2008-02-034-0/+4
| | | | | | middle of a class. llvm-svn: 46676
* Generalize the SDOperand->SDOperand form of Chris Lattner2008-02-031-17/+16
| | | | | | | | | SelectionDAG::ReplaceAllUsesWith to handle replacement of an SDOperand with *any* sdoperand, not just one for a node with a single result. Note that this has a horrible FIXME'd hack in it to work around PR1975. This should be removed when PR1975 is fixed. llvm-svn: 46674
* don't do ReplaceUses on a result that doesn't exist.Chris Lattner2008-02-031-2/+4
| | | | llvm-svn: 46673
* add a -view-legalize-types-dags option, for viewing the dags going into ↵Chris Lattner2008-02-031-0/+13
| | | | | | legalize types. llvm-svn: 46672
* Get rid of the annoying blank lines before labels.Evan Cheng2008-02-0210-14/+4
| | | | llvm-svn: 46667
* Don't use uninitialized values. Fixes vec_align.ll on X86 Linux.Nick Lewycky2008-02-021-1/+1
| | | | llvm-svn: 46666
* Unbreak ppc debug support.Evan Cheng2008-02-021-0/+3
| | | | llvm-svn: 46665
* SDIsel processes llvm.dbg.declare by recording the variable debug ↵Evan Cheng2008-02-0217-18/+72
| | | | | | | | | information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc. Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes. For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time. llvm-svn: 46659
* Add comment explaining what is lower level analysis pass.Devang Patel2008-02-021-0/+10
| | | | llvm-svn: 46658
* Fixing a bug creating floating point constants of type otherGordon Henriksen2008-02-021-1/+23
| | | | | | | than double through the C bindings. Thanks to Tomas Lindquist Olsen for reporting it. llvm-svn: 46656
* Frame index can be negative.Evan Cheng2008-02-023-3/+3
| | | | llvm-svn: 46655
* CBackend: Implement unaligned load/store.Lauro Ramos Venancio2008-02-011-14/+35
| | | | llvm-svn: 46646
* Don't drop function/call return attributes like 'nounwind'.Duncan Sands2008-02-011-0/+8
| | | | llvm-svn: 46645
* Remove the nasty LABEL hack with a much less evil one. Now ↵Evan Cheng2008-02-017-55/+24
| | | | | | llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before. llvm-svn: 46635
* Rename RecordLabel to RecordSourceLine because that's what it is doing.Evan Cheng2008-02-012-4/+4
| | | | llvm-svn: 46628
* Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and ↵Evan Cheng2008-01-3112-320/+142
| | | | | | re-commit. llvm-svn: 46623
* Chris' change to print an approximation to long doublesDale Johannesen2008-01-311-1/+2
| | | | | | | exposed a bug in APFloat's long double->double conversion of NaNs. Broke several things in the ieee part of gcc testsuite. llvm-svn: 46617
* Add a comment for a nasty short term hack.Evan Cheng2008-01-311-0/+4
| | | | llvm-svn: 46610
* Add an extra operand to LABEL nodes which distinguishes between debug, EH, ↵Evan Cheng2008-01-3112-34/+63
| | | | | | or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. llvm-svn: 46609
* Allow ComplexExpressions in InstrInfo.td files to be slightly more... ↵Christopher Lamb2008-01-311-1/+9
| | | | | | | | | | complex! ComplexExpressions can now have attributes which affect how TableGen interprets the pattern when generating matchin code. The first (and currently, only) attribute causes the immediate parent node of the ComplexPattern operand to be passed into the matching code rather than the node at the root of the entire DAG containing the pattern. llvm-svn: 46606
* Add more thorough error checking for NULL register classes.Christopher Lamb2008-01-311-1/+2
| | | | llvm-svn: 46605
* Add x86 specific getFrameIndexOffset(). This fixes local variable debugging ↵Evan Cheng2008-01-312-0/+15
| | | | | | info. llvm-svn: 46598
* MRegisterInfo::getLocation() is a really bad idea. Its function is to ↵Evan Cheng2008-01-312-13/+8
| | | | | | | | calculate the offset from frame pointer to a stack slot and then storing the delta in a MachineLocation object. The name is bad (it implies a getter), and MRegisterInfo doesn't need to know about MachineLocation. Replace getLocation() with getFrameIndexOffset() which returns the delta from frame pointer to stack slot. Dwarf writer can then use the information for whatever it wants. llvm-svn: 46597
* Makes the same change in ppc backend: avoid inserting prologue before debug ↵Evan Cheng2008-01-311-0/+10
| | | | | | labels. llvm-svn: 46596
* Avoid unnecessarily casting away const, fixing a FIXME.Dan Gohman2008-01-312-2/+2
| | | | llvm-svn: 46591
* Avoid unnecessarily casting away const.Dan Gohman2008-01-311-1/+1
| | | | llvm-svn: 46590
OpenPOWER on IntegriCloud