summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve debug output for MemOperandSDNode. PseudoSourceValue nodesDan Gohman2008-07-141-4/+7
| | | | | | | don't have value names, so use print instead of getName() to get a useful string. llvm-svn: 53563
* Revert my previous check-in that split up MachineModuleInfo. It turns out toBill Wendling2008-07-031-1/+1
| | | | | | slow the compiler down at -O0 some 30% or more. Ooops. llvm-svn: 53120
* Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminatingDan Gohman2008-07-011-0/+2
| | | | | | | | | | | | | | | | the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. llvm-svn: 52943
* Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect itsDan Gohman2008-06-301-2/+6
| | | | | | | | | | | | | | | | | purpose, and give it a custom SDNode subclass so that it doesn't need to have line number, column number, filename string, and directory string, all existing as individual SDNodes to be the operands. This was the only user of ISD::STRING, StringSDNode, etc., so remove those and some associated code. This makes stop-points considerably easier to read in -view-legalize-dags output, and reduces overhead (creating new nodes and copying std::strings into them) on code containing debugging information. llvm-svn: 52924
* Remove ScheduleDAG's SUnitMap altogether. Instead, use SDNode's NodeIdDan Gohman2008-06-211-3/+3
| | | | | | | field, which is otherwise unused after instruction selection, as an index into the SUnit array. llvm-svn: 52583
* Change ScheduleDAG's SUnitMap from DenseMap<SDNode*, vector<SUnit*> >Dan Gohman2008-06-211-1/+1
| | | | | | | | to DenseMap<SDNode*, SUnit*>, and adjust the way cloned SUnit nodes are handled so that only the original node needs to be in the map. This speeds up llc on 447.dealII.llvm.bc by about 2%. llvm-svn: 52576
* Wrap MVT::ValueType in a struct to get type safetyDuncan Sands2008-06-061-5/+5
| | | | | | | | | | | | | | | | and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). llvm-svn: 52044
* Fix an out-of-bounds access in -view-sunit-dags in the case of anDan Gohman2008-04-211-1/+2
| | | | | | empty ScheduleDAG. llvm-svn: 50054
* In -view-sunit-dags, display "special" chain dependencies as cyanDan Gohman2008-04-141-0/+2
| | | | | | instead of blue to distinguish them from regular dependencies. llvm-svn: 49696
* Fix -view-sunit-dags to support cross-rc-copy nodes.Dan Gohman2008-03-211-1/+4
| | | | llvm-svn: 48664
* Introduce a new node for holding call argumentDuncan Sands2008-03-211-0/+2
| | | | | | | | | | | | | | | | | flags. This is needed by the new legalize types infrastructure which wants to expand the 64 bit constants previously used to hold the flags on 32 bit machines. There are two functional changes: (1) in LowerArguments, if a parameter has the zext attribute set then that is marked in the flags; before it was being ignored; (2) PPC had some bogus code for handling two word arguments when using the ELF 32 ABI, which was hard to convert because of the bogusness. As suggested by the original author (Nicolas Geoffray), I've disabled it for the moment. Tested with "make check" and the Ada ACATS testsuite. llvm-svn: 48640
* Final de-tabification.Bill Wendling2008-02-271-1/+1
| | | | llvm-svn: 47663
* Rename PrintableName to Name.Bill Wendling2008-02-261-1/+1
| | | | llvm-svn: 47629
* Change "Name" to "AsmName" in the target register info. Gee, a refactoring toolBill Wendling2008-02-261-1/+2
| | | | | | would have been a Godsend here! llvm-svn: 47625
* Rename MRegisterInfo to TargetRegisterInfo.Dan Gohman2008-02-101-2/+2
| | | | llvm-svn: 46930
* Re-apply the memory operand changes, with a fix for the staticDan Gohman2008-02-061-2/+7
| | | | | | | | initializer problem, a minor tweak to the way the DAGISelEmitter finds load/store nodes, and a renaming of the new PseudoSourceValue objects. llvm-svn: 46827
* Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and ↵Evan Cheng2008-01-311-7/+2
| | | | | | re-commit. llvm-svn: 46623
* Create a new class, MemOperand, for describing memory referencesDan Gohman2008-01-311-2/+7
| | | | | | | | | | | | | | | | in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand list to MachineInstr, and code to manage them. Remove the offset field from SrcValueSDNode; uses of SrcValueSDNode that were using it are all all using MemOperandSDNode now. Also, begin updating some getLoad and getStore calls to use the PseudoSourceValue objects. Most of this was written by Florian Brander, some reorganization and updating to TOT by me. llvm-svn: 46585
* Factor the addressing mode and the load/store VT out of LoadSDNodeDan Gohman2008-01-301-2/+2
| | | | | | | | and StoreSDNode into their common base class LSBaseSDNode. Member functions getLoadedVT and getStoredVT are replaced with the common getMemoryVT to simplify code that will handle both loads and stores. llvm-svn: 46538
* include alignment and volatility information in -view-*-dags outputChris Lattner2008-01-251-3/+10
| | | | llvm-svn: 46347
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Add a (disabled by default) way to view the ID of a node.Chris Lattner2007-10-151-0/+4
| | | | llvm-svn: 42978
* Added major new capabilities to scheduler (only BURR for now) to support ↵Evan Cheng2007-09-251-1/+1
| | | | | | physical register dependency. The BURR scheduler can now backtrace and duplicate instructions in order to avoid "expensive / impossible to copy" values (e.g. status flag EFLAGS for x86) from being clobbered. llvm-svn: 42284
* Use struct SDep instead of std::pair for SUnit pred and succ lists. First stepEvan Cheng2007-09-191-1/+1
| | | | | | in tracking physical register output dependencies. llvm-svn: 42125
* Enhance APFloat to retain bits of NaNs (fixes oggenc).Dale Johannesen2007-08-311-2/+2
| | | | | | | Use APFloat interfaces for more references, mostly of ConstantFPSDNode. llvm-svn: 41632
* Add an option, -view-sunit-dags, for viewing the actual SUnit DAGs used byDan Gohman2007-08-281-0/+70
| | | | | | scheduling. llvm-svn: 41556
* Make chain dependencies blue, in addition to being dashed.Dan Gohman2007-06-181-1/+1
| | | | llvm-svn: 37626
* Qualify several calls to functions in the MVT namespace, for consistency.Dan Gohman2007-05-181-1/+1
| | | | llvm-svn: 37230
* Removing even more <iostream> includes.Bill Wendling2006-12-071-11/+10
| | | | llvm-svn: 32320
* Fixing the ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1 build.Jim Laskey2006-11-171-0/+1
| | | | llvm-svn: 31822
* Rename ISD::MemOpAddrMode to ISD::MemIndexedModeEvan Cheng2006-11-091-2/+2
| | | | llvm-svn: 31596
* Print jumptable index.Evan Cheng2006-11-011-0/+2
| | | | llvm-svn: 31340
* Make flag and chain edges visually distinguishable from value edges in DOTChris Lattner2006-10-201-1/+16
| | | | | | output. llvm-svn: 31067
* Fix printer for StoreSDNode.Evan Cheng2006-10-171-4/+5
| | | | llvm-svn: 31017
* Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty ↵Jim Laskey2006-10-171-1/+2
| | | | | | optimization. llvm-svn: 31009
* Naming consistency.Evan Cheng2006-10-111-1/+1
| | | | llvm-svn: 30878
* Also update getNodeLabel for LoadSDNode.Evan Cheng2006-10-101-0/+21
| | | | llvm-svn: 30861
* Debugging kruftJim Laskey2006-10-021-3/+0
| | | | llvm-svn: 30688
* Add ability to annotate (color) nodes in a viewGraph.Jim Laskey2006-10-021-1/+69
| | | | llvm-svn: 30686
* Added support for machine specific constantpool values. These are useful forEvan Cheng2006-09-121-6/+13
| | | | | | representing expressions that can only be resolved at link time, etc. llvm-svn: 30278
* For PR801:Reid Spencer2006-06-271-91/+3
| | | | | | | | | Refactor the Graph writing code to use a common implementation which is now in lib/Support/GraphWriter.cpp. This completes the PR. Patch by Anton Korobeynikov. Thanks, Anton! llvm-svn: 28925
* For PR798:Reid Spencer2006-06-051-13/+56
| | | | | | Provide GraphViz support for MingW32. Patch provided by Anton Korobeynikov llvm-svn: 28688
* print arbitrary constant pool entriesChris Lattner2006-03-051-0/+9
| | | | llvm-svn: 26545
* Added an index field to GlobalAddressSDNode so it can represent X+12, etc.Evan Cheng2005-11-301-0/+5
| | | | llvm-svn: 24523
* Add support for a new STRING and LOCATION node for line number support, patchChris Lattner2005-11-291-0/+3
| | | | | | contributed by Daniel Berlin, with a few cleanups here and there by me. llvm-svn: 24515
* more progress towards bug 291 being finished. Patch by Owen Anderson,Chris Lattner2005-11-201-12/+17
| | | | | | HAVE_GV case fixed up by me. llvm-svn: 24428
* Improve Selection DAG printer portability. Patch by Owen Anderson!Chris Lattner2005-11-191-4/+6
| | | | llvm-svn: 24425
* Teach the graph viewer to handle register operands that are zero.Chris Lattner2005-11-191-1/+1
| | | | llvm-svn: 24421
* add a methodChris Lattner2005-10-011-0/+5
| | | | llvm-svn: 23575
* Change ConstantPoolSDNode to actually hold the Constant itself instead ofChris Lattner2005-08-261-2/+4
| | | | | | | | putting it into the constant pool. This allows the isel machinery to create constants that it will end up deciding are not needed, without them ending up in the resultant function constant pool. llvm-svn: 23081
OpenPOWER on IntegriCloud