[llvm-commits] CVS: llvm-www/releases/index.html
Changes in directory llvm-www/releases: index.html updated: 1.26 -> 1.27 --- Log message: Adding 1.7 release --- Diffs of the changes: (+5 -3) index.html |8 +--- 1 files changed, 5 insertions(+), 3 deletions(-) Index: llvm-www/releases/index.html diff -u llvm-www/releases/index.html:1.26 llvm-www/releases/index.html:1.27 --- llvm-www/releases/index.html:1.26 Mon Nov 28 15:46:59 2005 +++ llvm-www/releases/index.htmlThu Apr 20 02:04:35 2006 @@ -15,7 +15,7 @@ -LLVM is distributed under the University of +LLVM is distributed under the University of Illinois Open Source License, an http://www.opensource.org/licenses/UoI-NCSA.php";>OSI-approved license. @@ -39,7 +39,8 @@ Always - Anonymous CVS access; release notes. - +19 Apr 2006 - 1.7 release download; release notes. 08 Nov 2005 - 1.6 release download; release notes. @@ -72,7 +73,8 @@ source download and online: -http://llvm.cs.uiuc.edu/docs/";>Current LLVM documentation +http://llvm.org";>Current LLVM documentation +Documentation for LLVM 1.7 Documentation for LLVM 1.6 Documentation for LLVM 1.5 Documentation for LLVM 1.4 ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/releases/download.html
Changes in directory llvm-www/releases: download.html updated: 1.25 -> 1.26 --- Log message: Adding 1.7 release --- Diffs of the changes: (+37 -0) download.html | 37 + 1 files changed, 37 insertions(+) Index: llvm-www/releases/download.html diff -u llvm-www/releases/download.html:1.25 llvm-www/releases/download.html:1.26 --- llvm-www/releases/download.html:1.25Mon Nov 28 15:46:59 2005 +++ llvm-www/releases/download.html Thu Apr 20 02:04:25 2006 @@ -30,6 +30,43 @@ +Download LLVM 1.7 + + + + +Please read the Release Notes before +downloading: + + +LLVM source code (4.5M) +LLVM Test Suite (11.3M) + + GCC 3.4 Front End + Binaries for Linux/x86 (6.1M) + + GCC 3.4 Front End + Binaries for MacOS X/PowerPC (6.3M) + + GCC 3.4 Front End Source Code + (28.9M) + + GCC 4 Front End + Binaries for MacOS X/x86 (53.3M) + + GCC 4 Front End + Binaries for MacOS X/PowerPC (52.4M) + + GCC 4 Front End + Source Code (6.1M) + + + + + + + + Download LLVM 1.6 ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/releases/download.html
Changes in directory llvm-www/releases: download.html updated: 1.26 -> 1.27 --- Log message: Fix file size --- Diffs of the changes: (+1 -1) download.html |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-www/releases/download.html diff -u llvm-www/releases/download.html:1.26 llvm-www/releases/download.html:1.27 --- llvm-www/releases/download.html:1.26Thu Apr 20 02:04:25 2006 +++ llvm-www/releases/download.html Thu Apr 20 02:05:47 2006 @@ -58,7 +58,7 @@ Binaries for MacOS X/PowerPC (52.4M) GCC 4 Front End - Source Code (6.1M) + Source Code (43.6M) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/releases/download.html
Changes in directory llvm-www/releases: download.html updated: 1.27 -> 1.28 --- Log message: Fixing typos --- Diffs of the changes: (+2 -2) download.html |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/releases/download.html diff -u llvm-www/releases/download.html:1.27 llvm-www/releases/download.html:1.28 --- llvm-www/releases/download.html:1.27Thu Apr 20 02:05:47 2006 +++ llvm-www/releases/download.html Thu Apr 20 02:12:34 2006 @@ -51,10 +51,10 @@ GCC 3.4 Front End Source Code (28.9M) - GCC 4 Front End + GCC 4 Front End Binaries for MacOS X/x86 (53.3M) - GCC 4 Front End + GCC 4 Front End Binaries for MacOS X/PowerPC (52.4M) GCC 4 Front End ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/releases/download.html
Changes in directory llvm-www/releases: download.html updated: 1.28 -> 1.29 --- Log message: Tired typos --- Diffs of the changes: (+2 -2) download.html |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/releases/download.html diff -u llvm-www/releases/download.html:1.28 llvm-www/releases/download.html:1.29 --- llvm-www/releases/download.html:1.28Thu Apr 20 02:12:34 2006 +++ llvm-www/releases/download.html Thu Apr 20 02:14:24 2006 @@ -51,10 +51,10 @@ GCC 3.4 Front End Source Code (28.9M) - GCC 4 Front End + GCC 4 Front End Binaries for MacOS X/x86 (53.3M) - GCC 4 Front End + GCC 4 Front End Binaries for MacOS X/PowerPC (52.4M) GCC 4 Front End ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/releases/download.html
Changes in directory llvm-www/releases: download.html updated: 1.29 -> 1.30 --- Log message: doh! --- Diffs of the changes: (+2 -2) download.html |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/releases/download.html diff -u llvm-www/releases/download.html:1.29 llvm-www/releases/download.html:1.30 --- llvm-www/releases/download.html:1.29Thu Apr 20 02:14:24 2006 +++ llvm-www/releases/download.html Thu Apr 20 02:16:21 2006 @@ -51,10 +51,10 @@ GCC 3.4 Front End Source Code (28.9M) - GCC 4 Front End + GCC 4 Front End Binaries for MacOS X/x86 (53.3M) - GCC 4 Front End + GCC 4 Front End Binaries for MacOS X/PowerPC (52.4M) GCC 4 Front End ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/www-index.html header.incl
Changes in directory llvm-www: www-index.html updated: 1.126 -> 1.127 header.incl updated: 1.45 -> 1.46 --- Log message: 1.7 is out! --- Diffs of the changes: (+5 -4) header.incl|5 +++-- www-index.html |4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) Index: llvm-www/www-index.html diff -u llvm-www/www-index.html:1.126 llvm-www/www-index.html:1.127 --- llvm-www/www-index.html:1.126 Wed Apr 19 13:01:48 2006 +++ llvm-www/www-index.html Thu Apr 20 02:21:41 2006 @@ -102,9 +102,9 @@ Latest LLVM Release! - Nov 08, 2005: LLVM 1.6 is now available + April 20, 2006: LLVM 1.7 is now available for download! LLVM is publicly available under an open source License. Also, you might want to + href="releases/1.7/LICENSE.TXT">License. Also, you might want to check out the new features in CVS that will appear in the next LLVM release. If you want them early, download LLVM through Index: llvm-www/header.incl diff -u llvm-www/header.incl:1.45 llvm-www/header.incl:1.46 --- llvm-www/header.incl:1.45 Thu Mar 16 13:02:22 2006 +++ llvm-www/header.inclThu Apr 20 02:21:41 2006 @@ -37,7 +37,7 @@ Download! Download now: -LLVM 1.6 +LLVM 1.7 Try the @@ -45,7 +45,7 @@ View the open-source -license +license @@ -65,6 +65,7 @@ Status Updates + http://lists.cs.uiuc.edu/pipermail/llvm-announce/2006-April/18.html";>Apr 20, 2006 http://lists.cs.uiuc.edu/pipermail/llvm-announce/2005-November/17.html";>Nov 8, 2005 http://lists.cs.uiuc.edu/pipermail/llvm-announce/2005-May/16.html";>May 18, 2005 http://lists.cs.uiuc.edu/pipermail/llvm-announce/2005-February/15.html";>February 14, 2005 ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/releases/index.html
Changes in directory llvm-www/releases: index.html updated: 1.27 -> 1.28 --- Log message: Update date --- Diffs of the changes: (+1 -1) index.html |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-www/releases/index.html diff -u llvm-www/releases/index.html:1.27 llvm-www/releases/index.html:1.28 --- llvm-www/releases/index.html:1.27 Thu Apr 20 02:04:35 2006 +++ llvm-www/releases/index.htmlThu Apr 20 02:20:49 2006 @@ -39,7 +39,7 @@ Always - Anonymous CVS access; release notes. -19 Apr 2006 - 1.7 release download; 20 Apr 2006 - 1.7 release download; release notes. 08 Nov 2005 - 1.6 release download; release notes. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_shuffle-3.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_shuffle-3.ll added (r1.1) --- Log message: Added a movhlps, movlhps test case. --- Diffs of the changes: (+19 -0) vec_shuffle-3.ll | 19 +++ 1 files changed, 19 insertions(+) Index: llvm/test/Regression/CodeGen/X86/vec_shuffle-3.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_shuffle-3.ll:1.1 *** /dev/null Thu Apr 20 03:47:57 2006 --- llvm/test/Regression/CodeGen/X86/vec_shuffle-3.ll Thu Apr 20 03:47:47 2006 *** *** 0 --- 1,19 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movlhps | wc -l | grep 1 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movhlps | wc -l | grep 1 + + <4 x float> %test1(<4 x float>* %x, <4 x float>* %y) { + %tmp = load <4 x float>* %y + %tmp5 = load <4 x float>* %x + %tmp9 = add <4 x float> %tmp5, %tmp + %tmp21 = sub <4 x float> %tmp5, %tmp + %tmp27 = shufflevector <4 x float> %tmp9, <4 x float> %tmp21, <4 x uint> < uint 0, uint 1, uint 4, uint 5 > + ret <4 x float> %tmp27 + } + + <4 x float> %movhl(<4 x float>* %x, <4 x float>* %y) { + entry: + %tmp = load <4 x float>* %y + %tmp3 = load <4 x float>* %x + %tmp4 = shufflevector <4 x float> %tmp3, <4 x float> %tmp, <4 x uint> < uint 2, uint 3, uint 6, uint 7 > + ret <4 x float> %tmp4 + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_clear.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_clear.ll added (r1.1) --- Log message: Added a test case for , e.g. xform pand <0, 0, -1, -1> to a shuffle. --- Diffs of the changes: (+8 -0) vec_clear.ll |8 1 files changed, 8 insertions(+) Index: llvm/test/Regression/CodeGen/X86/vec_clear.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_clear.ll:1.1 *** /dev/null Thu Apr 20 03:51:13 2006 --- llvm/test/Regression/CodeGen/X86/vec_clear.ll Thu Apr 20 03:51:03 2006 *** *** 0 --- 1,8 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep and + <4 x float> %test(<4 x float>* %v1) { + %tmp = load <4 x float>* %v1 + %tmp15 = cast <4 x float> %tmp to <2 x long> + %tmp24 = and <2 x long> %tmp15, cast (<4 x int> < int 0, int 0, int -1, int -1 > to <2 x long>) + %tmp31 = cast <2 x long> %tmp24 to <4 x float> + ret <4 x float> %tmp31 + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/Target/TargetLowering.h
Changes in directory llvm/include/llvm/Target: TargetLowering.h updated: 1.68 -> 1.69 --- Log message: Added a virtual method isVectorClearMaskLegal to TLI. It is similar to isShuffleMaskLegal, used to determine if it makes sense to turn a "vector clear" (e.g. pand V, <0, -1, 0, -1> to a shuffle of the vector and a zero vector. --- Diffs of the changes: (+10 -0) TargetLowering.h | 10 ++ 1 files changed, 10 insertions(+) Index: llvm/include/llvm/Target/TargetLowering.h diff -u llvm/include/llvm/Target/TargetLowering.h:1.68 llvm/include/llvm/Target/TargetLowering.h:1.69 --- llvm/include/llvm/Target/TargetLowering.h:1.68 Wed Apr 12 11:21:12 2006 +++ llvm/include/llvm/Target/TargetLowering.h Thu Apr 20 03:54:13 2006 @@ -200,6 +200,16 @@ return true; } + /// isVectorClearMaskLegal - Similar to isShuffleMaskLegal. This is + /// used by Targets can use this to indicate if there is a suitable + /// VECTOR_SHUFFLE that can be used to replace a VAND with a constant + /// pool entry. + virtual bool isVectorClearMaskLegal(std::vector &BVOps, + MVT::ValueType EVT, + SelectionDAG &DAG) const { +return false; + } + /// getOperationAction - Return how this operation should be treated: either /// it is legal, needs to be promoted to a larger size, needs to be /// expanded to some other code sequence, or the target has a custom expander ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG: DAGCombiner.cpp updated: 1.147 -> 1.148 --- Log message: Turn a VAND into a VECTOR_SHUFFLE is applicable. DAG combiner can turn a VAND V, <-1, 0, -1, -1>, i.e. vector clear elements, into a vector shuffle with a zero vector. It only does so when TLI tells it the xform is profitable. --- Diffs of the changes: (+64 -1) DAGCombiner.cpp | 65 +++- 1 files changed, 64 insertions(+), 1 deletion(-) Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp diff -u llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.147 llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.148 --- llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.147 Sat Apr 8 00:34:25 2006 +++ llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Thu Apr 20 03:56:16 2006 @@ -218,6 +218,7 @@ SDOperand visitVECTOR_SHUFFLE(SDNode *N); SDOperand visitVVECTOR_SHUFFLE(SDNode *N); +SDOperand XformToShuffleWithZero(SDNode *N); SDOperand ReassociateOps(unsigned Opc, SDOperand LHS, SDOperand RHS); bool SimplifySelectOps(SDNode *SELECT, SDOperand LHS, SDOperand RHS); @@ -2774,6 +2775,66 @@ return SDOperand(); } +/// XformToShuffleWithZero - Returns a vector_shuffle if it able to transform +/// a VAND to a vector_shuffle with the destination vector and a zero vector. +/// e.g. VAND V, <0x, 0, 0x, 0>. ==> +/// vector_shuffle V, Zero, <0, 4, 2, 4> +SDOperand DAGCombiner::XformToShuffleWithZero(SDNode *N) { + SDOperand LHS = N->getOperand(0); + SDOperand RHS = N->getOperand(1); + if (N->getOpcode() == ISD::VAND) { +SDOperand DstVecSize = *(LHS.Val->op_end()-2); +SDOperand DstVecEVT = *(LHS.Val->op_end()-1); +if (RHS.getOpcode() == ISD::VBIT_CONVERT) + RHS = RHS.getOperand(0); +if (RHS.getOpcode() == ISD::VBUILD_VECTOR) { + std::vector IdxOps; + unsigned NumOps = RHS.getNumOperands(); + unsigned NumElts = NumOps-2; + MVT::ValueType EVT = cast(RHS.getOperand(NumOps-1))->getVT(); + for (unsigned i = 0; i != NumElts; ++i) { +SDOperand Elt = RHS.getOperand(i); +if (!isa(Elt)) + return SDOperand(); +else if (cast(Elt)->isAllOnesValue()) + IdxOps.push_back(DAG.getConstant(i, EVT)); +else if (cast(Elt)->isNullValue()) + IdxOps.push_back(DAG.getConstant(NumElts, EVT)); +else + return SDOperand(); + } + + // Let's see if the target supports this vector_shuffle. + if (!TLI.isVectorClearMaskLegal(IdxOps, EVT, DAG)) +return SDOperand(); + + // Return the new VVECTOR_SHUFFLE node. + SDOperand NumEltsNode = DAG.getConstant(NumElts, MVT::i32); + SDOperand EVTNode = DAG.getValueType(EVT); + std::vector Ops; + LHS = DAG.getNode(ISD::VBIT_CONVERT, MVT::Vector, LHS, NumEltsNode, EVTNode); + Ops.push_back(LHS); + AddToWorkList(LHS.Val); + std::vector ZeroOps(NumElts, DAG.getConstant(0, EVT)); + ZeroOps.push_back(NumEltsNode); + ZeroOps.push_back(EVTNode); + Ops.push_back(DAG.getNode(ISD::VBUILD_VECTOR, MVT::Vector, ZeroOps)); + IdxOps.push_back(NumEltsNode); + IdxOps.push_back(EVTNode); + Ops.push_back(DAG.getNode(ISD::VBUILD_VECTOR, MVT::Vector, IdxOps)); + Ops.push_back(NumEltsNode); + Ops.push_back(EVTNode); + SDOperand Result = DAG.getNode(ISD::VVECTOR_SHUFFLE, MVT::Vector, Ops); + if (NumEltsNode != DstVecSize || EVTNode != DstVecEVT) { +Result = DAG.getNode(ISD::VBIT_CONVERT, MVT::Vector, Result, + DstVecSize, DstVecEVT); + } + return Result; +} + } + return SDOperand(); +} + /// visitVBinOp - Visit a binary vector operation, like VADD. IntOp indicates /// the scalar operation of the vop if it is operating on an integer vector /// (e.g. ADD) and FPOp indicates the FP version (e.g. FADD). @@ -2783,7 +2844,9 @@ ISD::NodeType ScalarOp = MVT::isInteger(EltType) ? IntOp : FPOp; SDOperand LHS = N->getOperand(0); SDOperand RHS = N->getOperand(1); - + SDOperand Shuffle = XformToShuffleWithZero(N); + if (Shuffle.Val) return Shuffle; + // If the LHS and RHS are VBUILD_VECTOR nodes, see if we can constant fold // this operation. if (LHS.getOpcode() == ISD::VBUILD_VECTOR && ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp X86ISelLowering.h
Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.177 -> 1.178 X86ISelLowering.h updated: 1.56 -> 1.57 --- Log message: - Added support to turn "vector clear elements", e.g. pand V, <-1, -1, 0, -1> to a vector shuffle. - VECTOR_SHUFFLE lowering change in preparation for more efficient codegen of vector shuffle with zero (or any splat) vector. --- Diffs of the changes: (+233 -78) X86ISelLowering.cpp | 299 ++-- X86ISelLowering.h | 12 +- 2 files changed, 233 insertions(+), 78 deletions(-) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.177 llvm/lib/Target/X86/X86ISelLowering.cpp:1.178 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.177 Wed Apr 19 19:11:39 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Thu Apr 20 03:58:49 2006 @@ -1501,45 +1501,51 @@ /// isSHUFPMask - Return true if the specified VECTOR_SHUFFLE operand /// specifies a shuffle of elements that is suitable for input to SHUFP*. -bool X86::isSHUFPMask(SDNode *N) { - assert(N->getOpcode() == ISD::BUILD_VECTOR); - - unsigned NumElems = N->getNumOperands(); - if (NumElems == 2) { -// The only cases that ought be handled by SHUFPD is -// Dest { 2, 1 } <= shuffle( Dest { 1, 0 }, Src { 3, 2 } -// Dest { 3, 0 } <= shuffle( Dest { 1, 0 }, Src { 3, 2 } -// Expect bit 0 == 1, bit1 == 2 -SDOperand Bit0 = N->getOperand(0); -SDOperand Bit1 = N->getOperand(1); -if (isUndefOrEqual(Bit0, 0) && isUndefOrEqual(Bit1, 3)) - return true; -if (isUndefOrEqual(Bit0, 1) && isUndefOrEqual(Bit1, 2)) - return true; -return false; - } +static bool isSHUFPMask(std::vector &N) { + unsigned NumElems = N.size(); + if (NumElems != 2 && NumElems != 4) return false; + + unsigned Half = NumElems / 2; + for (unsigned i = 0; i < Half; ++i) +if (!isUndefOrInRange(N[i], 0, NumElems)) + return false; + for (unsigned i = Half; i < NumElems; ++i) +if (!isUndefOrInRange(N[i], NumElems, NumElems*2)) + return false; - if (NumElems != 4) return false; + return true; +} - // Each half must refer to only one of the vector. - for (unsigned i = 0; i < 2; ++i) { -SDOperand Arg = N->getOperand(i); -if (Arg.getOpcode() == ISD::UNDEF) continue; -assert(isa(Arg) && "Invalid VECTOR_SHUFFLE mask!"); -unsigned Val = cast(Arg)->getValue(); -if (Val >= 4) return false; - } - for (unsigned i = 2; i < 4; ++i) { -SDOperand Arg = N->getOperand(i); -if (Arg.getOpcode() == ISD::UNDEF) continue; -assert(isa(Arg) && "Invalid VECTOR_SHUFFLE mask!"); -unsigned Val = cast(Arg)->getValue(); -if (Val < 4) return false; - } +bool X86::isSHUFPMask(SDNode *N) { + assert(N->getOpcode() == ISD::BUILD_VECTOR); + std::vector Ops(N->op_begin(), N->op_end()); + return ::isSHUFPMask(Ops); +} +/// isCommutedSHUFP - Returns true if the shuffle mask is except +/// the reverse of what x86 shuffles want. x86 shuffles requires the lower +/// half elements to come from vector 1 (which would equal the dest.) and +/// the upper half to come from vector 2. +static bool isCommutedSHUFP(std::vector &Ops) { + unsigned NumElems = Ops.size(); + if (NumElems != 2 && NumElems != 4) return false; + + unsigned Half = NumElems / 2; + for (unsigned i = 0; i < Half; ++i) +if (!isUndefOrInRange(Ops[i], NumElems, NumElems*2)) + return false; + for (unsigned i = Half; i < NumElems; ++i) +if (!isUndefOrInRange(Ops[i], 0, NumElems)) + return false; return true; } +static bool isCommutedSHUFP(SDNode *N) { + assert(N->getOpcode() == ISD::BUILD_VECTOR); + std::vector Ops(N->op_begin(), N->op_end()); + return isCommutedSHUFP(Ops); +} + /// isMOVHLPSMask - Return true if the specified VECTOR_SHUFFLE operand /// specifies a shuffle of elements that is suitable for input to MOVHLPS. bool X86::isMOVHLPSMask(SDNode *N) { @@ -1600,46 +1606,64 @@ /// isUNPCKLMask - Return true if the specified VECTOR_SHUFFLE operand /// specifies a shuffle of elements that is suitable for input to UNPCKL. -bool X86::isUNPCKLMask(SDNode *N) { - assert(N->getOpcode() == ISD::BUILD_VECTOR); - - unsigned NumElems = N->getNumOperands(); +bool static isUNPCKLMask(std::vector &N, bool V2IsSplat = false) { + unsigned NumElems = N.size(); if (NumElems != 2 && NumElems != 4 && NumElems != 8 && NumElems != 16) return false; for (unsigned i = 0, j = 0; i != NumElems; i += 2, ++j) { -SDOperand BitI = N->getOperand(i); -SDOperand BitI1 = N->getOperand(i+1); +SDOperand BitI = N[i]; +SDOperand BitI1 = N[i+1]; if (!isUndefOrEqual(BitI, j)) return false; -if (!isUndefOrEqual(BitI1, j + NumElems)) - return false; +if (V2IsSplat) { + if (isUndefOrEqual(BitI1, NumElems)) +return false; +} else { + if (!isUndefOrEqual(BitI1, j + NumElems)) +return false; +} } return true; } -/// isUNPC
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_shuffle-4.ll added (r1.1) --- Log message: Another shuffle test. For 4-wide shuffle, no more than 3 {p}shuf*. --- Diffs of the changes: (+9 -0) vec_shuffle-4.ll |9 + 1 files changed, 9 insertions(+) Index: llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll:1.1 *** /dev/null Thu Apr 20 04:02:04 2006 --- llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll Thu Apr 20 04:01:54 2006 *** *** 0 --- 1,9 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep shuf | wc -l | grep 3 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep unpck + void %test(<4 x float>* %res, <4 x float>* %A, <4 x float>* %B, <4 x float>* %C) { + %tmp3 = load <4 x float>* %B + %tmp5 = load <4 x float>* %C + %tmp11 = shufflevector <4 x float> %tmp3, <4 x float> %tmp5, <4 x uint> < uint 1, uint 4, uint 1, uint 5 > + store <4 x float> %tmp11, <4 x float>* %res + ret void + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_splat-2.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_splat-2.ll added (r1.1) --- Log message: v16i8 splat with 2 punpcklbw and a single pshufd. --- Diffs of the changes: (+26 -0) vec_splat-2.ll | 26 ++ 1 files changed, 26 insertions(+) Index: llvm/test/Regression/CodeGen/X86/vec_splat-2.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_splat-2.ll:1.1 *** /dev/null Thu Apr 20 04:05:26 2006 --- llvm/test/Regression/CodeGen/X86/vec_splat-2.ll Thu Apr 20 04:05:16 2006 *** *** 0 --- 1,26 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshufd | wc -l | grep 1 + + void %test(<2 x long>* %P, sbyte %x) { + %tmp = insertelement <16 x sbyte> zeroinitializer, sbyte %x, uint 0 ; <<16 x sbyte>> [#uses=1] + %tmp36 = insertelement <16 x sbyte> %tmp, sbyte %x, uint 1 + %tmp38 = insertelement <16 x sbyte> %tmp36, sbyte %x, uint 2 + %tmp40 = insertelement <16 x sbyte> %tmp38, sbyte %x, uint 3 + %tmp42 = insertelement <16 x sbyte> %tmp40, sbyte %x, uint 4 + %tmp44 = insertelement <16 x sbyte> %tmp42, sbyte %x, uint 5 + %tmp46 = insertelement <16 x sbyte> %tmp44, sbyte %x, uint 6 + %tmp48 = insertelement <16 x sbyte> %tmp46, sbyte %x, uint 7 + %tmp50 = insertelement <16 x sbyte> %tmp48, sbyte %x, uint 8 + %tmp52 = insertelement <16 x sbyte> %tmp50, sbyte %x, uint 9 + %tmp54 = insertelement <16 x sbyte> %tmp52, sbyte %x, uint 10 + %tmp56 = insertelement <16 x sbyte> %tmp54, sbyte %x, uint 11 + %tmp58 = insertelement <16 x sbyte> %tmp56, sbyte %x, uint 12 + %tmp60 = insertelement <16 x sbyte> %tmp58, sbyte %x, uint 13 + %tmp62 = insertelement <16 x sbyte> %tmp60, sbyte %x, uint 14 + %tmp64 = insertelement <16 x sbyte> %tmp62, sbyte %x, uint 15 + %tmp68 = load <2 x long>* %P + %tmp71 = cast <2 x long> %tmp68 to <16 x sbyte> + %tmp73 = add <16 x sbyte> %tmp71, %tmp64 + %tmp73 = cast <16 x sbyte> %tmp73 to <2 x long> + store <2 x long> %tmp73, <2 x long>* %P + ret void + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/docs/CommandGuide/llvmc.pod
Changes in directory llvm/docs/CommandGuide: llvmc.pod updated: 1.11 -> 1.12 --- Log message: Add a missing =back to eliminate error. --- Diffs of the changes: (+2 -0) llvmc.pod |2 ++ 1 files changed, 2 insertions(+) Index: llvm/docs/CommandGuide/llvmc.pod diff -u llvm/docs/CommandGuide/llvmc.pod:1.11 llvm/docs/CommandGuide/llvmc.pod:1.12 --- llvm/docs/CommandGuide/llvmc.pod:1.11 Mon Mar 13 23:42:07 2006 +++ llvm/docs/CommandGuide/llvmc.podThu Apr 20 09:17:47 2006 @@ -337,6 +337,8 @@ their own configuration directories in addition to the standard ones to which they may not have write access. +=back + =head2 Unimplemented Options ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.469 -> 1.470 --- Log message: If we can convert the return pointer type into an integer that IntPtrType can be converted to losslessly, we can continue the conversion to a direct call. --- Diffs of the changes: (+4 -2) InstructionCombining.cpp |6 -- 1 files changed, 4 insertions(+), 2 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.469 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.470 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.469 Mon Apr 17 17:26:56 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Thu Apr 20 09:56:47 2006 @@ -5681,8 +5681,10 @@ // Check to see if we are changing the return type... if (OldRetTy != FT->getReturnType()) { if (Callee->isExternal() && -!OldRetTy->isLosslesslyConvertibleTo(FT->getReturnType()) && -!Caller->use_empty()) +!(OldRetTy->isLosslesslyConvertibleTo(FT->getReturnType()) || + (isa(FT->getReturnType()) && + OldRetTy->isLosslesslyConvertibleTo(TD->getIntPtrType( +&& !Caller->use_empty()) return false; // Cannot transform this return value... // If the callsite is an invoke instruction, and the return value is used by ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/call-cast-target.ll
Changes in directory llvm/test/Regression/Transforms/InstCombine: call-cast-target.ll added (r1.1) --- Log message: can we cast between pointers and IntPtrType --- Diffs of the changes: (+15 -0) call-cast-target.ll | 15 +++ 1 files changed, 15 insertions(+) Index: llvm/test/Regression/Transforms/InstCombine/call-cast-target.ll diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/call-cast-target.ll:1.1 *** /dev/null Thu Apr 20 09:54:27 2006 --- llvm/test/Regression/Transforms/InstCombine/call-cast-target.ll Thu Apr 20 09:54:17 2006 *** *** 0 --- 1,15 + ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep call | not grep cast + + target endian = little + target pointersize = 32 + target triple = "i686-pc-linux-gnu" + + implementation ; Functions: + + int %main() { + entry: + %tmp = call int cast (sbyte* (int*)* %ctime to int (int*)*)( int* null ) + ret int %tmp + } + + declare sbyte* %ctime(int*) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/Transforms/Scalar.h
Changes in directory llvm/include/llvm/Transforms: Scalar.h updated: 1.62 -> 1.63 --- Log message: remove a dead prototype --- Diffs of the changes: (+0 -4) Scalar.h |4 1 files changed, 4 deletions(-) Index: llvm/include/llvm/Transforms/Scalar.h diff -u llvm/include/llvm/Transforms/Scalar.h:1.62 llvm/include/llvm/Transforms/Scalar.h:1.63 --- llvm/include/llvm/Transforms/Scalar.h:1.62 Thu Mar 16 15:53:05 2006 +++ llvm/include/llvm/Transforms/Scalar.h Thu Apr 20 10:45:54 2006 @@ -296,10 +296,6 @@ // through conditional branches. FunctionPass *createBlockPlacementPass(); -//===--===// -// This pass does partial redundancy elimination. -FunctionPass *createPREPass(); - } // End llvm namespace #endif ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.470 -> 1.471 --- Log message: Make code match cvs commit message :) --- Diffs of the changes: (+1 -1) InstructionCombining.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.470 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.471 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.470 Thu Apr 20 09:56:47 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Thu Apr 20 10:41:37 2006 @@ -5683,7 +5683,7 @@ if (Callee->isExternal() && !(OldRetTy->isLosslesslyConvertibleTo(FT->getReturnType()) || (isa(FT->getReturnType()) && - OldRetTy->isLosslesslyConvertibleTo(TD->getIntPtrType( + TD->getIntPtrType()->isLosslesslyConvertibleTo(OldRetTy))) && !Caller->use_empty()) return false; // Cannot transform this return value... ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/autoconf/configure.ac
Changes in directory llvm/autoconf: configure.ac updated: 1.220 -> 1.221 --- Log message: Never build SparcV9 --- Diffs of the changes: (+3 -3) configure.ac |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/autoconf/configure.ac diff -u llvm/autoconf/configure.ac:1.220 llvm/autoconf/configure.ac:1.221 --- llvm/autoconf/configure.ac:1.220Wed Apr 19 18:47:16 2006 +++ llvm/autoconf/configure.ac Thu Apr 20 12:01:07 2006 @@ -285,12 +285,12 @@ [Build specific host targets: all,host-only,{target-name} (default=all)]),, enableval=all) case "$enableval" in - all) TARGETS_TO_BUILD="X86 Sparc SparcV9 PowerPC Alpha IA64" ;; + all) TARGETS_TO_BUILD="X86 Sparc PowerPC Alpha IA64" ;; host-only) case "$llvm_cv_target_arch" in x86) TARGETS_TO_BUILD="X86" ;; x86_64) TARGETS_TO_BUILD="X86" ;; - Sparc) TARGETS_TO_BUILD="Sparc SparcV9" ;; + Sparc) TARGETS_TO_BUILD="Sparc" ;; PowerPC) TARGETS_TO_BUILD="PowerPC" ;; Alpha) TARGETS_TO_BUILD="Alpha" ;; IA64)TARGETS_TO_BUILD="IA64" ;; @@ -301,7 +301,7 @@ case "$a_target" in x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; x86_64) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; -sparc) TARGETS_TO_BUILD="Sparc SparcV9 $TARGETS_TO_BUILD" ;; +sparc) TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;; powerpc) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;; alpha) TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;; ia64)TARGETS_TO_BUILD="IA64 $TARGETS_TO_BUILD" ;; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV9/RegAlloc/AllocInfo.h IGNode.cpp IGNode.h InterferenceGraph.cpp InterferenceGraph.h LiveRange.h LiveRangeInfo.cpp LiveRangeInfo.h Makefile PhyRegAlloc.cpp Ph
Changes in directory llvm/lib/Target/SparcV9/RegAlloc: AllocInfo.h (r1.9) removed IGNode.cpp (r1.13) removed IGNode.h (r1.22) removed InterferenceGraph.cpp (r1.26) removed InterferenceGraph.h (r1.9) removed LiveRange.h (r1.32) removed LiveRangeInfo.cpp (r1.61) removed LiveRangeInfo.h (r1.29) removed Makefile (r1.8) removed PhyRegAlloc.cpp (r1.171) removed PhyRegAlloc.h (r1.72) removed RegAllocCommon.h (r1.13) removed RegClass.cpp (r1.34) removed RegClass.h (r1.26) removed --- Log message: This target is no longer built. The ,v files now live in the reoptimizer. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV9/LiveVar/BBLiveVar.cpp BBLiveVar.h FunctionLiveVarInfo.cpp FunctionLiveVarInfo.h Makefile ValueSet.cpp
Changes in directory llvm/lib/Target/SparcV9/LiveVar: BBLiveVar.cpp (r1.51) removed BBLiveVar.h (r1.28) removed FunctionLiveVarInfo.cpp (r1.59) removed FunctionLiveVarInfo.h (r1.3) removed Makefile (r1.6) removed ValueSet.cpp (r1.18) removed --- Log message: This target is no longer built. The ,v files now live in the reoptimizer. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp Makefile SchedGraph.cpp SchedGraph.h SchedGraphCommon.cpp SchedPriorities.cpp SchedPriorities.h
Changes in directory llvm/lib/Target/SparcV9/InstrSched: InstrScheduling.cpp (r1.85) removed Makefile (r1.5) removed SchedGraph.cpp (r1.72) removed SchedGraph.h (r1.42) removed SchedGraphCommon.cpp (r1.11) removed SchedPriorities.cpp (r1.39) removed SchedPriorities.h (r1.30) removed --- Log message: This target is no longer built. The ,v files now live in the reoptimizer. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp DependenceAnalyzer.h MSSchedule.cpp MSSchedule.h MSScheduleSB.cpp MSScheduleSB.h MSchedGraph.cpp MSchedGraph.h MSch
Changes in directory llvm/lib/Target/SparcV9/ModuloScheduling: DependenceAnalyzer.cpp (r1.10) removed DependenceAnalyzer.h (r1.4) removed MSSchedule.cpp (r1.20) removed MSSchedule.h (r1.8) removed MSScheduleSB.cpp (r1.5) removed MSScheduleSB.h (r1.2) removed MSchedGraph.cpp (r1.24) removed MSchedGraph.h (r1.15) removed MSchedGraphSB.cpp (r1.6) removed MSchedGraphSB.h (r1.2) removed Makefile (r1.4) removed ModuloScheduling.cpp (r1.52) removed ModuloScheduling.h (r1.32) removed ModuloSchedulingSuperBlock.cpp (r1.5) removed ModuloSchedulingSuperBlock.h (r1.3) removed --- Log message: This target is no longer built. The ,v files now live in the reoptimizer. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/configure
Changes in directory llvm: configure updated: 1.223 -> 1.224 --- Log message: Never build SparcV9 --- Diffs of the changes: (+3 -3) configure |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/configure diff -u llvm/configure:1.223 llvm/configure:1.224 --- llvm/configure:1.223Wed Apr 19 18:47:16 2006 +++ llvm/configure Thu Apr 20 12:01:19 2006 @@ -3107,12 +3107,12 @@ enableval=all fi; case "$enableval" in - all) TARGETS_TO_BUILD="X86 Sparc SparcV9 PowerPC Alpha IA64" ;; + all) TARGETS_TO_BUILD="X86 Sparc PowerPC Alpha IA64" ;; host-only) case "$llvm_cv_target_arch" in x86) TARGETS_TO_BUILD="X86" ;; x86_64) TARGETS_TO_BUILD="X86" ;; - Sparc) TARGETS_TO_BUILD="Sparc SparcV9" ;; + Sparc) TARGETS_TO_BUILD="Sparc" ;; PowerPC) TARGETS_TO_BUILD="PowerPC" ;; Alpha) TARGETS_TO_BUILD="Alpha" ;; IA64)TARGETS_TO_BUILD="IA64" ;; @@ -3125,7 +3125,7 @@ case "$a_target" in x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; x86_64) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; -sparc) TARGETS_TO_BUILD="Sparc SparcV9 $TARGETS_TO_BUILD" ;; +sparc) TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;; powerpc) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;; alpha) TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;; ia64)TARGETS_TO_BUILD="IA64 $TARGETS_TO_BUILD" ;; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: reopt/lib/Target/
Changes in directory reopt/lib/Target: --- Log message: Directory /home/vadve/shared/InternalCVS/reopt/lib/Target added to the repository --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV9/.cvsignore DecomposeMultiDimRefs.cpp EmitBytecodeToAssembly.cpp InternalGlobalMapper.cpp MachineCodeForInstruction.cpp MachineCodeForInstruction.h MachineFu
Changes in directory llvm/lib/Target/SparcV9: .cvsignore (r1.3) removed DecomposeMultiDimRefs.cpp (r1.4) removed EmitBytecodeToAssembly.cpp (r1.17) removed InternalGlobalMapper.cpp (r1.7) removed MachineCodeForInstruction.cpp (r1.4) removed MachineCodeForInstruction.h (r1.17) removed MachineFunctionInfo.cpp (r1.4) removed MachineFunctionInfo.h (r1.11) removed MachineInstrAnnot.h (r1.17) removed Makefile (r1.54) removed MappingInfo.cpp (r1.23) removed MappingInfo.h (r1.12) removed SparcV9.td (r1.38) removed SparcV9AsmPrinter.cpp (r1.130) removed SparcV9BurgISel.cpp (r1.27) removed SparcV9BurgISel.h (r1.2) removed SparcV9CodeEmitter.cpp (r1.82) removed SparcV9CodeEmitter.h (r1.20) removed SparcV9FrameInfo.cpp (r1.8) removed SparcV9FrameInfo.h (r1.10) removed SparcV9InstrForest.h (r1.4) removed SparcV9InstrInfo.h (r1.11) removed SparcV9InstrInfo.td (r1.2) removed SparcV9Internals.h (r1.122) removed SparcV9JITInfo.cpp (r1.4) removed SparcV9JITInfo.h (r1.10) removed SparcV9PeepholeOpts.cpp (r1.27) removed SparcV9PreSelection.cpp (r1.44) removed SparcV9PrologEpilogInserter.cpp (r1.49) removed SparcV9RegClassInfo.cpp (r1.42) removed SparcV9RegClassInfo.h (r1.31) removed SparcV9RegInfo.cpp (r1.143) removed SparcV9RegInfo.h (r1.20) removed SparcV9RegisterInfo.cpp (r1.13) removed SparcV9RegisterInfo.h (r1.12) removed SparcV9RegisterInfo.td (r1.6) removed SparcV9Relocations.h (r1.2) removed SparcV9SchedInfo.cpp (r1.15) removed SparcV9StackSlots.cpp (r1.15) removed SparcV9TargetMachine.cpp (r1.145) removed SparcV9TargetMachine.h (r1.16) removed SparcV9TmpInstr.cpp (r1.7) removed SparcV9TmpInstr.h (r1.4) removed SparcV9_F2.td (r1.11) removed SparcV9_F3.td (r1.20) removed SparcV9_F4.td (r1.13) removed --- Log message: This target is no longer built. The ,v files now live in the reoptimizer. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV9/SparcV9.burg.in SparcV9Instr.def
Changes in directory llvm/lib/Target/SparcV9: SparcV9.burg.in (r1.15) removed SparcV9Instr.def (r1.29) removed --- Log message: This target is no longer built. The ,v files now live in the reoptimizer. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llc/Makefile
Changes in directory llvm/tools/llc: Makefile updated: 1.79 -> 1.80 --- Log message: Never link in sparcv9 --- Diffs of the changes: (+0 -10) Makefile | 10 -- 1 files changed, 10 deletions(-) Index: llvm/tools/llc/Makefile diff -u llvm/tools/llc/Makefile:1.79 llvm/tools/llc/Makefile:1.80 --- llvm/tools/llc/Makefile:1.79Thu Feb 16 15:10:57 2006 +++ llvm/tools/llc/Makefile Thu Apr 20 12:07:46 2006 @@ -23,16 +23,6 @@ USEDLIBS += LLVMCBackend endif -# Check for Sparc target -ifneq ($(strip $(filter SparcV9,$(TARGETS_TO_BUILD))),) -USEDLIBS += \ - LLVMSparcV9ModuloSched \ - LLVMSparcV9 \ - LLVMSparcV9RegAlloc \ - LLVMSparcV9InstrSched \ - LLVMSparcV9LiveVar -endif - ifneq ($(strip $(filter Sparc,$(TARGETS_TO_BUILD))),) USEDLIBS += LLVMSparc endif ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/SparcV9/.cvsignore
Changes in directory llvm/test/Regression/CodeGen/SparcV9: .cvsignore (r1.1) removed --- Log message: allow this dir to get pruned --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/SparcV9/2004-06-10-SpillNull.llx 2004-08-22-CallNull.llx 2004-12-13-MallocCrash.ll 2005-04-09-GEP-Crash.ll 2005-05-11-DecomposeConstantExprCrash.ll dg
Changes in directory llvm/test/Regression/CodeGen/SparcV9: 2004-06-10-SpillNull.llx (r1.1) removed 2004-08-22-CallNull.llx (r1.2) removed 2004-12-13-MallocCrash.ll (r1.1) removed 2005-04-09-GEP-Crash.ll (r1.1) removed 2005-05-11-DecomposeConstantExprCrash.ll (r1.1) removed dg.exp (r1.3) removed --- Log message: Remove this target's reg tests --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CFrontend/2005-02-20-AggregateSAVEEXPR.c
Changes in directory llvm/test/Regression/CFrontend: 2005-02-20-AggregateSAVEEXPR.c updated: 1.3 -> 1.4 --- Log message: Fails with all sparcs --- Diffs of the changes: (+1 -1) 2005-02-20-AggregateSAVEEXPR.c |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/test/Regression/CFrontend/2005-02-20-AggregateSAVEEXPR.c diff -u llvm/test/Regression/CFrontend/2005-02-20-AggregateSAVEEXPR.c:1.3 llvm/test/Regression/CFrontend/2005-02-20-AggregateSAVEEXPR.c:1.4 --- llvm/test/Regression/CFrontend/2005-02-20-AggregateSAVEEXPR.c:1.3 Tue Nov 8 15:11:32 2005 +++ llvm/test/Regression/CFrontend/2005-02-20-AggregateSAVEEXPR.c Thu Apr 20 12:43:41 2006 @@ -1,6 +1,6 @@ // RUN: %llvmgcc %s -o /dev/null -S // Note: -// We fail this on SparcV9 because the C library seems to be missing complex.h +// We fail this on Sparc because the C library seems to be missing complex.h // and the corresponding C99 complex support. // // We could modify the test to use only GCC extensions, but I don't know if ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/docs/CodeGenerator.html GettingStarted.html UsingLibraries.html
Changes in directory llvm/docs: CodeGenerator.html updated: 1.29 -> 1.30 GettingStarted.html updated: 1.130 -> 1.131 UsingLibraries.html updated: 1.21 -> 1.22 --- Log message: Remove V9 --- Diffs of the changes: (+5 -72) CodeGenerator.html | 13 --- GettingStarted.html |6 ++--- UsingLibraries.html | 58 3 files changed, 5 insertions(+), 72 deletions(-) Index: llvm/docs/CodeGenerator.html diff -u llvm/docs/CodeGenerator.html:1.29 llvm/docs/CodeGenerator.html:1.30 --- llvm/docs/CodeGenerator.html:1.29 Mon Mar 13 23:39:39 2006 +++ llvm/docs/CodeGenerator.htmlThu Apr 20 12:42:23 2006 @@ -168,17 +168,6 @@ but could be required for radically different targets that do not fit into the LLVM machine description model: programmable FPGAs for example. -Important Note: For historical reasons, the LLVM SparcV9 code -generator uses almost entirely different code paths than described in this -document. For this reason, there are some deprecated interfaces (such as -TargetSchedInfo), which are only used by the -V9 backend and should not be used by any other targets. Also, all code in the -lib/Target/SparcV9 directory and subdirectories should be considered -deprecated, and should not be used as the basis for future code generator work. -The SparcV9 backend is slowly being merged into the rest of the -target-independent code generators, but this is a low-priority process with no -predictable completion date. - @@ -1297,7 +1286,7 @@ mailto:[EMAIL PROTECTED]">Chris Lattner http://llvm.org";>The LLVM Compiler Infrastructure - Last modified: $Date: 2006/03/14 05:39:39 $ + Last modified: $Date: 2006/04/20 17:42:23 $ Index: llvm/docs/GettingStarted.html diff -u llvm/docs/GettingStarted.html:1.130 llvm/docs/GettingStarted.html:1.131 --- llvm/docs/GettingStarted.html:1.130 Thu Apr 20 00:08:23 2006 +++ llvm/docs/GettingStarted.html Thu Apr 20 12:42:23 2006 @@ -1155,8 +1155,8 @@ llvm/lib/Target/ This directory contains files that describe various target architectures - for code generation. For example, the llvm/lib/Target/SparcV9 - directory holds the Sparc machine description while + for code generation. For example, the llvm/lib/Target/X86 + directory holds the X86 machine description while llvm/lib/Target/CBackend implements the LLVM-to-C converter. llvm/lib/CodeGen/ @@ -1541,7 +1541,7 @@ mailto:[EMAIL PROTECTED]">Chris Lattner http://llvm.x10sys.com/rspencer/";>Reid Spencer http://llvm.org";>The LLVM Compiler Infrastructure - Last modified: $Date: 2006/04/20 05:08:23 $ + Last modified: $Date: 2006/04/20 17:42:23 $ Index: llvm/docs/UsingLibraries.html diff -u llvm/docs/UsingLibraries.html:1.21 llvm/docs/UsingLibraries.html:1.22 --- llvm/docs/UsingLibraries.html:1.21 Wed Apr 19 23:57:19 2006 +++ llvm/docs/UsingLibraries.html Thu Apr 20 12:42:23 2006 @@ -130,16 +130,6 @@ Skeleton for a code generation backend. LLVMSparc.o Code generation for Sparc. - LLVMSparcV9.o -Code generation for SparcV9. - LLVMSparcV9RegAlloc.a .o -Graph-coloring register allocator for SparcV9. - LLVMSparcV9InstrSched.o -Instruction scheduling for SparcV9. - LLVMSparcV9LiveVar.o -Live variable analysis SparcV9. - LLVMSparcV9ModuloSched.o -Modulo scheduling for SparcV9. LLVMTarget.a .o Generic code generation utilities. LLVMX86.o @@ -221,14 +211,6 @@ libLLVMTransformUtils.a LLVMCore.o - libLLVMSparcV9RegAlloc.a -libLLVMAnalysis.a -libLLVMSupport.a -LLVMCodeGen.o -LLVMCore.o -LLVMSparcV9LiveVar.o -LLVMSparcV9.o - libLLVMSupport.a libLLVMSystem.a LLVMbzip2.o @@ -378,44 +360,6 @@ LLVMCodeGen.o LLVMCore.o - LLVMSparcV9.o -libLLVMScalarOpts.a -libLLVMSparcV9RegAlloc.a -libLLVMSupport.a -libLLVMTarget.a -LLVMBCWriter.o -LLVMCodeGen.o -LLVMCore.o -LLVMSparcV9InstrSched.o -LLVMSparcV9ModuloSched.o - - LLVMSparcV9InstrSched.o -libLLVMSupport.a -LLVMCodeGen.o -LLVMCore.o -LLVMSparcV9LiveVar.o -LLVMSparcV9.o - - LLVMSparcV9LiveVar.o -libLLVMSupport.a -LLVMCodeGen.o -LLVMCore.o - - LLVMSparcV9ModuloSched.o -libLLVMSupport.a -libLLVMTarget.a -LLVMCodeGen.o -LLVMCore.o -LLVMSparcV9.o - - LLVMSparcV9RegAlloc.o -libLLVMAnalysis.a -libLLVMSupport.a -LLVMCodeGen.o -LLVMCore.o -LLVMSparcV9LiveVar.o -LLVMSparcV9.o - LLVMSupport.o libLLVMSystem.a LLVMbzip2.o @@ -499,7 +443,7 @@ mailto:[EMAIL PROTECTED]">Reid Spencer http://llvm.org";>The LLVM Compiler Infrastructure -Last modified: $Date: 2006/04/20 04:57:19 $ +Last modified: $Date: 2006/04/20 17:42:23 $
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_insert.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_insert.ll added (r1.1) --- Log message: Vector insert test case. --- Diffs of the changes: (+19 -0) vec_insert.ll | 19 +++ 1 files changed, 19 insertions(+) Index: llvm/test/Regression/CodeGen/X86/vec_insert.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_insert.ll:1.1 *** /dev/null Thu Apr 20 12:50:20 2006 --- llvm/test/Regression/CodeGen/X86/vec_insert.ll Thu Apr 20 12:50:10 2006 *** *** 0 --- 1,19 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss | wc -l | grep 1 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pinsrw | wc -l | grep 2 + + void %test(<4 x float>* %F, int %I) { + %tmp = load <4 x float>* %F + %f = cast int %I to float + %tmp1 = insertelement <4 x float> %tmp, float %f, uint 0 + %tmp18 = add <4 x float> %tmp1, %tmp1 + store <4 x float> %tmp18, <4 x float>* %F + ret void + } + + void %test2(<4 x float>* %F, int %I, float %g) { + %tmp = load <4 x float>* %F + %f = cast int %I to float + %tmp1 = insertelement <4 x float> %tmp, float %f, uint 2 + store <4 x float> %tmp1, <4 x float>* %F + ret void + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/Makefile.rules
Changes in directory llvm: Makefile.rules updated: 1.363 -> 1.364 --- Log message: Remove V9 jit support --- Diffs of the changes: (+0 -15) Makefile.rules | 15 --- 1 files changed, 15 deletions(-) Index: llvm/Makefile.rules diff -u llvm/Makefile.rules:1.363 llvm/Makefile.rules:1.364 --- llvm/Makefile.rules:1.363 Wed Apr 19 13:45:29 2006 +++ llvm/Makefile.rules Thu Apr 20 12:52:00 2006 @@ -608,21 +608,6 @@ JIT_LIBS += LLVMX86 LLVMSelectionDAG endif -# You can enable the SparcV9 JIT on a non-SparcV9 host by setting the flag -# ENABLE_SPARCV9_JIT on the make command line. If not, it will still be -# enabled automagically on an SparcV9 host. -ifeq ($(ARCH), Sparc) - ENABLE_SPARCV9_JIT = 1 -endif - -# What the Sparc JIT requires -ifdef ENABLE_SPARCV9_JIT - JIT_LIBS += LLVMSparcV9 LLVMSparcV9ModuloSched LLVMSparcV9InstrSched \ - LLVMSparcV9LiveVar LLVMInstrumentation.a \ - LLVMBCWriter LLVMTransforms.a LLVMipo.a LLVMipa.a \ - LLVMDataStructure LLVMSparcV9RegAlloc -endif - # You can enable the PowerPC JIT on a non-PowerPC host by setting the flag # ENABLE_PPC_JIT on the make command line. If not, it will still be # enabled automagically on an PowerPC host. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_extract.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_extract.ll added (r1.1) --- Log message: Vector extract element test case. --- Diffs of the changes: (+25 -0) vec_extract.ll | 25 + 1 files changed, 25 insertions(+) Index: llvm/test/Regression/CodeGen/X86/vec_extract.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_extract.ll:1.1 *** /dev/null Thu Apr 20 12:59:40 2006 --- llvm/test/Regression/CodeGen/X86/vec_extract.ll Thu Apr 20 12:59:30 2006 *** *** 0 --- 1,25 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss| wc -l | grep 3 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep unpckhps | wc -l | grep 1 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshufd | wc -l | grep 1 + + void %test1(<4 x float>* %F, float* %f) { + %tmp = load <4 x float>* %F + %tmp7 = add <4 x float> %tmp, %tmp + %tmp2 = extractelement <4 x float> %tmp7, uint 0 + store float %tmp2, float* %f + ret void + } + + float %test2(<4 x float>* %F, float* %f) { + %tmp = load <4 x float>* %F + %tmp7 = add <4 x float> %tmp, %tmp + %tmp2 = extractelement <4 x float> %tmp7, uint 2 + ret float %tmp2 + } + + void %test2(float* %R, <4 x float>* %P1) { + %X = load <4 x float>* %P1 + %tmp = extractelement <4 x float> %X, uint 2 + store float %tmp, float* %R + ret void + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineInstr.h
Changes in directory llvm/include/llvm/CodeGen: MachineInstr.h updated: 1.166 -> 1.167 --- Log message: Remove some of the obvious v9-specific cruft --- Diffs of the changes: (+1 -136) MachineInstr.h | 137 - 1 files changed, 1 insertion(+), 136 deletions(-) Index: llvm/include/llvm/CodeGen/MachineInstr.h diff -u llvm/include/llvm/CodeGen/MachineInstr.h:1.166 llvm/include/llvm/CodeGen/MachineInstr.h:1.167 --- llvm/include/llvm/CodeGen/MachineInstr.h:1.166 Mon Apr 17 16:35:08 2006 +++ llvm/include/llvm/CodeGen/MachineInstr.hThu Apr 20 13:09:13 2006 @@ -398,7 +398,6 @@ class MachineInstr { short Opcode; // the opcode - unsigned char numImplicitRefs;// number of implicit operands std::vector operands; // the operands MachineInstr* prev, *next;// links for our intrusive list MachineBasicBlock* parent;// pointer to the owning basic block @@ -442,7 +441,7 @@ /// Access to explicit operands of the instruction. /// - unsigned getNumOperands() const { return operands.size() - numImplicitRefs; } + unsigned getNumOperands() const { return operands.size(); } const MachineOperand& getOperand(unsigned i) const { assert(i < getNumOperands() && "getOperand() out of range!"); @@ -453,48 +452,6 @@ return operands[i]; } - // - // Access to explicit or implicit operands of the instruction - // This returns the i'th entry in the operand vector. - // That represents the i'th explicit operand or the (i-N)'th implicit operand, - // depending on whether i < N or i >= N. - // - const MachineOperand& getExplOrImplOperand(unsigned i) const { -assert(i < operands.size() && "getExplOrImplOperand() out of range!"); -return (i < getNumOperands()? getOperand(i) -: getImplicitOp(i - getNumOperands())); - } - - // - // Access to implicit operands of the instruction - // - unsigned getNumImplicitRefs() const{ return numImplicitRefs; } - - MachineOperand& getImplicitOp(unsigned i) { -assert(i < numImplicitRefs && "implicit ref# out of range!"); -return operands[i + operands.size() - numImplicitRefs]; - } - const MachineOperand& getImplicitOp(unsigned i) const { -assert(i < numImplicitRefs && "implicit ref# out of range!"); -return operands[i + operands.size() - numImplicitRefs]; - } - - Value* getImplicitRef(unsigned i) { -return getImplicitOp(i).getVRegValue(); - } - const Value* getImplicitRef(unsigned i) const { -return getImplicitOp(i).getVRegValue(); - } - - void addImplicitRef(Value* V, bool isDef = false, bool isDefAndUse = false) { -++numImplicitRefs; -addRegOperand(V, isDef, isDefAndUse); - } - void setImplicitRef(unsigned i, Value* V) { -assert(i < getNumImplicitRefs() && "setImplicitRef() out of range!"); -SetMachineOperandVal(i + getNumOperands(), - MachineOperand::MO_VirtualRegister, V); - } /// clone - Create a copy of 'this' instruction that is identical in /// all ways except the the instruction has no parent, prev, or next. @@ -517,16 +474,6 @@ void dump() const; friend std::ostream& operator<<(std::ostream& os, const MachineInstr& minstr); - // Define iterators to access the Value operands of the Machine Instruction. - // Note that these iterators only enumerate the explicit operands. - // begin() and end() are defined to produce these iterators. NOTE, these are - // SparcV9 specific! - // - template class ValOpIterator; - typedef ValOpIterator const_val_op_iterator; - typedef ValOpIterator< MachineInstr*, Value*> val_op_iterator; - - //======// // Accessors to add operands when building up machine instructions // @@ -683,12 +630,6 @@ // // FIXME: Move this stuff to MachineOperand itself! - /// replace - Support to rewrite a machine instruction in place: for now, - /// simply replace() and then set new operands with Set.*Operand methods - /// below. - /// - void replace(short Opcode, unsigned numOperands); - /// setOpcode - Replace the opcode of the current instruction with a new one. /// void setOpcode(unsigned Op) { Opcode = Op; } @@ -711,81 +652,6 @@ int intValue); void SetMachineOperandReg(unsigned i, int regNum); - - - unsigned substituteValue(const Value* oldVal, Value* newVal, - bool defsOnly, bool notDefsAndUses, - bool& someArgsWereIgnored); - - // SetRegForOperand - - // SetRegForImplicitRef - - // Mark an explicit or implicit operand with its allocated physical register. - // - void SetRegForOperand(unsigned i, int regNum); - void SetRegForImplicitRef(unsigned i, int regNum); - - // - // Iterator to enumerate machine operands. NOTE, this is SPARCV9 specific! - // - template - c
[llvm-commits] CVS: llvm/lib/CodeGen/MachineInstr.cpp
Changes in directory llvm/lib/CodeGen: MachineInstr.cpp updated: 1.108 -> 1.109 --- Log message: Remove some of the obvious V9-specific cruft --- Diffs of the changes: (+2 -101) MachineInstr.cpp | 103 +-- 1 files changed, 2 insertions(+), 101 deletions(-) Index: llvm/lib/CodeGen/MachineInstr.cpp diff -u llvm/lib/CodeGen/MachineInstr.cpp:1.108 llvm/lib/CodeGen/MachineInstr.cpp:1.109 --- llvm/lib/CodeGen/MachineInstr.cpp:1.108 Mon Apr 17 16:35:41 2006 +++ llvm/lib/CodeGen/MachineInstr.cpp Thu Apr 20 13:08:53 2006 @@ -39,7 +39,6 @@ // Constructor for instructions with variable #operands MachineInstr::MachineInstr(short opcode, unsigned numOperands) : Opcode(opcode), -numImplicitRefs(0), operands(numOperands, MachineOperand()), parent(0) { // Make sure that we get added to a machine basicblock @@ -52,7 +51,7 @@ /// Eventually, the "resizing" ctors will be phased out. /// MachineInstr::MachineInstr(short opcode, unsigned numOperands, bool XX, bool YY) - : Opcode(opcode), numImplicitRefs(0), parent(0) { + : Opcode(opcode), parent(0) { operands.reserve(numOperands); // Make sure that we get added to a machine basicblock LeakDetector::addGarbageObject(this); @@ -63,7 +62,7 @@ /// MachineInstr::MachineInstr(MachineBasicBlock *MBB, short opcode, unsigned numOperands) - : Opcode(opcode), numImplicitRefs(0), parent(0) { + : Opcode(opcode), parent(0) { assert(MBB && "Cannot use inserting ctor with null basic block!"); operands.reserve(numOperands); // Make sure that we get added to a machine basicblock @@ -75,7 +74,6 @@ /// MachineInstr::MachineInstr(const MachineInstr &MI) { Opcode = MI.getOpcode(); - numImplicitRefs = MI.getNumImplicitRefs(); operands.reserve(MI.getNumOperands()); // Add operands @@ -118,18 +116,6 @@ return false; } -/// replace - Support for replacing opcode and operands of a MachineInstr in -/// place. This only resets the size of the operand vector and initializes it. -/// The new operands must be set explicitly later. -/// -void MachineInstr::replace(short opcode, unsigned numOperands) { - assert(getNumImplicitRefs() == 0 && - "This is probably broken because implicit refs are going to be lost."); - Opcode = opcode; - operands.clear(); - operands.resize(numOperands, MachineOperand()); -} - void MachineInstr::SetMachineOperandVal(unsigned i, MachineOperand::MachineOperandType opTy, Value* V) { @@ -162,62 +148,6 @@ operands[i].extra.regNum = regNum; } -// Used only by the SPARC back-end. -void MachineInstr::SetRegForOperand(unsigned i, int regNum) { - assert(i < getNumOperands()); // must be explicit op - operands[i].setRegForValue(regNum); -} - -// Used only by the SPARC back-end. -void MachineInstr::SetRegForImplicitRef(unsigned i, int regNum) { - getImplicitOp(i).setRegForValue(regNum); -} - -/// substituteValue - Substitute all occurrences of Value* oldVal with newVal -/// in all operands and all implicit refs. If defsOnly == true, substitute defs -/// only. -/// -/// FIXME: Fold this into its single caller, at SparcInstrSelection.cpp:2865, -/// or make it a static function in that file. -/// -unsigned -MachineInstr::substituteValue(const Value* oldVal, Value* newVal, - bool defsOnly, bool notDefsAndUses, - bool& someArgsWereIgnored) -{ - assert((!defsOnly || !notDefsAndUses) && - "notDefsAndUses is irrelevant if defsOnly == true."); - - unsigned numSubst = 0; - - // Substitute operands - for (MachineInstr::val_op_iterator O = begin(), E = end(); O != E; ++O) -if (*O == oldVal) - if (!defsOnly || - notDefsAndUses && (O.isDef() && !O.isUse()) || - !notDefsAndUses && O.isDef()) - { -O.getMachineOperand().contents.value = newVal; -++numSubst; - } else -someArgsWereIgnored = true; - - // Substitute implicit refs - for (unsigned i = 0, N = getNumImplicitRefs(); i < N; ++i) -if (getImplicitRef(i) == oldVal) { - MachineOperand Op = getImplicitOp(i); - if (!defsOnly || - notDefsAndUses && (Op.isDef() && !Op.isUse()) || - !notDefsAndUses && Op.isDef()) - { -Op.contents.value = newVal; -++numSubst; - } else -someArgsWereIgnored = true; -} - return numSubst; -} - void MachineInstr::dump() const { std::cerr << " " << *this; } @@ -357,20 +287,6 @@ OS << ""; } - // code for printing implicit references - if (getNumImplicitRefs()) { -OS << "\tImplicitRefs: "; -for (unsigned i = 0, e = getNumImplicitRefs(); i != e; ++i) { - OS << "\t"; - OutputValue(OS, getImplicitRef(i)); - if (getImplicitOp(i).isDef()) -if (getImplicitOp(i).isUse()) - OS << ""; -else -
[llvm-commits] CVS: llvm/lib/Target/TargetSchedInfo.cpp
Changes in directory llvm/lib/Target: TargetSchedInfo.cpp (r1.24) removed --- Log message: Remove this obsolete file --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/Target/TargetMachine.h TargetSchedInfo.h
Changes in directory llvm/include/llvm/Target: TargetMachine.h updated: 1.62 -> 1.63 TargetSchedInfo.h (r1.36) removed --- Log message: Remove some obsolete interfaces --- Diffs of the changes: (+0 -6) TargetMachine.h |6 -- 1 files changed, 6 deletions(-) Index: llvm/include/llvm/Target/TargetMachine.h diff -u llvm/include/llvm/Target/TargetMachine.h:1.62 llvm/include/llvm/Target/TargetMachine.h:1.63 --- llvm/include/llvm/Target/TargetMachine.h:1.62 Wed Mar 22 23:41:41 2006 +++ llvm/include/llvm/Target/TargetMachine.hThu Apr 20 13:17:21 2006 @@ -25,8 +25,6 @@ class TargetInstrDescriptor; class TargetJITInfo; class TargetLowering; -class TargetSchedInfo; -class SparcV9RegInfo; class TargetFrameInfo; class MachineCodeEmitter; class MRegisterInfo; @@ -133,10 +131,6 @@ return InstrItineraryData(); } - // These are deprecated interfaces. - virtual const TargetSchedInfo*getSchedInfo() const { return 0; } - virtual const SparcV9RegInfo *getRegInfo() const { return 0; } - /// getRelocationModel - Returns the code generation relocation model. The /// choices are static, PIC, and dynamic-no-pic, and target default. static Reloc::Model getRelocationModel(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/TableGen/InstrInfoEmitter.cpp
Changes in directory llvm/utils/TableGen: InstrInfoEmitter.cpp updated: 1.35 -> 1.36 --- Log message: Don't fill in fields that no longer exist. --- Diffs of the changes: (+1 -2) InstrInfoEmitter.cpp |3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) Index: llvm/utils/TableGen/InstrInfoEmitter.cpp diff -u llvm/utils/TableGen/InstrInfoEmitter.cpp:1.35 llvm/utils/TableGen/InstrInfoEmitter.cpp:1.36 --- llvm/utils/TableGen/InstrInfoEmitter.cpp:1.35 Thu Jan 26 19:44:09 2006 +++ llvm/utils/TableGen/InstrInfoEmitter.cppThu Apr 20 13:32:22 2006 @@ -181,8 +181,7 @@ unsigned ItinClass = !IsItineraries ? 0 : ItinClassNumber(Inst.TheDef->getValueAsDef("Itinerary")->getName()); - OS << "\",\t" << NumOperands << ", -1, 0, false, 0, 0, " - << ItinClass + OS << "\",\t" << NumOperands << ", " << ItinClass << ", 0"; // Emit all of the target indepedent flags... ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/Target/TargetInstrInfo.h
Changes in directory llvm/include/llvm/Target: TargetInstrInfo.h updated: 1.84 -> 1.85 --- Log message: Remove a bunch of dead stuff, shrinkifying TargetInstrDescriptor significantly. --- Diffs of the changes: (+12 -79) TargetInstrInfo.h | 91 +++--- 1 files changed, 12 insertions(+), 79 deletions(-) Index: llvm/include/llvm/Target/TargetInstrInfo.h diff -u llvm/include/llvm/Target/TargetInstrInfo.h:1.84 llvm/include/llvm/Target/TargetInstrInfo.h:1.85 --- llvm/include/llvm/Target/TargetInstrInfo.h:1.84 Sun Mar 5 17:48:51 2006 +++ llvm/include/llvm/Target/TargetInstrInfo.h Thu Apr 20 13:32:02 2006 @@ -44,39 +44,37 @@ // Designed to initialized statically. // -const unsigned M_NOP_FLAG = 1 << 0; -const unsigned M_BRANCH_FLAG = 1 << 1; -const unsigned M_CALL_FLAG = 1 << 2; -const unsigned M_RET_FLAG = 1 << 3; -const unsigned M_BARRIER_FLAG = 1 << 4; -const unsigned M_DELAY_SLOT_FLAG = 1 << 5; -const unsigned M_CC_FLAG = 1 << 6; -const unsigned M_LOAD_FLAG = 1 << 7; -const unsigned M_STORE_FLAG= 1 << 8; +const unsigned M_BRANCH_FLAG = 1 << 0; +const unsigned M_CALL_FLAG = 1 << 1; +const unsigned M_RET_FLAG = 1 << 2; +const unsigned M_BARRIER_FLAG = 1 << 3; +const unsigned M_DELAY_SLOT_FLAG = 1 << 4; +const unsigned M_LOAD_FLAG = 1 << 5; +const unsigned M_STORE_FLAG= 1 << 6; // M_2_ADDR_FLAG - 3-addr instructions which really work like 2-addr ones. -const unsigned M_2_ADDR_FLAG = 1 << 9; +const unsigned M_2_ADDR_FLAG = 1 << 7; // M_CONVERTIBLE_TO_3_ADDR - This is a M_2_ADDR_FLAG instruction which can be // changed into a 3-address instruction if the first two operands cannot be // assigned to the same register. The target must implement the // TargetInstrInfo::convertToThreeAddress method for this instruction. -const unsigned M_CONVERTIBLE_TO_3_ADDR = 1 << 10; +const unsigned M_CONVERTIBLE_TO_3_ADDR = 1 << 8; // This M_COMMUTABLE - is a 2- or 3-address instruction (of the form X = op Y, // Z), which produces the same result if Y and Z are exchanged. -const unsigned M_COMMUTABLE= 1 << 11; +const unsigned M_COMMUTABLE= 1 << 9; // M_TERMINATOR_FLAG - Is this instruction part of the terminator for a basic // block? Typically this is things like return and branch instructions. // Various passes use this to insert code into the bottom of a basic block, but // before control flow occurs. -const unsigned M_TERMINATOR_FLAG = 1 << 12; +const unsigned M_TERMINATOR_FLAG = 1 << 10; // M_USES_CUSTOM_DAG_SCHED_INSERTION - Set if this instruction requires custom // insertion support when the DAG scheduler is inserting it into a machine basic // block. -const unsigned M_USES_CUSTOM_DAG_SCHED_INSERTION = 1 << 13; +const unsigned M_USES_CUSTOM_DAG_SCHED_INSERTION = 1 << 11; /// TargetOperandInfo - This holds information about one operand of a machine /// instruction, indicating the register class for register operands, etc. @@ -95,12 +93,6 @@ public: const char *Name; // Assembly language mnemonic for the opcode. int numOperands; // Number of args; -1 if variable #args - int resultPos; // Position of the result; -1 if no result - unsignedmaxImmedConst; // Largest +ve constant in IMMED field or 0. - boolimmedIsSignExtended; // Is IMMED field sign-extended? If so, - // smallest -ve value is -(maxImmedConst+1). - unsignednumDelaySlots; // Number of delay slots after instruction - unsignedlatency; // Latency in machine cycles InstrSchedClass schedClass;// enum identifying instr sched class unsignedFlags; // flags identifying machine instr class unsignedTSFlags; // Target Specific Flag values @@ -280,71 +272,12 @@ assert(0 && "Target didn't implement insertNoop!"); abort(); } - - //- - // Code generation support for creating individual machine instructions - // - // WARNING: These methods are Sparc specific - // - // DO NOT USE ANY OF THESE METHODS THEY ARE DEPRECATED! - // - //- - - unsigned getNumDelaySlots(MachineOpCode Opcode) const { -return get(Opcode).numDelaySlots; - } - bool isCCInstr(MachineOpCode Opcode) const { -return get(Opcode).Flags & M_CC_FLAG; - } - bool isNop(MachineOpCode Opcode) const { -return get(Opcode).Flags & M_NOP_FLAG; - } /// hasDelaySlot - Returns true if the specified instruction has a delay slot /// which must be filled by the code generator. bool hasDelaySlot(unsigned Opcode) const { return get(Opcode).Fl
[llvm-commits] CVS: llvm/lib/Target/TargetInstrInfo.cpp
Changes in directory llvm/lib/Target: TargetInstrInfo.cpp updated: 1.16 -> 1.17 --- Log message: remove some v9 specific code --- Diffs of the changes: (+0 -20) TargetInstrInfo.cpp | 20 1 files changed, 20 deletions(-) Index: llvm/lib/Target/TargetInstrInfo.cpp diff -u llvm/lib/Target/TargetInstrInfo.cpp:1.16 llvm/lib/Target/TargetInstrInfo.cpp:1.17 --- llvm/lib/Target/TargetInstrInfo.cpp:1.16Fri Apr 22 12:49:49 2005 +++ llvm/lib/Target/TargetInstrInfo.cpp Thu Apr 20 13:33:11 2006 @@ -38,26 +38,6 @@ TargetInstrDescriptors = NULL; // reset global variable } -// FIXME: SPARCV9 SPECIFIC! -bool TargetInstrInfo::constantFitsInImmedField(MachineOpCode opCode, - int64_t intValue) const { - // First, check if opCode has an immed field. - bool isSignExtended; - uint64_t maxImmedValue = maxImmedConstant(opCode, isSignExtended); - if (maxImmedValue != 0) -{ - // NEED TO HANDLE UNSIGNED VALUES SINCE THEY MAY BECOME MUCH - // SMALLER AFTER CASTING TO SIGN-EXTENDED int, short, or char. - // See CreateUIntSetInstruction in SparcInstrInfo.cpp. - - // Now check if the constant fits - if (intValue <= (int64_t) maxImmedValue && - intValue >= -((int64_t) maxImmedValue+1)) -return true; -} - - return false; -} // commuteInstruction - The default implementation of this method just exchanges // operand 1 and 2. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/MachineInstr.cpp
Changes in directory llvm/lib/CodeGen: MachineInstr.cpp updated: 1.109 -> 1.110 --- Log message: This field no longer exists --- Diffs of the changes: (+0 -2) MachineInstr.cpp |2 -- 1 files changed, 2 deletions(-) Index: llvm/lib/CodeGen/MachineInstr.cpp diff -u llvm/lib/CodeGen/MachineInstr.cpp:1.109 llvm/lib/CodeGen/MachineInstr.cpp:1.110 --- llvm/lib/CodeGen/MachineInstr.cpp:1.109 Thu Apr 20 13:08:53 2006 +++ llvm/lib/CodeGen/MachineInstr.cpp Thu Apr 20 13:32:41 2006 @@ -130,8 +130,6 @@ MachineOperand::MachineOperandType opTy, int intValue) { assert(i < getNumOperands()); // must be explicit op - assert(TargetInstrDescriptors[Opcode].resultPos != (int) i && - "immed. constant cannot be defined"); operands[i].opType = opTy; operands[i].contents.value = NULL; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/Makefile
Changes in directory llvm/utils: Makefile updated: 1.13 -> 1.14 --- Log message: Burg not needed any more now that SparcV9 is gone. --- Diffs of the changes: (+1 -1) Makefile |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/utils/Makefile diff -u llvm/utils/Makefile:1.13 llvm/utils/Makefile:1.14 --- llvm/utils/Makefile:1.13Sun Apr 16 19:35:34 2006 +++ llvm/utils/Makefile Thu Apr 20 13:39:19 2006 @@ -8,7 +8,7 @@ ##===--===## LEVEL = .. -DIRS = Burg TableGen fpcmp PerfectShuffle +DIRS = TableGen fpcmp PerfectShuffle EXTRA_DIST := cgiplotNLT.pl check-each-file codegen-diff countloc.sh cvsupdate \ DSAclean.py DSAextract.py emacs findsym.pl GenLibDeps.pl \ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/Burg/Doc/Makefile doc.aux doc.dvi doc.log doc.tex
Changes in directory llvm/utils/Burg/Doc: Makefile (r1.2) removed doc.aux (r1.1) removed doc.dvi (r1.1) removed doc.log (r1.1) removed doc.tex (r1.1) removed --- Log message: Burg not needed any more now that SparcV9 is gone. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/Burg/.cvsignore COPYRIGHT LICENSE.TXT LOG_CHANGES Makefile README b.h be.c burg.shar.gz burs.c closure.c delta.c fe.c fe.h gram.yc item.c lex.c list.c main.c map.c nonte
Changes in directory llvm/utils/Burg: .cvsignore (r1.1) removed COPYRIGHT (r1.1) removed LICENSE.TXT (r1.1) removed LOG_CHANGES (r1.2) removed Makefile (r1.31) removed README (r1.1) removed b.h (r1.3) removed be.c (r1.5) removed burg.shar.gz (r1.1) removed burs.c (r1.2) removed closure.c (r1.3) removed delta.c (r1.2) removed fe.c (r1.2) removed fe.h (r1.4) removed gram.yc (r1.3) removed item.c (r1.2) removed lex.c (r1.3) removed list.c (r1.2) removed main.c (r1.4) removed map.c (r1.3) removed nonterminal.c (r1.3) removed operator.c (r1.2) removed pattern.c (r1.2) removed plank.c (r1.4) removed queue.c (r1.2) removed rule.c (r1.2) removed sample.gr (r1.1) removed string.c (r1.2) removed symtab.c (r1.2) removed table.c (r1.2) removed trim.c (r1.2) removed zalloc.c (r1.4) removed --- Log message: Burg not needed any more now that SparcV9 is gone. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/Makefile.rules
Changes in directory llvm: Makefile.rules updated: 1.364 -> 1.365 --- Log message: Remove traces of Burg utility now that its gone and not needed. --- Diffs of the changes: (+0 -4) Makefile.rules |4 1 files changed, 4 deletions(-) Index: llvm/Makefile.rules diff -u llvm/Makefile.rules:1.364 llvm/Makefile.rules:1.365 --- llvm/Makefile.rules:1.364 Thu Apr 20 12:52:00 2006 +++ llvm/Makefile.rules Thu Apr 20 13:42:24 2006 @@ -269,9 +269,6 @@ ifndef LLVMAS LLVMAS := $(LLVMToolDir)/llvm-as$(EXEEXT) endif -ifndef BURG -BURG := $(LLVMToolDir)/burg$(EXEEXT) -endif ifndef TBLGEN TBLGEN := $(LLVMToolDir)/tblgen$(EXEEXT) endif @@ -407,7 +404,6 @@ ProgInstall = $(INSTALL) $(Install.StripFlag) -m 0755 ScriptInstall = $(INSTALL) -m 0755 DataInstall = $(INSTALL) -m 0644 -Burg = $(BURG) -I $(PROJ_SRC_DIR) TableGen = $(TBLGEN) -I $(PROJ_SRC_DIR) -I$(PROJ_SRC_ROOT)/include Archive = $(AR) $(AR.Flags) LArchive = $(LLVMToolDir)/llvm-ar rcsf ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/docs/MakefileGuide.html
Changes in directory llvm/docs: MakefileGuide.html updated: 1.31 -> 1.32 --- Log message: Remove reference to BURG variable. It no longer exists. --- Diffs of the changes: (+1 -3) MakefileGuide.html |4 +--- 1 files changed, 1 insertion(+), 3 deletions(-) Index: llvm/docs/MakefileGuide.html diff -u llvm/docs/MakefileGuide.html:1.31 llvm/docs/MakefileGuide.html:1.32 --- llvm/docs/MakefileGuide.html:1.31 Sun Apr 9 18:45:38 2006 +++ llvm/docs/MakefileGuide.htmlThu Apr 20 13:44:24 2006 @@ -747,8 +747,6 @@ not. PROJ_SRC_DIR The directory which contains the source files to be built. -BURG -Specifies the path to the burg tool. BZIP2(configured) The path to the bzip2 tool. CC(configured) @@ -1000,7 +998,7 @@ mailto:[EMAIL PROTECTED]">Reid Spencer http://llvm.org";>The LLVM Compiler Infrastructure - Last modified: $Date: 2006/04/09 23:45:38 $ + Last modified: $Date: 2006/04/20 18:44:24 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/docs/GettingStarted.html MakefileGuide.html
Changes in directory llvm/docs: GettingStarted.html updated: 1.131 -> 1.132 MakefileGuide.html updated: 1.32 -> 1.33 --- Log message: Remove more references to Burg. --- Diffs of the changes: (+2 -8) GettingStarted.html |7 +-- MakefileGuide.html |3 +-- 2 files changed, 2 insertions(+), 8 deletions(-) Index: llvm/docs/GettingStarted.html diff -u llvm/docs/GettingStarted.html:1.131 llvm/docs/GettingStarted.html:1.132 --- llvm/docs/GettingStarted.html:1.131 Thu Apr 20 12:42:23 2006 +++ llvm/docs/GettingStarted.html Thu Apr 20 13:46:45 2006 @@ -1352,11 +1352,6 @@ are code generators for parts of LLVM infrastructure. - Burg/ Burg is an instruction selector - generator -- it builds trees on which it then performs pattern-matching to - select instructions according to the patterns the user has specified. Burg - is currently used in the Sparc V9 backend. - codegen-diff codegen-diff is a script that finds differences between code that LLC generates and code that LLI generates. This is a useful tool if you are debugging one of them, @@ -1541,7 +1536,7 @@ mailto:[EMAIL PROTECTED]">Chris Lattner http://llvm.x10sys.com/rspencer/";>Reid Spencer http://llvm.org";>The LLVM Compiler Infrastructure - Last modified: $Date: 2006/04/20 17:42:23 $ + Last modified: $Date: 2006/04/20 18:46:45 $ Index: llvm/docs/MakefileGuide.html diff -u llvm/docs/MakefileGuide.html:1.32 llvm/docs/MakefileGuide.html:1.33 --- llvm/docs/MakefileGuide.html:1.32 Thu Apr 20 13:44:24 2006 +++ llvm/docs/MakefileGuide.htmlThu Apr 20 13:46:45 2006 @@ -911,7 +911,6 @@ BCCompile.C BCCompile.CXX BCLinkLib -Burg C.Flags Compile.C CompileCommonOpts @@ -998,7 +997,7 @@ mailto:[EMAIL PROTECTED]">Reid Spencer http://llvm.org";>The LLVM Compiler Infrastructure - Last modified: $Date: 2006/04/20 18:44:24 $ + Last modified: $Date: 2006/04/20 18:46:45 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/llvmdo
Changes in directory llvm/utils: llvmdo updated: 1.12 -> 1.13 --- Log message: remove some stuff --- Diffs of the changes: (+0 -2) llvmdo |2 -- 1 files changed, 2 deletions(-) Index: llvm/utils/llvmdo diff -u llvm/utils/llvmdo:1.12 llvm/utils/llvmdo:1.13 --- llvm/utils/llvmdo:1.12 Sun Apr 16 19:46:09 2006 +++ llvm/utils/llvmdo Thu Apr 20 13:43:59 2006 @@ -58,7 +58,6 @@ -path 'docs/CommandGuide/ps/*' -o \ -path 'docs/CommandGuide/man/*' -o \ -path 'docs/HistoricalNotes/*' -o \ - -path 'utils/Burg/*' -o \ -path 'docs/img/*' -o \ -path '*/.libs/*' \ \) -prune -o \( \ @@ -95,7 +94,6 @@ \! -name '.*' \ \! -name '*~' \ \! -name '#*' \ - \! -name 'Sparc.burm.c' \ \! -name 'Lexer.cpp' \ \! -name 'llvmAsmParser.cpp' \ \! -name 'llvmAsmParser.h' \ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/README.txt
Changes in directory llvm/lib/Target: README.txt updated: 1.28 -> 1.29 --- Log message: add a note --- Diffs of the changes: (+18 -0) README.txt | 18 ++ 1 files changed, 18 insertions(+) Index: llvm/lib/Target/README.txt diff -u llvm/lib/Target/README.txt:1.28 llvm/lib/Target/README.txt:1.29 --- llvm/lib/Target/README.txt:1.28 Sat Apr 1 19:47:20 2006 +++ llvm/lib/Target/README.txt Thu Apr 20 13:49:28 2006 @@ -172,3 +172,21 @@ target! //===-===// + +Consider this: + +unsigned short swap_16(unsigned short v) { return (v>>8) | (v<<8); } + +Compiled with the ppc backend: + +_swap_16: +slwi r2, r3, 8 +srwi r3, r3, 8 +or r2, r3, r2 +rlwinm r3, r2, 0, 16, 31 +blr + +The rlwinm (an and by 65535) is dead. The dag combiner should propagate bits +better than that to see this. + +//===-===// ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/userloc.pl
Changes in directory llvm/utils: userloc.pl updated: 1.3 -> 1.4 --- Log message: Remove Burg as a directory to be considered. --- Diffs of the changes: (+0 -1) userloc.pl |1 - 1 files changed, 1 deletion(-) Index: llvm/utils/userloc.pl diff -u llvm/utils/userloc.pl:1.3 llvm/utils/userloc.pl:1.4 --- llvm/utils/userloc.pl:1.3 Mon May 16 14:33:21 2005 +++ llvm/utils/userloc.pl Thu Apr 20 13:47:13 2006 @@ -133,7 +133,6 @@ return 0 if ($d =~ /.*Debug.*/); return 0 if ($d =~ /.*Release.*/); return 0 if ($d =~ /.*Profile.*/); - return 0 if ($d =~ /.*utils\/Burg.*/); return 0 if ($d =~ /.*docs\/CommandGuide\/html.*/); return 0 if ($d =~ /.*docs\/CommandGuide\/man.*/); return 0 if ($d =~ /.*docs\/CommandGuide\/ps.*/); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCInstrAltivec.td
Changes in directory llvm/lib/Target/PowerPC: PPCInstrAltivec.td updated: 1.52 -> 1.53 --- Log message: Fix the CodeGen/PowerPC/buildvec_canonicalize.ll regression last night. --- Diffs of the changes: (+1 -1) PPCInstrAltivec.td |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/PowerPC/PPCInstrAltivec.td diff -u llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.52 llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.53 --- llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.52 Thu Apr 20 00:58:10 2006 +++ llvm/lib/Target/PowerPC/PPCInstrAltivec.td Thu Apr 20 14:01:30 2006 @@ -603,7 +603,7 @@ (v4i32 (VANDC VRRC:$A, VRRC:$B))>; def : Pat<(fmul VRRC:$vA, VRRC:$vB), - (v4f32 (VMADDFP VRRC:$vA, VRRC:$vB, (v4f32 (V_SET0>; + (v4f32 (VMADDFP VRRC:$vA, VRRC:$vB, (v4i32 (V_SET0>; // Fused multiply add and multiply sub for packed float. These are represented // separately from the real instructions above, for operations that must have ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_splat.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_splat.ll updated: 1.3 -> 1.4 --- Log message: Don't know what I was thinking... --- Diffs of the changes: (+1 -1) vec_splat.ll |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/test/Regression/CodeGen/X86/vec_splat.ll diff -u llvm/test/Regression/CodeGen/X86/vec_splat.ll:1.3 llvm/test/Regression/CodeGen/X86/vec_splat.ll:1.4 --- llvm/test/Regression/CodeGen/X86/vec_splat.ll:1.3 Sun Apr 16 13:16:43 2006 +++ llvm/test/Regression/CodeGen/X86/vec_splat.ll Thu Apr 20 14:47:28 2006 @@ -1,5 +1,5 @@ ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep shufps -; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep mulpd +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movddup void %test_v4sf(<4 x float>* %P, <4 x float>* %Q, float %X) { %tmp = insertelement <4 x float> zeroinitializer, float %X, uint 0 ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/llvm-config/LibDeps.txt
Changes in directory llvm/utils/llvm-config: LibDeps.txt updated: 1.2 -> 1.3 --- Log message: Update the library dependencies for 1.8 with SparcV9 now gone. --- Diffs of the changes: (+0 -5) LibDeps.txt |5 - 1 files changed, 5 deletions(-) Index: llvm/utils/llvm-config/LibDeps.txt diff -u llvm/utils/llvm-config/LibDeps.txt:1.2 llvm/utils/llvm-config/LibDeps.txt:1.3 --- llvm/utils/llvm-config/LibDeps.txt:1.2 Thu Mar 23 00:15:27 2006 +++ llvm/utils/llvm-config/LibDeps.txt Thu Apr 20 14:50:53 2006 @@ -27,9 +27,4 @@ LLVMPowerPC.o: libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o LLVMSelectionDAG.o: libLLVMSupport.a libLLVMSystem.a libLLVMTarget.a libLLVMTransformUtils.a LLVMCodeGen.o LLVMCore.o LLVMSparc.o: libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o -LLVMSparcV9InstrSched.o: libLLVMSupport.a LLVMCodeGen.o LLVMCore.o LLVMSparcV9LiveVar.o LLVMSparcV9.o -LLVMSparcV9LiveVar.o: libLLVMSupport.a LLVMCodeGen.o LLVMCore.o -LLVMSparcV9ModuloSched.o: libLLVMAnalysis.a libLLVMSupport.a libLLVMTarget.a LLVMCodeGen.o LLVMCore.o LLVMSparcV9.o -LLVMSparcV9.o: libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a LLVMBCWriter.o LLVMCodeGen.o LLVMCore.o LLVMSparcV9InstrSched.o LLVMSparcV9ModuloSched.o LLVMSparcV9RegAlloc.o -LLVMSparcV9RegAlloc.o: libLLVMAnalysis.a libLLVMSupport.a LLVMCodeGen.o LLVMCore.o LLVMSparcV9LiveVar.o LLVMSparcV9.o LLVMX86.o: libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll
Changes in directory llvm/test/Regression/Transforms/ScalarRepl: 2006-04-20-PromoteCrash.ll added (r1.1) --- Log message: new testcase --- Diffs of the changes: (+18 -0) 2006-04-20-PromoteCrash.ll | 18 ++ 1 files changed, 18 insertions(+) Index: llvm/test/Regression/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll diff -c /dev/null llvm/test/Regression/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll:1.1 *** /dev/null Thu Apr 20 15:48:42 2006 --- llvm/test/Regression/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll Thu Apr 20 15:48:32 2006 *** *** 0 --- 1,18 + ; RUN: llvm-as < %s | opt -scalarrepl -disable-output + + void %output_toc() { + entry: + %buf = alloca [256 x sbyte], align 16 ; <[256 x sbyte]*> [#uses=1] + %name = alloca sbyte*, align 4 ; [#uses=1] + %real_name = alloca sbyte*, align 4 ; [#uses=0] + "alloca point" = cast int 0 to int ; [#uses=0] + %buf = cast [256 x sbyte]* %buf to sbyte* ; [#uses=1] + store sbyte* %buf, sbyte** %name + call void %abort( ) + unreachable + + return: ; No predecessors! + ret void + } + + declare void %abort() ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp
Changes in directory llvm/lib/Transforms/Scalar: ScalarReplAggregates.cpp updated: 1.38 -> 1.39 --- Log message: Fix Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll --- Diffs of the changes: (+1 -1) ScalarReplAggregates.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp diff -u llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.38 llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.39 --- llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.38Fri Apr 14 16:42:41 2006 +++ llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp Thu Apr 20 15:48:50 2006 @@ -143,7 +143,7 @@ // simple scalar value that can be mem2reg'd into a register value. bool IsNotTrivial = false; if (const Type *ActualType = CanConvertToScalar(AI, IsNotTrivial)) - if (IsNotTrivial) { + if (IsNotTrivial && ActualType != Type::VoidTy) { ConvertToScalar(AI, ActualType); Changed = true; continue; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/Makefile
Changes in directory llvm/tools: Makefile updated: 1.43 -> 1.44 --- Log message: Build the llvm-config directory as a tool. --- Diffs of the changes: (+1 -1) Makefile |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/tools/Makefile diff -u llvm/tools/Makefile:1.43 llvm/tools/Makefile:1.44 --- llvm/tools/Makefile:1.43Sun Apr 24 12:42:05 2005 +++ llvm/tools/Makefile Thu Apr 20 15:53:23 2006 @@ -10,7 +10,7 @@ LEVEL := .. PARALLEL_DIRS := llvm-as llvm-dis opt gccas llc llvm-link lli gccld llvm-stub \ analyze llvm-extract llvm-nm llvm-prof llvm-ar llvm-ranlib \ - llvm-bcanalyzer llvmc llvm-ld llvm-db bugpoint + llvm-bcanalyzer llvmc llvm-ld llvm-db bugpoint llvm-config include $(LEVEL)/Makefile.config ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/Makefile
Changes in directory llvm/tools: Makefile updated: 1.44 -> 1.45 --- Log message: Don't build llvm-config until issues are resolved. --- Diffs of the changes: (+1 -1) Makefile |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/tools/Makefile diff -u llvm/tools/Makefile:1.44 llvm/tools/Makefile:1.45 --- llvm/tools/Makefile:1.44Thu Apr 20 15:53:23 2006 +++ llvm/tools/Makefile Thu Apr 20 16:00:24 2006 @@ -10,7 +10,7 @@ LEVEL := .. PARALLEL_DIRS := llvm-as llvm-dis opt gccas llc llvm-link lli gccld llvm-stub \ analyze llvm-extract llvm-nm llvm-prof llvm-ar llvm-ranlib \ - llvm-bcanalyzer llvmc llvm-ld llvm-db bugpoint llvm-config + llvm-bcanalyzer llvmc llvm-ld llvm-db bugpoint include $(LEVEL)/Makefile.config ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llvm-config/FinalLibDeps.txt Makefile
Changes in directory llvm/tools/llvm-config: FinalLibDeps.txt added (r1.1) Makefile updated: 1.4 -> 1.5 --- Log message: Several Changes To Support Building llvm-config: 1. If Perl is not available, don't run Perl dependent targets. 2. Check in FinalLibDeps.txt for build environments that can't build it because there's no Perl processor. 3. Ensure that FinalLibDeps.txt depends on LibDeps.txt so it is automatically regenerated. 4. Support objdir != srcdir building. --- Diffs of the changes: (+42 -10) FinalLibDeps.txt | 25 + Makefile | 27 +-- 2 files changed, 42 insertions(+), 10 deletions(-) Index: llvm/tools/llvm-config/FinalLibDeps.txt diff -c /dev/null llvm/tools/llvm-config/FinalLibDeps.txt:1.1 *** /dev/null Thu Apr 20 16:14:08 2006 --- llvm/tools/llvm-config/FinalLibDeps.txt Thu Apr 20 16:13:58 2006 *** *** 0 --- 1,25 + LLVMAlpha.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a + LLVMAsmParser.o: LLVMCore.o + LLVMBCReader.o: LLVMCore.o libLLVMSupport.a libLLVMSystem.a + LLVMBCWriter.o: LLVMCore.o libLLVMSupport.a + LLVMCBackend.o: LLVMCodeGen.o LLVMCore.o libLLVMAnalysis.a libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a libLLVMipa.a + LLVMCodeGen.o LLVMSelectionDAG.o libLLVMAnalysis.a libLLVMTarget.a libLLVMTransformUtils.a libLLVMipa.a libLLVMAnalysis.a libLLVMTarget.a libLLVMTransformUtils.a libLLVMipa.a: LLVMCore.o libLLVMSupport.a libLLVMSystem.a + LLVMCore.o: libLLVMSupport.a + LLVMDataStructure.o: LLVMCore.o libLLVMAnalysis.a libLLVMSupport.a libLLVMTarget.a + LLVMDebugger.o: LLVMBCReader.o LLVMCore.o libLLVMSupport.a libLLVMSystem.a + LLVMExecutionEngine.o: LLVMCore.o libLLVMSupport.a libLLVMSystem.a libLLVMTarget.a + LLVMIA64.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a + LLVMInterpreter.o: LLVMCore.o LLVMExecutionEngine.o libLLVMSupport.a libLLVMSystem.a libLLVMTarget.a + LLVMJIT.o: LLVMCore.o LLVMExecutionEngine.o libLLVMSupport.a libLLVMSystem.a libLLVMTarget.a + LLVMPowerPC.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a + LLVMSparc.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a + LLVMX86.o: LLVMCodeGen.o LLVMCore.o LLVMSelectionDAG.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTarget.a + LLVMbzip2.o: + libLLVMArchive.a: LLVMBCReader.o LLVMCore.o libLLVMSupport.a libLLVMSystem.a + libLLVMInstrumentation.a: LLVMCore.o libLLVMScalarOpts.a libLLVMSupport.a libLLVMTransformUtils.a + libLLVMLinker.a: LLVMBCReader.o LLVMCore.o libLLVMArchive.a libLLVMSystem.a + libLLVMScalarOpts.a: LLVMCore.o libLLVMAnalysis.a libLLVMSupport.a libLLVMTarget.a libLLVMTransformUtils.a + libLLVMSupport.a: LLVMbzip2.o libLLVMSystem.a + libLLVMSystem.a: + libLLVMTransforms.a: LLVMCore.o libLLVMSupport.a libLLVMTarget.a libLLVMTransformUtils.a + libLLVMipo.a: LLVMCore.o libLLVMAnalysis.a libLLVMSupport.a libLLVMTarget.a libLLVMTransformUtils.a libLLVMipa.a Index: llvm/tools/llvm-config/Makefile diff -u llvm/tools/llvm-config/Makefile:1.4 llvm/tools/llvm-config/Makefile:1.5 --- llvm/tools/llvm-config/Makefile:1.4 Thu Mar 23 17:21:29 2006 +++ llvm/tools/llvm-config/Makefile Thu Apr 20 16:13:58 2006 @@ -1,4 +1,4 @@ -##===- utils/llvm-config/Makefile --*- Makefile -*-===## +##===- tools/llvm-config/Makefile --*- Makefile -*-===## # # The LLVM Compiler Infrastructure # @@ -21,40 +21,47 @@ # user to use libtool when linking against LLVM. SUB_LDFLAGS = +FinalLibDeps = $(PROJ_SRC_DIR)/FinalLibDeps.txt +ifdef HAVE_PERL +ifeq ($(HAVE_PERL),1) +LibDeps = $(PROJ_SRC_DIR)/LibDeps.txt +GenLibDeps = $(PROJ_SRC_ROOT)/utils/GenLibDeps.pl # MANUAL USE ONLY! GenLibDeps.pl is very non-portable, so LibDeps.txt # should only be re-built manually. No other rule in this file should # depend on LibDeps.txt. -LibDeps.txt: $(LEVEL)/utils/GenLibDeps.pl $(LibDir) +$(LibDeps): $(GenLibDeps) $(LibDir) $(Echo) "Regenerating LibDeps.txt" - $(Verb) $(LLVM_SRC_ROOT)/utils/GenLibDeps.pl -flat $(LibDir) | \ - sort > LibDeps.txt + $(Verb) $(GenLibDeps) -flat $(LibDir) | sort > $(LibDeps) # Find all the cyclic dependencies between various LLVM libraries, so we # don't have to process them at runtime. -FinalLibDeps.txt: find-cycles.pl # LibDeps.txt deliberately omitted. +$(FinalLibDeps): find-cycles.pl $(LibDeps) $(Echo) "Finding cyclic dependencies between LLVM libraries." $(Verb) $(PERL) $< < $(PROJ_SRC_DIR)/LibDeps.txt > $@ +endif +endif # Rerun our configure substitutions as needed. -llvm-config.in: llvm-config.in.in $(ConfigStatusScript) +ConfigInIn = $(PROJ_SRC_DIR)/llvm-config.in.in +llvm-config.in: $(ConfigInIn) $(ConfigStatusScript) $(Verb) cd $(PROJ_OBJ_ROOT) ; \ -
[llvm-commits] CVS: llvm/utils/Makefile
Changes in directory llvm/utils: Makefile updated: 1.14 -> 1.15 --- Log message: llvm-config doesn't live here anymore ==> tools --- Diffs of the changes: (+1 -6) Makefile |7 +-- 1 files changed, 1 insertion(+), 6 deletions(-) Index: llvm/utils/Makefile diff -u llvm/utils/Makefile:1.14 llvm/utils/Makefile:1.15 --- llvm/utils/Makefile:1.14Thu Apr 20 13:39:19 2006 +++ llvm/utils/Makefile Thu Apr 20 16:15:41 2006 @@ -16,11 +16,6 @@ llvm-native-gxx makellvm NightlyTest.gnuplot NightlyTest.pl \ NightlyTestTemplate.html NLT.schema OldenDataRecover.pl \ parseNLT.pl plotNLT.pl profile.pl RegressionFinder.pl userloc.pl \ - webNLT.pl vim llvm-config + webNLT.pl vim include $(LEVEL)/Makefile.common - -# Only include llvm-config if we have Perl to build it with. -ifeq ($(HAVE_PERL),1) - DIRS += llvm-config -endif ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/llvm-config/.cvsignore LibDeps.txt Makefile find-cycles.pl llvm-config.in.in
Changes in directory llvm/utils/llvm-config: .cvsignore (r1.1) removed LibDeps.txt (r1.3) removed Makefile (r1.4) removed find-cycles.pl (r1.2) removed llvm-config.in.in (r1.4) removed --- Log message: Remove the llvm-config directory. Its now in tools. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/Makefile
Changes in directory llvm/tools: Makefile updated: 1.45 -> 1.46 --- Log message: Okay, llvm-config is good to go now. --- Diffs of the changes: (+1 -1) Makefile |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/tools/Makefile diff -u llvm/tools/Makefile:1.45 llvm/tools/Makefile:1.46 --- llvm/tools/Makefile:1.45Thu Apr 20 16:00:24 2006 +++ llvm/tools/Makefile Thu Apr 20 16:14:39 2006 @@ -10,7 +10,7 @@ LEVEL := .. PARALLEL_DIRS := llvm-as llvm-dis opt gccas llc llvm-link lli gccld llvm-stub \ analyze llvm-extract llvm-nm llvm-prof llvm-ar llvm-ranlib \ - llvm-bcanalyzer llvmc llvm-ld llvm-db bugpoint + llvm-bcanalyzer llvmc llvm-ld llvm-db bugpoint llvm-config include $(LEVEL)/Makefile.config ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/configure
Changes in directory llvm: configure updated: 1.224 -> 1.225 --- Log message: Configure llvm-config in tools, not utils. --- Diffs of the changes: (+2 -2) configure |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/configure diff -u llvm/configure:1.224 llvm/configure:1.225 --- llvm/configure:1.224Thu Apr 20 12:01:19 2006 +++ llvm/configure Thu Apr 20 17:15:30 2006 @@ -30831,7 +30831,7 @@ ac_config_files="$ac_config_files docs/doxygen.cfg" - ac_config_files="$ac_config_files utils/llvm-config/llvm-config.in" + ac_config_files="$ac_config_files tools/llvm-config/llvm-config.in" ac_config_commands="$ac_config_commands setup" @@ -31418,7 +31418,7 @@ # Handling of arguments. "Makefile.config" ) CONFIG_FILES="$CONFIG_FILES Makefile.config" ;; "docs/doxygen.cfg" ) CONFIG_FILES="$CONFIG_FILES docs/doxygen.cfg" ;; - "utils/llvm-config/llvm-config.in" ) CONFIG_FILES="$CONFIG_FILES utils/llvm-config/llvm-config.in" ;; + "tools/llvm-config/llvm-config.in" ) CONFIG_FILES="$CONFIG_FILES tools/llvm-config/llvm-config.in" ;; "setup" ) CONFIG_COMMANDS="$CONFIG_COMMANDS setup" ;; "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;; "Makefile.common" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile.common" ;; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/autoconf/configure.ac
Changes in directory llvm/autoconf: configure.ac updated: 1.221 -> 1.222 --- Log message: Configure llvm-config in tools, not utils. --- Diffs of the changes: (+1 -1) configure.ac |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/autoconf/configure.ac diff -u llvm/autoconf/configure.ac:1.221 llvm/autoconf/configure.ac:1.222 --- llvm/autoconf/configure.ac:1.221Thu Apr 20 12:01:07 2006 +++ llvm/autoconf/configure.ac Thu Apr 20 17:15:30 2006 @@ -700,7 +700,7 @@ AC_CONFIG_FILES([docs/doxygen.cfg]) dnl Do the first stage of configuration for llvm-config.in. -AC_CONFIG_FILES([utils/llvm-config/llvm-config.in]) +AC_CONFIG_FILES([tools/llvm-config/llvm-config.in]) dnl Do special configuration of Makefiles AC_CONFIG_COMMANDS([setup],,[llvm_src="${srcdir}"]) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/Target/Target.vcproj
Changes in directory llvm/win32/Target: Target.vcproj updated: 1.13 -> 1.14 --- Log message: Keep Visual Studio informed. --- Diffs of the changes: (+0 -6) Target.vcproj |6 -- 1 files changed, 6 deletions(-) Index: llvm/win32/Target/Target.vcproj diff -u llvm/win32/Target/Target.vcproj:1.13 llvm/win32/Target/Target.vcproj:1.14 --- llvm/win32/Target/Target.vcproj:1.13Sun Jan 29 22:07:07 2006 +++ llvm/win32/Target/Target.vcproj Thu Apr 20 17:19:06 2006 @@ -133,9 +133,6 @@ RelativePath="..\..\lib\Target\TargetMachineRegistry.cpp"> - - @@ -177,9 +174,6 @@ RelativePath="..\..\include\llvm\Target\TargetOptions.h"> - - ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/GenLibDeps.pl
Changes in directory llvm/utils: GenLibDeps.pl updated: 1.4 -> 1.5 --- Log message: Don't require the "dot" program if -flat option is given, and don't produce any of the fancy graphs or other output. Just produce the flat, makefile style output on stdout. --- Diffs of the changes: (+25 -19) GenLibDeps.pl | 44 +--- 1 files changed, 25 insertions(+), 19 deletions(-) Index: llvm/utils/GenLibDeps.pl diff -u llvm/utils/GenLibDeps.pl:1.4 llvm/utils/GenLibDeps.pl:1.5 --- llvm/utils/GenLibDeps.pl:1.4Sun Mar 19 16:08:01 2006 +++ llvm/utils/GenLibDeps.plThu Apr 20 18:09:57 2006 @@ -23,8 +23,10 @@ my $Directory = $ARGV[0]; # Find the "dot" program -chomp(my $DotPath = `which dot`); -die "Can't find 'dot'" if (! -x "$DotPath"); +if (!$FLAT) { + chomp(my $DotPath = `which dot`); + die "Can't find 'dot'" if (! -x "$DotPath"); +} # Open the directory and read its contents, sorting by name and differentiating # by whether its a library (.a) or an object file (.o) @@ -102,9 +104,9 @@ $suffix = substr($_,length($_)-1,1); $_ =~ s/(.*)\.[oa]/$1/; if ($suffix eq "a") { - print DOT "$lib_ns -> $_ [ weight=0 ];\n"; + if (!$FLAT) { print DOT "$lib_ns -> $_ [ weight=0 ];\n" }; } else { - print DOT "$lib_ns -> $_ [ weight=10];\n"; + if (!$FLAT) { print DOT "$lib_ns -> $_ [ weight=10];\n" }; } } close DF; @@ -121,34 +123,38 @@ # Print the definition list tag if (!$FLAT) { - print "\n"; -} +print "\n"; -open DOT, "| $DotPath -Tgif > libdeps.gif"; + open DOT, "| $DotPath -Tgif > libdeps.gif"; + + print DOT "digraph LibDeps {size=\"40,15\"; ratio=\"1.3\"; margin=\"0.25\"; rankdir=\"LR\"; mclimit=\"50.0\"; ordering=\"out\"; center=\"1\";\n"; + print DOT "node [shape=\"box\",color=\"#88\",fillcolor=\"#FFFACD\",fontcolor=\"#5577DD\",style=\"filled\",fontsize=\"24\"];\n"; + print DOT "edge [style=\"solid\",color=\"#88\"];\n"; +} -print DOT "digraph LibDeps {size=\"40,15\"; ratio=\"1.3\"; margin=\"0.25\"; rankdir=\"LR\"; mclimit=\"50.0\"; ordering=\"out\"; center=\"1\";\n"; -print DOT "node [shape=\"box\",color=\"#88\",fillcolor=\"#FFFACD\",fontcolor=\"#5577DD\",style=\"filled\",fontsize=\"24\"];\n"; -print DOT "edge [style=\"solid\",color=\"#88\"];\n"; # Print libraries first foreach $lib (@libs) { gen_one_entry($lib); } -print DOT "}\n"; -close DOT; -open DOT, "| $DotPath -Tgif > objdeps.gif"; -print DOT "digraph ObjDeps {size=\"40,15\"; ratio=\"1.3\"; margin=\"0.25\"; rankdir=\"LR\"; mclimit=\"50.0\"; ordering=\"out\"; center=\"1\";\n"; -print DOT "node [shape=\"box\",color=\"#88\",fillcolor=\"#FFFACD\",fontcolor=\"#5577DD\",style=\"filled\",fontsize=\"24\"];\n"; -print DOT "edge [style=\"solid\",color=\"#88\"];\n"; + +if (!$FLAT) { + print DOT "}\n"; + close DOT; + open DOT, "| $DotPath -Tgif > objdeps.gif"; + print DOT "digraph ObjDeps {size=\"40,15\"; ratio=\"1.3\"; margin=\"0.25\"; rankdir=\"LR\"; mclimit=\"50.0\"; ordering=\"out\"; center=\"1\";\n"; + print DOT "node [shape=\"box\",color=\"#88\",fillcolor=\"#FFFACD\",fontcolor=\"#5577DD\",style=\"filled\",fontsize=\"24\"];\n"; + print DOT "edge [style=\"solid\",color=\"#88\"];\n"; +} # Print objects second foreach $obj (@objs) { gen_one_entry($obj); } -print DOT "}\n"; -close DOT; +if (!$FLAT) { + print DOT "}\n"; + close DOT; # Print end tag of definition list element -if (!$FLAT) { print "\n"; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG: DAGCombiner.cpp updated: 1.148 -> 1.149 --- Log message: Fix a really subtle and obnoxious memory bug that caused issues with an llvm-gcc4 boostrap. Whenever a node is deleted by the dag combiner, it *must* be returned by the visit function, or the dag combiner will not know that the node has been processed (and will, e.g., send it to the target dag combine xforms). --- Diffs of the changes: (+11 -11) DAGCombiner.cpp | 22 +++--- 1 files changed, 11 insertions(+), 11 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp diff -u llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.148 llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.149 --- llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.148 Thu Apr 20 03:56:16 2006 +++ llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Thu Apr 20 18:55:59 2006 @@ -1080,7 +1080,7 @@ // zero_extend, to avoid duplicating things. This will later cause this // AND to be folded. CombineTo(N0.Val, Zext); - return SDOperand(); + return SDOperand(N, 0); // Return N so it doesn't get rechecked! } } // fold (and (setcc x), (setcc y)) -> (setcc (and x, y)) @@ -1157,7 +1157,7 @@ EVT); AddToWorkList(N); CombineTo(N0.Val, ExtLoad, ExtLoad.getValue(1)); - return SDOperand(); + return SDOperand(N, 0); // Return N so it doesn't get rechecked! } } // fold (zext_inreg (sextload x)) -> (zextload x) iff load has one use @@ -1172,7 +1172,7 @@ EVT); AddToWorkList(N); CombineTo(N0.Val, ExtLoad, ExtLoad.getValue(1)); - return SDOperand(); + return SDOperand(N, 0); // Return N so it doesn't get rechecked! } } @@ -1212,7 +1212,7 @@ N0.getOperand(2), EVT); AddToWorkList(N); CombineTo(N0.Val, Load, Load.getValue(1)); - return SDOperand(); + return SDOperand(N, 0); // Return N so it doesn't get rechecked! } } @@ -1797,7 +1797,7 @@ CombineTo(N, ExtLoad); CombineTo(N0.Val, DAG.getNode(ISD::TRUNCATE, N0.getValueType(), ExtLoad), ExtLoad.getValue(1)); -return SDOperand(); +return SDOperand(N, 0); // Return N so it doesn't get rechecked! } // fold (sext (sextload x)) -> (sext (truncate (sextload x))) @@ -1810,7 +1810,7 @@ CombineTo(N, ExtLoad); CombineTo(N0.Val, DAG.getNode(ISD::TRUNCATE, N0.getValueType(), ExtLoad), ExtLoad.getValue(1)); -return SDOperand(); +return SDOperand(N, 0); // Return N so it doesn't get rechecked! } return SDOperand(); @@ -1840,7 +1840,7 @@ CombineTo(N, ExtLoad); CombineTo(N0.Val, DAG.getNode(ISD::TRUNCATE, N0.getValueType(), ExtLoad), ExtLoad.getValue(1)); -return SDOperand(); +return SDOperand(N, 0); // Return N so it doesn't get rechecked! } // fold (zext (zextload x)) -> (zext (truncate (zextload x))) @@ -1853,7 +1853,7 @@ CombineTo(N, ExtLoad); CombineTo(N0.Val, DAG.getNode(ISD::TRUNCATE, N0.getValueType(), ExtLoad), ExtLoad.getValue(1)); -return SDOperand(); +return SDOperand(N, 0); // Return N so it doesn't get rechecked! } return SDOperand(); } @@ -1915,7 +1915,7 @@ EVT); CombineTo(N, ExtLoad); CombineTo(N0.Val, ExtLoad, ExtLoad.getValue(1)); -return SDOperand(); +return SDOperand(N, 0); // Return N so it doesn't get rechecked! } // fold (sext_inreg (zextload x)) -> (sextload x) iff load has one use if (N0.getOpcode() == ISD::ZEXTLOAD && N0.hasOneUse() && @@ -1926,7 +1926,7 @@ EVT); CombineTo(N, ExtLoad); CombineTo(N0.Val, ExtLoad, ExtLoad.getValue(1)); -return SDOperand(); +return SDOperand(N, 0); // Return N so it doesn't get rechecked! } return SDOperand(); } @@ -1975,7 +1975,7 @@ SDOperand Load = DAG.getLoad(VT, N0.getOperand(0), NewPtr,N0.getOperand(2)); AddToWorkList(N); CombineTo(N0.Val, Load, Load.getValue(1)); -return SDOperand(); +return SDOperand(N, 0); // Return N so it doesn't get rechecked! } return SDOperand(); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp X86ISelLowering.h X86InstrSSE.td
Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.178 -> 1.179 X86ISelLowering.h updated: 1.57 -> 1.58 X86InstrSSE.td updated: 1.109 -> 1.110 --- Log message: Now generating perfect (I think) code for "vector set" with a single non-zero scalar value. e.g. _mm_set_epi32(0, a, 0, 0); ==> movd 4(%esp), %xmm0 pshufd $69, %xmm0, %xmm0 _mm_set_epi8(0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); ==> movzbw 4(%esp), %ax movzwl %ax, %eax pxor %xmm0, %xmm0 pinsrw $5, %eax, %xmm0 --- Diffs of the changes: (+175 -105) X86ISelLowering.cpp | 198 +--- X86ISelLowering.h | 11 +- X86InstrSSE.td | 71 +++--- 3 files changed, 175 insertions(+), 105 deletions(-) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.178 llvm/lib/Target/X86/X86ISelLowering.cpp:1.179 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.178 Thu Apr 20 03:58:49 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Thu Apr 20 20:05:10 2006 @@ -1687,11 +1687,12 @@ return true; } -/// isMOVSMask - Return true if the specified VECTOR_SHUFFLE operand -/// specifies a shuffle of elements that is suitable for input to MOVS{S|D}. -static bool isMOVSMask(std::vector &N) { +/// isMOVLMask - Return true if the specified VECTOR_SHUFFLE operand +/// specifies a shuffle of elements that is suitable for input to MOVSS, +/// MOVSD, and MOVD, i.e. setting the lowest element. +static bool isMOVLMask(std::vector &N) { unsigned NumElems = N.size(); - if (NumElems != 2 && NumElems != 4) + if (NumElems != 2 && NumElems != 4 && NumElems != 8 && NumElems != 16) return false; if (!isUndefOrEqual(N[0], NumElems)) @@ -1706,18 +1707,18 @@ return true; } -bool X86::isMOVSMask(SDNode *N) { +bool X86::isMOVLMask(SDNode *N) { assert(N->getOpcode() == ISD::BUILD_VECTOR); std::vector Ops(N->op_begin(), N->op_end()); - return ::isMOVSMask(Ops); + return ::isMOVLMask(Ops); } -/// isCommutedMOVS - Returns true if the shuffle mask is except the reverse -/// of what x86 movs want. X86 movs requires the lowest element to be lowest +/// isCommutedMOVL - Returns true if the shuffle mask is except the reverse +/// of what x86 movss want. X86 movs requires the lowest element to be lowest /// element of vector 2 and the other elements to come from vector 1 in order. -static bool isCommutedMOVS(std::vector &Ops, bool V2IsSplat = false) { +static bool isCommutedMOVL(std::vector &Ops, bool V2IsSplat = false) { unsigned NumElems = Ops.size(); - if (NumElems != 2 && NumElems != 4) + if (NumElems != 2 && NumElems != 4 && NumElems != 8 && NumElems != 16) return false; if (!isUndefOrEqual(Ops[0], 0)) @@ -1737,10 +1738,10 @@ return true; } -static bool isCommutedMOVS(SDNode *N, bool V2IsSplat = false) { +static bool isCommutedMOVL(SDNode *N, bool V2IsSplat = false) { assert(N->getOpcode() == ISD::BUILD_VECTOR); std::vector Ops(N->op_begin(), N->op_end()); - return isCommutedMOVS(Ops); + return isCommutedMOVL(Ops, V2IsSplat); } /// isMOVSHDUPMask - Return true if the specified VECTOR_SHUFFLE operand @@ -2055,9 +2056,9 @@ return Mask; } -/// getMOVSMask - Returns a vector_shuffle mask for an movs{s|d} operation -/// of specified width. -static SDOperand getMOVSMask(unsigned NumElems, SelectionDAG &DAG) { +/// getMOVLMask - Returns a vector_shuffle mask for an movs{s|d}, movd +/// operation of specified width. +static SDOperand getMOVLMask(unsigned NumElems, SelectionDAG &DAG) { MVT::ValueType MaskVT = MVT::getIntVectorWithNumElements(NumElems); MVT::ValueType BaseVT = MVT::getVectorBaseType(MaskVT); @@ -2095,30 +2096,63 @@ return DAG.getNode(ISD::BUILD_VECTOR, MaskVT, MaskVec); } +/// getZeroVector - Returns a vector of specified type with all zero elements. +/// +static SDOperand getZeroVector(MVT::ValueType VT, SelectionDAG &DAG) { + assert(MVT::isVector(VT) && "Expected a vector type"); + unsigned NumElems = getVectorNumElements(VT); + MVT::ValueType EVT = MVT::getVectorBaseType(VT); + bool isFP = MVT::isFloatingPoint(EVT); + SDOperand Zero = isFP ? DAG.getConstantFP(0.0, EVT) : DAG.getConstant(0, EVT); + std::vector ZeroVec(NumElems, Zero); + return DAG.getNode(ISD::BUILD_VECTOR, VT, ZeroVec); +} + /// PromoteSplat - Promote a splat of v8i16 or v16i8 to v4i32. /// static SDOperand PromoteSplat(SDOperand Op, SelectionDAG &DAG) { SDOperand V1 = Op.getOperand(0); - SDOperand PermMask = Op.getOperand(2); + SDOperand Mask = Op.getOperand(2); MVT::ValueType VT = Op.getValueType(); - unsigned NumElems = PermMask.getNumOperands(); - PermMask = getUnpacklMask(NumElems, DAG); + unsigned NumElems = Mask.getNumOperands(); + Mask = getUnpacklMask(NumElems, DAG); while (NumElems != 4) { -V1 = DAG.getNode(ISD::VECTOR_SHUFFLE, VT, V1, V1, PermMask); +V1 = DAG.getNode(ISD
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_zexts2v.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_zexts2v.ll (r1.1) removed --- Log message: To be replaced with another test. --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_clear.ll vec_shuffle-4.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_clear.ll updated: 1.1 -> 1.2 vec_shuffle-4.ll updated: 1.1 -> 1.2 --- Log message: Check for llc crash. --- Diffs of the changes: (+2 -0) vec_clear.ll |1 + vec_shuffle-4.ll |1 + 2 files changed, 2 insertions(+) Index: llvm/test/Regression/CodeGen/X86/vec_clear.ll diff -u llvm/test/Regression/CodeGen/X86/vec_clear.ll:1.1 llvm/test/Regression/CodeGen/X86/vec_clear.ll:1.2 --- llvm/test/Regression/CodeGen/X86/vec_clear.ll:1.1 Thu Apr 20 03:51:03 2006 +++ llvm/test/Regression/CodeGen/X86/vec_clear.ll Thu Apr 20 20:21:23 2006 @@ -1,3 +1,4 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 && ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep and <4 x float> %test(<4 x float>* %v1) { %tmp = load <4 x float>* %v1 Index: llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll diff -u llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll:1.1 llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll:1.2 --- llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll:1.1 Thu Apr 20 04:01:54 2006 +++ llvm/test/Regression/CodeGen/X86/vec_shuffle-4.ll Thu Apr 20 20:21:23 2006 @@ -1,3 +1,4 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 && ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep shuf | wc -l | grep 3 ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep unpck void %test(<4 x float>* %res, <4 x float>* %A, <4 x float>* %B, <4 x float>* %C) { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_set-2.ll vec_set-3.ll vec_set-4.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_set-2.ll added (r1.1) vec_set-3.ll added (r1.1) vec_set-4.ll added (r1.1) --- Log message: More build_vector tests. --- Diffs of the changes: (+62 -0) vec_set-2.ll | 23 +++ vec_set-3.ll | 16 vec_set-4.ll | 23 +++ 3 files changed, 62 insertions(+) Index: llvm/test/Regression/CodeGen/X86/vec_set-2.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_set-2.ll:1.1 *** /dev/null Thu Apr 20 20:22:51 2006 --- llvm/test/Regression/CodeGen/X86/vec_set-2.ll Thu Apr 20 20:22:41 2006 *** *** 0 --- 1,23 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss | wc -l | grep 1 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movd | wc -l | grep 1 + + <4 x float> %test1(float %a) { + %tmp = insertelement <4 x float> zeroinitializer, float %a, uint 0 + %tmp5 = insertelement <4 x float> %tmp, float 0.00e+00, uint 1 + %tmp6 = insertelement <4 x float> %tmp5, float 0.00e+00, uint 2 + %tmp7 = insertelement <4 x float> %tmp6, float 0.00e+00, uint 3 + ret <4 x float> %tmp7 + } + + <2 x long> %test(short %a) { + %tmp = insertelement <8 x short> zeroinitializer, short %a, uint 0 + %tmp6 = insertelement <8 x short> %tmp, short 0, uint 1 + %tmp8 = insertelement <8 x short> %tmp6, short 0, uint 2 + %tmp10 = insertelement <8 x short> %tmp8, short 0, uint 3 + %tmp12 = insertelement <8 x short> %tmp10, short 0, uint 4 + %tmp14 = insertelement <8 x short> %tmp12, short 0, uint 5 + %tmp16 = insertelement <8 x short> %tmp14, short 0, uint 6 + %tmp18 = insertelement <8 x short> %tmp16, short 0, uint 7 + %tmp19 = cast <8 x short> %tmp18 to <2 x long> + ret <2 x long> %tmp19 + } Index: llvm/test/Regression/CodeGen/X86/vec_set-3.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_set-3.ll:1.1 *** /dev/null Thu Apr 20 20:22:53 2006 --- llvm/test/Regression/CodeGen/X86/vec_set-3.ll Thu Apr 20 20:22:41 2006 *** *** 0 --- 1,16 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep shufps | wc -l | grep 1 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshufd | wc -l | grep 1 + + <4 x float> %test(float %a) { + %tmp = insertelement <4 x float> zeroinitializer, float %a, uint 1 + %tmp5 = insertelement <4 x float> %tmp, float 0.00e+00, uint 2 + %tmp6 = insertelement <4 x float> %tmp5, float 0.00e+00, uint 3 + ret <4 x float> %tmp6 + } + + <2 x long> %test(int %a) { + %tmp7 = insertelement <4 x int> zeroinitializer, int %a, uint 2 + %tmp9 = insertelement <4 x int> %tmp7, int 0, uint 3 + %tmp10 = cast <4 x int> %tmp9 to <2 x long> + ret <2 x long> %tmp10 + } Index: llvm/test/Regression/CodeGen/X86/vec_set-4.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/vec_set-4.ll:1.1 *** /dev/null Thu Apr 20 20:22:53 2006 --- llvm/test/Regression/CodeGen/X86/vec_set-4.ll Thu Apr 20 20:22:41 2006 *** *** 0 --- 1,23 + ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pinsrw | wc -l | grep 2 + <2 x long> %test(short %a) { + entry: + %tmp10 = insertelement <8 x short> zeroinitializer, short %a, uint 3 ; <<8 x short>> [#uses=1] + %tmp12 = insertelement <8 x short> %tmp10, short 0, uint 4 ; <<8 x short>> [#uses=1] + %tmp14 = insertelement <8 x short> %tmp12, short 0, uint 5 ; <<8 x short>> [#uses=1] + %tmp16 = insertelement <8 x short> %tmp14, short 0, uint 6 ; <<8 x short>> [#uses=1] + %tmp18 = insertelement <8 x short> %tmp16, short 0, uint 7 ; <<8 x short>> [#uses=1] + %tmp19 = cast <8 x short> %tmp18 to <2 x long> ; <<2 x long>> [#uses=1] + ret <2 x long> %tmp19 + } + + <2 x long> %test(sbyte %a) { + entry: + %tmp24 = insertelement <16 x sbyte> zeroinitializer, sbyte %a, uint 10 + %tmp26 = insertelement <16 x sbyte> %tmp24, sbyte 0, uint 11 + %tmp28 = insertelement <16 x sbyte> %tmp26, sbyte 0, uint 12 + %tmp30 = insertelement <16 x sbyte> %tmp28, sbyte 0, uint 13 + %tmp32 = insertelement <16 x sbyte> %tmp30, sbyte 0, uint 14 + %tmp34 = insertelement <16 x sbyte> %tmp32, sbyte 0, uint 15 + %tmp35 = cast <16 x sbyte> %tmp34 to <2 x long> + ret <2 x long> %tmp35 + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/vec_extract.ll vec_insert.ll vec_set-2.ll vec_set-3.ll vec_set-4.ll vec_shuffle-2.ll vec_shuffle-3.ll vec_shuffle-4.ll vec_shuffle.ll vec_splat.ll
Changes in directory llvm/test/Regression/CodeGen/X86: vec_extract.ll updated: 1.1 -> 1.2 vec_insert.ll updated: 1.1 -> 1.2 vec_set-2.ll updated: 1.1 -> 1.2 vec_set-3.ll updated: 1.1 -> 1.2 vec_set-4.ll updated: 1.1 -> 1.2 vec_shuffle-2.ll updated: 1.2 -> 1.3 vec_shuffle-3.ll updated: 1.1 -> 1.2 vec_shuffle-4.ll updated: 1.2 -> 1.3 vec_shuffle.ll updated: 1.6 -> 1.7 vec_splat.ll updated: 1.4 -> 1.5 vec_zero.ll updated: 1.1 -> 1.2 --- Log message: Add && to each RUN: line (except the last one). --- Diffs of the changes: (+14 -13) vec_extract.ll |4 ++-- vec_insert.ll|2 +- vec_set-2.ll |2 +- vec_set-3.ll |2 +- vec_set-4.ll |1 + vec_shuffle-2.ll |4 ++-- vec_shuffle-3.ll |2 +- vec_shuffle-4.ll |2 +- vec_shuffle.ll |4 ++-- vec_splat.ll |2 +- vec_zero.ll |2 +- 11 files changed, 14 insertions(+), 13 deletions(-) Index: llvm/test/Regression/CodeGen/X86/vec_extract.ll diff -u llvm/test/Regression/CodeGen/X86/vec_extract.ll:1.1 llvm/test/Regression/CodeGen/X86/vec_extract.ll:1.2 --- llvm/test/Regression/CodeGen/X86/vec_extract.ll:1.1 Thu Apr 20 12:59:30 2006 +++ llvm/test/Regression/CodeGen/X86/vec_extract.ll Thu Apr 20 23:58:23 2006 @@ -1,5 +1,5 @@ -; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss| wc -l | grep 3 -; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep unpckhps | wc -l | grep 1 +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss| wc -l | grep 3 && +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep unpckhps | wc -l | grep 1 && ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshufd | wc -l | grep 1 void %test1(<4 x float>* %F, float* %f) { Index: llvm/test/Regression/CodeGen/X86/vec_insert.ll diff -u llvm/test/Regression/CodeGen/X86/vec_insert.ll:1.1 llvm/test/Regression/CodeGen/X86/vec_insert.ll:1.2 --- llvm/test/Regression/CodeGen/X86/vec_insert.ll:1.1 Thu Apr 20 12:50:10 2006 +++ llvm/test/Regression/CodeGen/X86/vec_insert.ll Thu Apr 20 23:58:23 2006 @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss | wc -l | grep 1 +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss | wc -l | grep 1 && ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pinsrw | wc -l | grep 2 void %test(<4 x float>* %F, int %I) { Index: llvm/test/Regression/CodeGen/X86/vec_set-2.ll diff -u llvm/test/Regression/CodeGen/X86/vec_set-2.ll:1.1 llvm/test/Regression/CodeGen/X86/vec_set-2.ll:1.2 --- llvm/test/Regression/CodeGen/X86/vec_set-2.ll:1.1 Thu Apr 20 20:22:41 2006 +++ llvm/test/Regression/CodeGen/X86/vec_set-2.ll Thu Apr 20 23:58:23 2006 @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss | wc -l | grep 1 +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movss | wc -l | grep 1 && ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movd | wc -l | grep 1 <4 x float> %test1(float %a) { Index: llvm/test/Regression/CodeGen/X86/vec_set-3.ll diff -u llvm/test/Regression/CodeGen/X86/vec_set-3.ll:1.1 llvm/test/Regression/CodeGen/X86/vec_set-3.ll:1.2 --- llvm/test/Regression/CodeGen/X86/vec_set-3.ll:1.1 Thu Apr 20 20:22:41 2006 +++ llvm/test/Regression/CodeGen/X86/vec_set-3.ll Thu Apr 20 23:58:23 2006 @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep shufps | wc -l | grep 1 +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep shufps | wc -l | grep 1 && ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshufd | wc -l | grep 1 <4 x float> %test(float %a) { Index: llvm/test/Regression/CodeGen/X86/vec_set-4.ll diff -u llvm/test/Regression/CodeGen/X86/vec_set-4.ll:1.1 llvm/test/Regression/CodeGen/X86/vec_set-4.ll:1.2 --- llvm/test/Regression/CodeGen/X86/vec_set-4.ll:1.1 Thu Apr 20 20:22:41 2006 +++ llvm/test/Regression/CodeGen/X86/vec_set-4.ll Thu Apr 20 23:58:23 2006 @@ -1,4 +1,5 @@ ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pinsrw | wc -l | grep 2 + <2 x long> %test(short %a) { entry: %tmp10 = insertelement <8 x short> zeroinitializer, short %a, uint 3 ; <<8 x short>> [#uses=1] Index: llvm/test/Regression/CodeGen/X86/vec_shuffle-2.ll diff -u llvm/test/Regression/CodeGen/X86/vec_shuffle-2.ll:1.2 llvm/test/Regression/CodeGen/X86/vec_shuffle-2.ll:1.3 --- llvm/test/Regression/CodeGen/X86/vec_shuffle-2.ll:1.2 Fri Apr 7 16:52:15 2006 +++ llvm/test/Regression/CodeGen/X86/vec_shuffle-2.ll Thu Apr 20 23:58:23 2006 @@ -1,5 +1,5 @@ -; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshufhw | wc -l | grep 1 -; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshuflw | wc -l | grep 1 +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshufhw | wc -l | grep 1 && +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep pshuflw | wc -l | grep 1 && ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movhps | wc -l | grep 1 void %te
[llvm-commits] CVS: llvm/utils/GenLibDeps.pl
Changes in directory llvm/utils: GenLibDeps.pl updated: 1.5 -> 1.6 --- Log message: Remove the extraneous --defined-only option to nm. This is the default and some versions of nm don't recognize it (its a gnu option). --- Diffs of the changes: (+3 -3) GenLibDeps.pl |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/utils/GenLibDeps.pl diff -u llvm/utils/GenLibDeps.pl:1.5 llvm/utils/GenLibDeps.pl:1.6 --- llvm/utils/GenLibDeps.pl:1.5Thu Apr 20 18:09:57 2006 +++ llvm/utils/GenLibDeps.plFri Apr 21 00:29:25 2006 @@ -44,7 +44,7 @@ # Gather definitions from the libraries foreach $lib (@libs ) { open DEFS, -"nm -g --defined-only $Directory/$lib | grep ' [ABCDGRST] ' | sed -e 's/^[0-9A-Fa-f]* [ABCDGRST] //' | sort | uniq |"; +"nm -g $Directory/$lib | grep ' [ABCDGRST] ' | sed -e 's/^[0-9A-Fa-f]* [ABCDGRST] //' | sort | uniq |"; while () { chomp($_); $libdefs{$_} = $lib; @@ -55,7 +55,7 @@ # Gather definitions from the object files. foreach $obj (@objs ) { open DEFS, -"nm -g --defined-only $Directory/$obj | grep ' [ABCDGRST] ' | sed -e 's/^[0-9A-Fa-f]* [ABCDGRST] //' | sort | uniq |"; +"nm -g $Directory/$obj | grep ' [ABCDGRST] ' | sed -e 's/^[0-9A-Fa-f]* [ABCDGRST] //' | sort | uniq |"; while () { chomp($_); $objdefs{$_} = $obj; @@ -76,7 +76,7 @@ print " $lib\n"; } open UNDEFS, -"nm -u $Directory/$lib | grep ' U ' | sed -e 's/ U //' | sort | uniq |"; +"nm -g -u $Directory/$lib | grep ' U ' | sed -e 's/ U //' | sort | uniq |"; open DEPENDS, "| sort | uniq > GenLibDeps.out"; while () { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits