summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* new testcaseChris Lattner2006-01-301-0/+11
| | | | llvm-svn: 25813
* Clear the OpAction field before setting it. This allows a target to setChris Lattner2006-01-301-0/+1
| | | | | | an instruction operation action to Expand, then set it to Legal later. llvm-svn: 25812
* If the target has V9 instructions, this pass is a noop, don't botherChris Lattner2006-01-301-8/+16
| | | | | | running it. llvm-svn: 25811
* When in v9 mode, emit fabsd/fnegd/fmovdChris Lattner2006-01-301-8/+30
| | | | llvm-svn: 25810
* First step towards V9 instructions in the V8 backend, two conditional moveChris Lattner2006-01-303-7/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | patterns. This allows emission of this code: t1: save -96, %o6, %o6 subcc %i0, %i1, %l0 move %icc, %i0, %i2 or %g0, %i2, %i0 restore %g0, %g0, %g0 retl nop instead of this: t1: save -96, %o6, %o6 subcc %i0, %i1, %l0 be .LBBt1_2 ! nop .LBBt1_1: ! or %g0, %i2, %i0 .LBBt1_2: ! restore %g0, %g0, %g0 retl nop for this: int %t1(int %a, int %b, int %c) { %tmp.2 = seteq int %a, %b %tmp3 = select bool %tmp.2, int %a, int %c ret int %tmp3 } llvm-svn: 25809
* Two changes:Chris Lattner2006-01-301-0/+11
| | | | | | | 1. Default to having V9 instructions, instead of just V8. 2. unless -enable-sparc-v9-insts is passed, disable V9 (for use with llcbeta) llvm-svn: 25807
* When lowering SELECT_CC, see if the input is a lowered SETCC. If so, foldChris Lattner2006-01-301-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the two operations together. This allows us to compile this: void %two(int %a, int* %b) { %tmp.2 = seteq int %a, 0 %tmp.0.0 = select bool %tmp.2, int 10, int 20 store int %tmp.0.0, int* %b ret void } into: two: save -96, %o6, %o6 or %g0, 20, %l0 or %g0, 10, %l1 subcc %i0, 0, %l2 be .LBBtwo_2 ! entry nop .LBBtwo_1: ! entry or %g0, %l0, %l1 .LBBtwo_2: ! entry st %l1, [%i1] restore %g0, %g0, %g0 retl nop instead of: two: save -96, %o6, %o6 sethi 0, %l0 or %g0, 1, %l1 or %g0, 20, %l2 or %g0, 10, %l3 subcc %i0, 0, %l4 be .LBBtwo_2 ! entry nop .LBBtwo_1: ! entry or %g0, %l0, %l1 .LBBtwo_2: ! entry subcc %l1, 0, %l0 bne .LBBtwo_4 ! entry nop .LBBtwo_3: ! entry or %g0, %l2, %l3 .LBBtwo_4: ! entry st %l3, [%i1] restore %g0, %g0, %g0 retl nop llvm-svn: 25806
* Add AddSymbol() method to DynamicLibrary to work around Windows limitationJeff Cohen2006-01-303-0/+35
| | | | | | | of being unable to search for symbols in an EXE. It will also allow other existing hacks to be improved. llvm-svn: 25805
* don't insert an and node if it isn't needed here, this can prevent foldingChris Lattner2006-01-301-1/+3
| | | | | | of lowered target nodes. llvm-svn: 25804
* Move MaskedValueIsZero from the DAGCombiner to the TargetLowering ↵Chris Lattner2006-01-305-132/+134
| | | | | | interface,making isMaskedValueZeroForTargetNode simpler, and useable from other partsof the compiler. llvm-svn: 25803
* Move MaskedValueIsZero from the DAGCombiner to the TargetLowering interface,Chris Lattner2006-01-301-6/+14
| | | | | | | making isMaskedValueZeroForTargetNode simpler, and useable from other parts of the compiler. llvm-svn: 25802
* Add _CRT_SECURE_NO_DEPRECATE preprocessor symbol to make VS2005 happy.Jeff Cohen2006-01-3030-59/+59
| | | | llvm-svn: 25801
* Implement isMaskedValueZeroForTargetNode for the various v8 selectcc nodes,Chris Lattner2006-01-301-0/+26
| | | | | | allowing redundant and's to be eliminated by the dag combiner. llvm-svn: 25800
* pass the address of MaskedValueIsZero into isMaskedValueZeroForTargetNode,Chris Lattner2006-01-301-1/+1
| | | | | | to permit recursion llvm-svn: 25799
* adjust prototypeChris Lattner2006-01-303-3/+6
| | | | llvm-svn: 25798
* Pass the address of the main MaskedValueIsZero function to allow recursion.Chris Lattner2006-01-301-3/+5
| | | | llvm-svn: 25797
* fix make install/uninstall of libcrtend.Chris Lattner2006-01-301-0/+19
| | | | llvm-svn: 25796
* Fix indentation.Jeff Cohen2006-01-291-4/+4
| | | | llvm-svn: 25795
* Fix RET of promoted values on targets that custom expand RET to a target node.Chris Lattner2006-01-291-8/+9
| | | | llvm-svn: 25794
* Functions that are lazily streamed in from the .bc file are *not* external.Chris Lattner2006-01-292-2/+4
| | | | | | | This fixes llvm-test/SingleSource/UnitTests/2006-01-29-SimpleIndirectCall.c and PR704 llvm-svn: 25793
* simplify some codeChris Lattner2006-01-291-10/+7
| | | | llvm-svn: 25791
* Remove extra qualifier.Jim Laskey2006-01-291-1/+1
| | | | llvm-svn: 25790
* add another noteChris Lattner2006-01-291-0/+4
| | | | llvm-svn: 25789
* add some performance notes from looking at sgefaChris Lattner2006-01-291-0/+34
| | | | llvm-svn: 25788
* add a high-priority SSE issue from sgefaChris Lattner2006-01-291-0/+34
| | | | llvm-svn: 25787
* add a missed optimizationChris Lattner2006-01-291-0/+10
| | | | llvm-svn: 25786
* cleanups to the ValueTypeActions interfaceChris Lattner2006-01-291-7/+5
| | | | llvm-svn: 25785
* Now that OpActions is big enough, we can specify actions for vector typesChris Lattner2006-01-291-2/+2
| | | | llvm-svn: 25784
* clean up interface to ValueTypeActionsChris Lattner2006-01-291-3/+3
| | | | llvm-svn: 25783
* Clean up the interface to ValueTypeActions, allowing Legalize to use a copyChris Lattner2006-01-291-11/+36
| | | | | | | of it more cleanly. Double the size of OpActions, allowing it to hold actions for any VT. llvm-svn: 25782
* revert an accidental commitChris Lattner2006-01-291-5/+1
| | | | llvm-svn: 25781
* Remove some special case hacks for CALLSEQ_*, using UpdateNodeOperandsChris Lattner2006-01-292-60/+27
| | | | | | instead. llvm-svn: 25780
* remove some methodsChris Lattner2006-01-291-5/+0
| | | | llvm-svn: 25779
* disable this for nowChris Lattner2006-01-291-2/+2
| | | | llvm-svn: 25778
* Add a note about lowering llvm.memset, llvm.memcpy, and llvm.memmove to aReid Spencer2006-01-291-0/+7
| | | | | | few stores under certain conditions. llvm-svn: 25777
* remove now-dead code, the legalizer takes care of this for usChris Lattner2006-01-291-6/+1
| | | | llvm-svn: 25776
* The FP stack doesn't support UNDEF, ask the legalizer to legalize itChris Lattner2006-01-292-5/+3
| | | | | | instead of lying and saying we have it. llvm-svn: 25775
* Allow custom expansion of ConstantVec nodes. PPC will use this in the future.Chris Lattner2006-01-291-22/+35
| | | | llvm-svn: 25774
* Request expansion of ConstantVec nodes.Chris Lattner2006-01-291-0/+5
| | | | llvm-svn: 25773
* Legalize ConstantFP into TargetConstantFP when the target allows. ImplementChris Lattner2006-01-292-2/+39
| | | | | | custom expansion of ConstantFP nodes. llvm-svn: 25772
* Targets all now request ConstantFP to be legalized into TargetConstantFP.Chris Lattner2006-01-295-3/+13
| | | | | | 'fpimm' in .td files is now TargetConstantFP. llvm-svn: 25771
* Update alpha to reflect recent constantfp legalize changes. It's not clearChris Lattner2006-01-292-16/+18
| | | | | | why all this code isn't autogenerated. :( llvm-svn: 25770
* Make ConstantFP legalize into TargetConstantFP like other leaf nodes do. AllowChris Lattner2006-01-293-6/+16
| | | | | | | | targets to register custom legalizers for ConstantFP in case there isn't a fixed list of constants that can be generated. On some architectures (ia64?) all fp immediates are legal. llvm-svn: 25769
* remove the getBR2Way_CC methodChris Lattner2006-01-291-15/+0
| | | | llvm-svn: 25768
* eliminate uses of SelectionDAG::getBR2Way_CCChris Lattner2006-01-292-9/+24
| | | | llvm-svn: 25767
* it is nice not to chop off bits for those blessed with lots of bitsAndrew Lenharth2006-01-291-1/+1
| | | | llvm-svn: 25766
* make the casts actually cast to the variable typeAndrew Lenharth2006-01-291-7/+10
| | | | llvm-svn: 25765
* start of the 64bit safety cleanupAndrew Lenharth2006-01-291-1/+1
| | | | llvm-svn: 25764
* Emit series of conditionals with &&, emitting stuff like this:Chris Lattner2006-01-291-13/+48
| | | | | | | | | | | | | | | | if (N1.getOpcode() == ISD::LOAD && N1.hasOneUse() && !CodeGenMap.count(N1.getValue(0)) && !CodeGenMap.count(N1.getValue(1))) { instead of this: if (N1.getOpcode() == ISD::LOAD) { if (N1.hasOneUse()) { if (!CodeGenMap.count(N1.getValue(0))) { if (!CodeGenMap.count(N1.getValue(1))) { llvm-svn: 25763
* Factor matching code that is common between patterns. This works aroundChris Lattner2006-01-292-35/+112
| | | | | | | GCC not jump-threading across this common code, and produces far nicer output. llvm-svn: 25762
OpenPOWER on IntegriCloud