summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Add a new getMergeValues method that does not needDuncan Sands2008-07-025-51/+30
| | | | | | | | | | to be passed the list of value types, and use this where appropriate. Inappropriate places are where the value type list is already known and may be long, in which case the existing method is more efficient. llvm-svn: 53035
* Darwin doesn't need exception handling information for the "move" info whenBill Wendling2008-07-013-0/+3
| | | | | | debug information is being output, because it's leet! llvm-svn: 52994
* Avoid creating expensive comment string if it's not going to be printed.Evan Cheng2008-07-011-6/+13
| | | | llvm-svn: 52992
* Remove warning about initialization order.Bill Wendling2008-07-011-2/+2
| | | | llvm-svn: 52980
* Prune a few dependencies on MachineFunction.h.Dan Gohman2008-07-011-0/+1
| | | | llvm-svn: 52976
* Do not use computationally expensive scheduling heuristics with -fast.Evan Cheng2008-07-011-6/+2
| | | | llvm-svn: 52971
* Make the subregister hashtable output more readable by wrapping the lines,Owen Anderson2008-07-011-2/+4
| | | | | | and mark it const along with the associated changes to TargetRegisterInfo. llvm-svn: 52966
* Highlight that getMergeValues optimization isDuncan Sands2008-07-011-1/+2
| | | | | | being suppressed here. llvm-svn: 52952
* Replace the dynamically computed std::set lookup method for subregisters ↵Owen Anderson2008-07-011-10/+0
| | | | | | | | with a hashtable-based version that is computed by tblgen at the time LLVM is compiled. llvm-svn: 52945
* Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminatingDan Gohman2008-07-0116-24/+50
| | | | | | | | | | | | | | | | 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
* Don't use ISD namespace opcodes for MachineInstrs.Dan Gohman2008-06-301-2/+2
| | | | llvm-svn: 52932
* std::ostream and std::string microoptimizations for asm printing.Dan Gohman2008-06-301-53/+53
| | | | llvm-svn: 52929
* Update comments to new-style syntax.Dan Gohman2008-06-301-3/+3
| | | | llvm-svn: 52925
* Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect itsDan Gohman2008-06-309-11/+11
| | | | | | | | | | | | | | | | | 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
* Split scheduling from instruction selection.Evan Cheng2008-06-309-62/+44
| | | | llvm-svn: 52923
* Replace some std::vectors that showed up in heap profiling withDan Gohman2008-06-304-14/+9
| | | | | | | | SmallVectors. Change the signature of TargetLowering::LowerArguments to avoid returning a vector by value, and update the two targets which still use this directly, Sparc and IA64, accordingly. llvm-svn: 52917
* Revert the SelectionDAG optimization that makesDuncan Sands2008-06-308-96/+57
| | | | | | | | | | | | | | | | | | it impossible to create a MERGE_VALUES node with only one result: sometimes it is useful to be able to create a node with only one result out of one of the results of a node with more than one result, for example because the new node will eventually be used to replace a one-result node using ReplaceAllUsesWith, cf X86TargetLowering::ExpandFP_TO_SINT. On the other hand, most users of MERGE_VALUES don't need this and for them the optimization was valuable. So add a new utility method getMergeValues for creating MERGE_VALUES nodes which by default performs the optimization. Change almost everywhere to use getMergeValues (and tidy some stuff up at the same time). llvm-svn: 52893
* Start refactoring of asmprinters: provide a TAI hook, which will select a ↵Anton Korobeynikov2008-06-281-0/+49
| | | | | | 'section kind' for a global. llvm-svn: 52868
* UnbreakAnton Korobeynikov2008-06-281-2/+2
| | | | llvm-svn: 52866
* Temporary rever invalid commitAnton Korobeynikov2008-06-282-7/+9
| | | | llvm-svn: 52865
* Move printing of module-level GVs into dedicated helperAnton Korobeynikov2008-06-282-197/+200
| | | | llvm-svn: 52864
* Use common naming conventionAnton Korobeynikov2008-06-282-4/+4
| | | | llvm-svn: 52863
* Factor out stuff into helper functionAnton Korobeynikov2008-06-282-33/+39
| | | | llvm-svn: 52862
* CleanupAnton Korobeynikov2008-06-281-6/+3
| | | | llvm-svn: 52861
* Remove X86SharedAsmPrinterAnton Korobeynikov2008-06-284-529/+487
| | | | llvm-svn: 52860
* whitespace cleanupAnton Korobeynikov2008-06-282-25/+25
| | | | llvm-svn: 52859
* Make intel asmprinter child of generic asmprinter, not x86 shared asm ↵Anton Korobeynikov2008-06-284-27/+138
| | | | | | printer. This leads to some code duplication, which will be resolved later. llvm-svn: 52858
* CleanupAnton Korobeynikov2008-06-281-10/+5
| | | | llvm-svn: 52857
* Whitespace cleanupAnton Korobeynikov2008-06-281-22/+22
| | | | llvm-svn: 52856
* Use StringSet instead of std::set<std::string>Anton Korobeynikov2008-06-273-26/+25
| | | | llvm-svn: 52836
* Provide correct encoding for PPC LWARX instructions.Anton Korobeynikov2008-06-271-2/+2
| | | | | | Patch by Gary Benson! llvm-svn: 52828
* Cache subregister relationships in a set in TargetRegisterInfo to allow ↵Owen Anderson2008-06-271-0/+10
| | | | | | | | faster lookups. This speeds up LiveVariables from 0.6279s to 0.6165s on kimwitu++. llvm-svn: 52818
* Make LLVM compile on DragonFly BSD (PR2499).Matthijs Kooijman2008-06-261-1/+1
| | | | | | Patch by Hasso Tepper! llvm-svn: 52781
* Fixes the last x86-64 test failure in compat.exp:Dale Johannesen2008-06-261-5/+3
| | | | | | | | | | | | | <16 x float> is 64-byte aligned (for some reason), which gets us into the stack realignment code. The computation changing FP-relative offsets to SP-relative was broken, assiging a spill temp to a location also used for parameter passing. This fixes it by rounding up the stack frame to a multiple of the largest alignment (I concluded it wasn't fixable without doing this, but I'm not very sure.) llvm-svn: 52750
* - Fix a x86 vector isel bug: illegal transformation of a vector_shuffle into aEvan Cheng2008-06-252-4/+34
| | | | | | | | shift. - Add a readme entry for a missing vector_shuffle optimization that results in awful codegen. llvm-svn: 52740
* Switch the PPC backend and target-independent JIT to use the libsystem Chris Lattner2008-06-252-31/+3
| | | | | | | InvalidateInstructionCache method instead of calling through a hook on the JIT. This is a host feature, not a target feature. llvm-svn: 52734
* SimpleInstructionSelector is here no more.Dan Gohman2008-06-251-1/+0
| | | | llvm-svn: 52725
* Remove the OrigVT member from AtomicSDNode, as it is redundant withDan Gohman2008-06-252-16/+16
| | | | | | the base SDNode's VTList. llvm-svn: 52722
* Added MemOperands to Atomic operations since Atomics touches memory.Mon P Wang2008-06-258-74/+77
| | | | | | | | Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub llvm-svn: 52706
* Enable two-address remat by default.Evan Cheng2008-06-251-1/+1
| | | | llvm-svn: 52701
* Add v2f32 (MMX) type to X86. Support is primitive:Dale Johannesen2008-06-244-8/+29
| | | | | | | load,store,call,return,bitcast. This is enough to make call and return work. llvm-svn: 52691
* If it's determined safe, remat MOV32r0 (i.e. xor r, r) and others as it is ↵Evan Cheng2008-06-241-11/+53
| | | | | | instead of using the longer MOV32ri instruction. llvm-svn: 52670
* Add a note about a potential PIC optimization.Dan Gohman2008-06-241-0/+7
| | | | llvm-svn: 52663
* Fixes for being compiled PIC on Linux. This isn't the mostDan Gohman2008-06-241-3/+10
| | | | | | | general solution possible, but it's a fairly simple one. Based on a patch from the OpenGTL project! llvm-svn: 52662
* Remove unnecessary #includes.Dan Gohman2008-06-224-4/+0
| | | | llvm-svn: 52613
* Use MachineBasicBlock::transferSuccessors.Dan Gohman2008-06-213-21/+7
| | | | llvm-svn: 52594
* Fix a bug with <8 x i16> shuffle lowering on X86 where parts of the Eli Friedman2008-06-191-2/+0
| | | | | | | | | | shuffle could be skipped. The check is invalid because the loop index i doesn't correspond to the element actually inserted. The correct check is already done a few lines earlier, for whether the element is already in the right spot, so this shouldn't have any effect on the codegen for code that was already correct. llvm-svn: 52486
* Unneeded include's.Evan Cheng2008-06-192-2/+0
| | | | llvm-svn: 52478
* XOR32rr, etc. are not AsCheapAsMove, but MOV32ri, etc. are.Evan Cheng2008-06-181-4/+3
| | | | llvm-svn: 52454
* Unbreak DECLARE isel in pic mode.Evan Cheng2008-06-181-3/+7
| | | | llvm-svn: 52439
OpenPOWER on IntegriCloud