[llvm-commits] CVS: llvm/include/llvm/CodeGen/SelectionDAGNodes.h

2007-02-04 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

SelectionDAGNodes.h updated: 1.173 - 1.174
---
Log message:

Add a new SDNode ctor and InitOperands method.  This allows the operands for
an SDNode to be allocated as part of the node itself, instead of being a 
separate new[]'d object.  Switch HandleSDNode, LoadSDNode, and StoreSDNode
to use this mechanism.  This saves one heap allocation and free for each node
of this type that is allocated.  This reduces isel time from 2.7638 to 2.6164s
on kc++, which is a 5.6% speedup.



---
Diffs of the changes:  (+69 -37)

 SelectionDAGNodes.h |  106 +---
 1 files changed, 69 insertions(+), 37 deletions(-)


Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.173 
llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.174
--- llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.173 Sun Feb  4 01:37:24 2007
+++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h   Sun Feb  4 02:13:53 2007
@@ -908,18 +908,39 @@
 : NodeType(Opc), NodeId(-1) {
 OperandsNeedDelete = true;
 NumOperands = NumOps;
-OperandList = new SDOperand[NumOperands];
+OperandList = NumOps ? new SDOperand[NumOperands] : 0;
 
-for (unsigned i = 0, e = NumOps; i != e; ++i) {
+for (unsigned i = 0; i != NumOps; ++i) {
   OperandList[i] = Ops[i];
-  SDNode *N = OperandList[i].Val;
-  N-Uses.push_back(this);
+  Ops[i].Val-Uses.push_back(this);
 }
+
 ValueList = VTs.VTs;
 NumValues = VTs.NumVTs;
 Prev = 0; Next = 0;
   }
-
+  SDNode(unsigned Opc, SDVTList VTs) : NodeType(Opc), NodeId(-1) {
+OperandsNeedDelete = false;  // Operands set with InitOperands.
+NumOperands = 0;
+OperandList = 0;
+
+ValueList = VTs.VTs;
+NumValues = VTs.NumVTs;
+Prev = 0; Next = 0;
+  }
+  
+  /// InitOperands - Initialize the operands list of this node with the
+  /// specified values, which are part of the node (thus they don't need to be
+  /// copied in or allocated).
+  void InitOperands(SDOperand *Ops, unsigned NumOps) {
+assert(OperandList == 0  Operands already set!);
+NumOperands = NumOps;
+OperandList = Ops;
+
+for (unsigned i = 0; i != NumOps; ++i)
+  Ops[i].Val-Uses.push_back(this);
+  }
+  
   /// MorphNodeTo - This frees the operands of the current node, resets the
   /// opcode, types, and operands to the specified value.  This should only be
   /// used by the SelectionDAG class.
@@ -980,11 +1001,14 @@
 /// the AllNodes list.
 class HandleSDNode : public SDNode {
   virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
+  SDOperand Op;
 public:
-  HandleSDNode(SDOperand X) : SDNode(ISD::HANDLENODE, getSDVTList(MVT::Other),
- X, 1) {}
+  HandleSDNode(SDOperand X)
+: SDNode(ISD::HANDLENODE, getSDVTList(MVT::Other)), Op(X) {
+InitOperands(Op, 1);
+  }
   ~HandleSDNode();  
-  SDOperand getValue() const { return getOperand(0); }
+  SDOperand getValue() const { return Op; }
 };
 
 class StringSDNode : public SDNode {
@@ -993,7 +1017,7 @@
 protected:
   friend class SelectionDAG;
   StringSDNode(const std::string val)
-: SDNode(ISD::STRING, getSDVTList(MVT::Other), 0, 0), Value(val) {
+: SDNode(ISD::STRING, getSDVTList(MVT::Other)), Value(val) {
   }
 public:
   const std::string getValue() const { return Value; }
@@ -1009,8 +1033,8 @@
 protected:
   friend class SelectionDAG;
   ConstantSDNode(bool isTarget, uint64_t val, MVT::ValueType VT)
-: SDNode(isTarget ? ISD::TargetConstant : ISD::Constant, getSDVTList(VT),
- 0, 0), Value(val) {
+: SDNode(isTarget ? ISD::TargetConstant : ISD::Constant, getSDVTList(VT)),
+  Value(val) {
   }
 public:
 
@@ -1040,8 +1064,7 @@
   friend class SelectionDAG;
   ConstantFPSDNode(bool isTarget, double val, MVT::ValueType VT)
 : SDNode(isTarget ? ISD::TargetConstantFP : ISD::ConstantFP,
- getSDVTList(VT), 0, 0), 
-  Value(val) {
+ getSDVTList(VT)), Value(val) {
   }
 public:
 
@@ -1067,10 +1090,9 @@
 protected:
   friend class SelectionDAG;
   GlobalAddressSDNode(bool isTarget, const GlobalValue *GA, MVT::ValueType VT,
-  int o=0)
+  int o = 0)
 : SDNode(isTarget ? ISD::TargetGlobalAddress : ISD::GlobalAddress,
- getSDVTList(VT), 0, 0),
-  Offset(o) {
+ getSDVTList(VT)), Offset(o) {
 TheGlobal = const_castGlobalValue*(GA);
   }
 public:
@@ -1092,8 +1114,8 @@
 protected:
   friend class SelectionDAG;
   FrameIndexSDNode(int fi, MVT::ValueType VT, bool isTarg)
-: SDNode(isTarg ? ISD::TargetFrameIndex : ISD::FrameIndex, getSDVTList(VT),
- 0, 0), FI(fi) {
+: SDNode(isTarg ? ISD::TargetFrameIndex : ISD::FrameIndex, 
getSDVTList(VT)),
+  FI(fi) {
   }
 public:
 
@@ -1112,8 +1134,8 @@
 protected:
   friend class SelectionDAG;
   JumpTableSDNode(int jti, 

[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

2007-02-04 Thread Chris Lattner


Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAG.cpp updated: 1.388 - 1.389
---
Log message:

Introduce new UnarySDNode/BinarySDNode/TernarySDNode nodes, which coallocate
their operands with the node itself.  This reduces malloc traffic for operand
lists.  This reduces isel time on kc++ from 2.6164 to 2.5570s, about 2.3%.


---
Diffs of the changes:  (+29 -12)

 SelectionDAG.cpp |   41 +
 1 files changed, 29 insertions(+), 12 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.388 
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.389
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.388Sun Feb  4 
01:37:24 2007
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp  Sun Feb  4 02:35:21 2007
@@ -939,7 +939,7 @@
   void *IP = 0;
   if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
 return SDOperand(E, 0);
-  SDNode *N = new SDNode(Opcode, SDNode::getSDVTList(VT), 0, 0);
+  SDNode *N = new SDNode(Opcode, SDNode::getSDVTList(VT));
   CSEMap.InsertNode(N, IP);
   
   AllNodes.push_back(N);
@@ -1113,17 +1113,17 @@
 
   SDNode *N;
   SDVTList VTs = getVTList(VT);
-  SDOperand Ops[1] = { Operand };
   if (VT != MVT::Flag) { // Don't CSE flag producing nodes
 FoldingSetNodeID ID;
+SDOperand Ops[1] = { Operand };
 AddNodeIDNode(ID, Opcode, VTs, Ops, 1);
 void *IP = 0;
 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
   return SDOperand(E, 0);
-N = new SDNode(Opcode, VTs, Ops, 1);
+N = new UnarySDNode(Opcode, VTs, Operand);
 CSEMap.InsertNode(N, IP);
   } else {
-N = new SDNode(Opcode, VTs, Ops, 1);
+N = new UnarySDNode(Opcode, VTs, Operand);
   }
   AllNodes.push_back(N);
   return SDOperand(N, 0);
@@ -1413,17 +1413,17 @@
   // Memoize this node if possible.
   SDNode *N;
   SDVTList VTs = getVTList(VT);
-  SDOperand Ops[] = { N1, N2 };
   if (VT != MVT::Flag) {
+SDOperand Ops[] = { N1, N2 };
 FoldingSetNodeID ID;
 AddNodeIDNode(ID, Opcode, VTs, Ops, 2);
 void *IP = 0;
 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
   return SDOperand(E, 0);
-N = new SDNode(Opcode, VTs, Ops, 2);
+N = new BinarySDNode(Opcode, VTs, N1, N2);
 CSEMap.InsertNode(N, IP);
   } else {
-N = new SDNode(Opcode, VTs, Ops, 2);
+N = new BinarySDNode(Opcode, VTs, N1, N2);
   }
 
   AllNodes.push_back(N);
@@ -1470,17 +1470,17 @@
   // Memoize node if it doesn't produce a flag.
   SDNode *N;
   SDVTList VTs = getVTList(VT);
-  SDOperand Ops[] = { N1, N2, N3 };
   if (VT != MVT::Flag) {
+SDOperand Ops[] = { N1, N2, N3 };
 FoldingSetNodeID ID;
 AddNodeIDNode(ID, Opcode, VTs, Ops, 3);
 void *IP = 0;
 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
   return SDOperand(E, 0);
-N = new SDNode(Opcode, VTs, Ops, 3);
+N = new TernarySDNode(Opcode, VTs, N1, N2, N3);
 CSEMap.InsertNode(N, IP);
   } else {
-N = new SDNode(Opcode, VTs, Ops, 3);
+N = new TernarySDNode(Opcode, VTs, N1, N2, N3);
   }
   AllNodes.push_back(N);
   return SDOperand(N, 0);
@@ -1809,10 +1809,24 @@
 void *IP = 0;
 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
   return SDOperand(E, 0);
-N = new SDNode(Opcode, VTList, Ops, NumOps);
+if (NumOps == 1)
+  N = new UnarySDNode(Opcode, VTList, Ops[0]);
+else if (NumOps == 2)
+  N = new BinarySDNode(Opcode, VTList, Ops[0], Ops[1]);
+else if (NumOps == 3)
+  N = new TernarySDNode(Opcode, VTList, Ops[0], Ops[1], Ops[2]);
+else
+  N = new SDNode(Opcode, VTList, Ops, NumOps);
 CSEMap.InsertNode(N, IP);
   } else {
-N = new SDNode(Opcode, VTList, Ops, NumOps);
+if (NumOps == 1)
+  N = new UnarySDNode(Opcode, VTList, Ops[0]);
+else if (NumOps == 2)
+  N = new BinarySDNode(Opcode, VTList, Ops[0], Ops[1]);
+else if (NumOps == 3)
+  N = new TernarySDNode(Opcode, VTList, Ops[0], Ops[1], Ops[2]);
+else
+  N = new SDNode(Opcode, VTList, Ops, NumOps);
   }
   AllNodes.push_back(N);
   return SDOperand(N, 0);
@@ -2490,6 +2504,9 @@
 
 // Out-of-line virtual method to give class a home.
 void SDNode::ANCHOR() {}
+void UnarySDNode::ANCHOR() {}
+void BinarySDNode::ANCHOR() {}
+void TernarySDNode::ANCHOR() {}
 void HandleSDNode::ANCHOR() {}
 void StringSDNode::ANCHOR() {}
 void ConstantSDNode::ANCHOR() {}



___
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/SelectionDAGNodes.h

2007-02-04 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

SelectionDAGNodes.h updated: 1.174 - 1.175
---
Log message:

Introduce new UnarySDNode/BinarySDNode/TernarySDNode nodes, which coallocate
their operands with the node itself.  This reduces malloc traffic for operand
lists.  This reduces isel time on kc++ from 2.6164 to 2.5570s, about 2.3%.


---
Diffs of the changes:  (+43 -0)

 SelectionDAGNodes.h |   43 +++
 1 files changed, 43 insertions(+)


Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.174 
llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.175
--- llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.174 Sun Feb  4 02:13:53 2007
+++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h   Sun Feb  4 02:35:21 2007
@@ -995,6 +995,49 @@
   return Val-hasNUsesOfValue(1, ResNo);
 }
 
+/// UnarySDNode - This class is used for single-operand SDNodes.  This is 
solely
+/// to allow co-allocation of node operands with the node itself.
+class UnarySDNode : public SDNode {
+  virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
+  SDOperand Op;
+public:
+  UnarySDNode(unsigned Opc, SDVTList VTs, SDOperand X)
+: SDNode(Opc, VTs), Op(X) {
+InitOperands(Op, 1);
+  }
+};
+
+/// BinarySDNode - This class is used for two-operand SDNodes.  This is solely
+/// to allow co-allocation of node operands with the node itself.
+class BinarySDNode : public SDNode {
+  virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
+  SDOperand Ops[2];
+public:
+  BinarySDNode(unsigned Opc, SDVTList VTs, SDOperand X, SDOperand Y)
+: SDNode(Opc, VTs) {
+Ops[0] = X;
+Ops[1] = Y;
+InitOperands(Ops, 2);
+  }
+};
+
+/// TernarySDNode - This class is used for three-operand SDNodes. This is 
solely
+/// to allow co-allocation of node operands with the node itself.
+class TernarySDNode : public SDNode {
+  virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
+  SDOperand Ops[3];
+public:
+  TernarySDNode(unsigned Opc, SDVTList VTs, SDOperand X, SDOperand Y,
+SDOperand Z)
+: SDNode(Opc, VTs) {
+Ops[0] = X;
+Ops[1] = Y;
+Ops[2] = Z;
+InitOperands(Ops, 3);
+  }
+};
+
+
 /// HandleSDNode - This class is used to form a handle around another node that
 /// is persistant and is updated across invocations of replaceAllUsesWith on 
its
 /// operand.  This node should be directly created by end-users and not added 
to



___
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/ScheduleDAG.h

2007-02-04 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

ScheduleDAG.h updated: 1.36 - 1.37
---
Log message:

switch the VRBaseMap in the scheduler from an std::map to a DenseMap.  This 
speeds up the isel pass from 2.5570s to 2.4722s on kc++ (3.4%).


---
Diffs of the changes:  (+2 -2)

 ScheduleDAG.h |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/CodeGen/ScheduleDAG.h
diff -u llvm/include/llvm/CodeGen/ScheduleDAG.h:1.36 
llvm/include/llvm/CodeGen/ScheduleDAG.h:1.37
--- llvm/include/llvm/CodeGen/ScheduleDAG.h:1.36Fri Feb  2 19:34:13 2007
+++ llvm/include/llvm/CodeGen/ScheduleDAG.h Sun Feb  4 02:47:20 2007
@@ -240,7 +240,7 @@
 /// VRBaseMap contains, for each already emitted node, the first virtual
 /// register number for the results of the node.
 ///
-void EmitNode(SDNode *Node, std::mapSDNode*, unsigned VRBaseMap);
+void EmitNode(SDNode *Node, DenseMapSDNode*, unsigned VRBaseMap);
 
 /// EmitNoop - Emit a noop instruction.
 ///
@@ -257,7 +257,7 @@
   private:
 void AddOperand(MachineInstr *MI, SDOperand Op, unsigned IIOpNum,
 const TargetInstrDescriptor *II,
-std::mapSDNode*, unsigned VRBaseMap);
+DenseMapSDNode*, unsigned VRBaseMap);
   };
 
   /// createBFS_DAGScheduler - This creates a simple breadth first instruction



___
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/ScheduleDAG.cpp ScheduleDAGSimple.cpp

2007-02-04 Thread Chris Lattner


Changes in directory llvm/lib/CodeGen/SelectionDAG:

ScheduleDAG.cpp updated: 1.117 - 1.118
ScheduleDAGSimple.cpp updated: 1.24 - 1.25
---
Log message:

switch the VRBaseMap in the scheduler from an std::map to a DenseMap.  This 
speeds up the isel pass from 2.5570s to 2.4722s on kc++ (3.4%).


---
Diffs of the changes:  (+6 -6)

 ScheduleDAG.cpp   |   10 +-
 ScheduleDAGSimple.cpp |2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.117 
llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.118
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.117 Fri Jan 26 08:34:51 2007
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp   Sun Feb  4 02:47:20 2007
@@ -269,8 +269,8 @@
 
 /// getVR - Return the virtual register corresponding to the specified result
 /// of the specified node.
-static unsigned getVR(SDOperand Op, std::mapSDNode*, unsigned VRBaseMap) {
-  std::mapSDNode*, unsigned::iterator I = VRBaseMap.find(Op.Val);
+static unsigned getVR(SDOperand Op, DenseMapSDNode*, unsigned VRBaseMap) {
+  DenseMapSDNode*, unsigned::iterator I = VRBaseMap.find(Op.Val);
   assert(I != VRBaseMap.end()  Node emitted out of order - late);
   return I-second + Op.ResNo;
 }
@@ -283,7 +283,7 @@
 void ScheduleDAG::AddOperand(MachineInstr *MI, SDOperand Op,
  unsigned IIOpNum,
  const TargetInstrDescriptor *II,
- std::mapSDNode*, unsigned VRBaseMap) {
+ DenseMapSDNode*, unsigned VRBaseMap) {
   if (Op.isTargetOpcode()) {
 // Note that this case is redundant with the final else block, but we
 // include it because it is the most common and it makes the logic
@@ -371,7 +371,7 @@
 /// EmitNode - Generate machine code for an node and needed dependencies.
 ///
 void ScheduleDAG::EmitNode(SDNode *Node, 
-   std::mapSDNode*, unsigned VRBaseMap) {
+   DenseMapSDNode*, unsigned VRBaseMap) {
   unsigned VRBase = 0; // First virtual register for node
   
   // If machine instruction
@@ -595,7 +595,7 @@
   
   
   // Finally, emit the code for all of the scheduled instructions.
-  std::mapSDNode*, unsigned VRBaseMap;
+  DenseMapSDNode*, unsigned VRBaseMap;
   for (unsigned i = 0, e = Sequence.size(); i != e; i++) {
 if (SUnit *SU = Sequence[i]) {
   for (unsigned j = 0, ee = SU-FlaggedNodes.size(); j != ee; j++)


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.24 
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.25
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.24Wed Jan 31 
22:55:59 2007
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp Sun Feb  4 02:47:20 2007
@@ -682,7 +682,7 @@
   LI-first, RegMap-getRegClass(LI-second));
   }
   
-  std::mapSDNode*, unsigned VRBaseMap;
+  DenseMapSDNode*, unsigned VRBaseMap;
   
   // For each node in the ordering
   for (unsigned i = 0, N = Ordering.size(); i  N; i++) {



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-test/MultiSource/Applications/JM/disclaimer.txt Readme.txt

2007-02-04 Thread Anton Korobeynikov


Changes in directory llvm-test/MultiSource/Applications/JM:

disclaimer.txt added (r1.1)
Readme.txt updated: 1.1 - 1.2
---
Log message:

Old JM version removed


---
Diffs of the changes:  (+32 -2)

 Readme.txt |9 +++--
 disclaimer.txt |   25 +
 2 files changed, 32 insertions(+), 2 deletions(-)


Index: llvm-test/MultiSource/Applications/JM/disclaimer.txt
diff -c /dev/null llvm-test/MultiSource/Applications/JM/disclaimer.txt:1.1
*** /dev/null   Sun Feb  4 08:24:03 2007
--- llvm-test/MultiSource/Applications/JM/disclaimer.txtSun Feb  4 
08:23:53 2007
***
*** 0 
--- 1,25 
+ /*
+  * Disclaimer of Warranty
+  *
+  * These software programs are available to the user without any
+  * license fee or royalty on an as is basis. The ITU-T
+  * disclaims any and all warranties, whether express, implied, or
+  * statutory, including any implied warranties of merchantability
+  * or of fitness for a particular purpose.  In no event shall the
+  * copyright-holder be liable for any incidental, punitive, or
+  * consequential damages of any kind whatsoever arising from the
+  * use of these programs.
+  *
+  * This disclaimer of warranty extends to the user of these programs
+  * and user's customers, employees, agents, transferees, successors,
+  * and assigns.
+  *
+  * The ITU-T does not represent or warrant that the programs furnished
+  * hereunder are free of infringement of any third-party patents.
+  * Commercial implementations of ITU-T standards, including shareware,
+  * may be subject to royalty fees to patent holders.  Information
+  * regarding the ITU patent policy is available from the ITU
+  * Web site at http://www.itu.int.
+  *
+  */
+ 


Index: llvm-test/MultiSource/Applications/JM/Readme.txt
diff -u llvm-test/MultiSource/Applications/JM/Readme.txt:1.1 
llvm-test/MultiSource/Applications/JM/Readme.txt:1.2
--- llvm-test/MultiSource/Applications/JM/Readme.txt:1.1Sat Feb 11 
04:33:22 2006
+++ llvm-test/MultiSource/Applications/JM/Readme.txtSun Feb  4 08:23:53 2007
@@ -16,8 +16,13 @@
 1.1 Windows
 ---
   
-  A workspace for MS Visual C++ is provided with the name tml.dsw. It 
contains
-  the encoder and decoder projects.
+  Workspaces for MS Visual C++ 6.0/2003/2005 are provided with the nams 
+
+jm.dsw  - MS Visual C++ 6.0
+jm_vc7.sln  - MS Visual C++ 2003
+jm_vc8.sln  - MS Visual C++ 2005
+
+  These contain encoder and decoder projects.
 
 
 1.2 Unix



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-test/MultiSource/Applications/JM/ldecod/data/.cvsignore decoder.cfg test.264 test_rec.yuv

2007-02-04 Thread LLVM


Changes in directory llvm-test/MultiSource/Applications/JM/ldecod/data:

.cvsignore (r1.2) removed
decoder.cfg (r1.1) removed
test.264 (r1.2) removed
test_rec.yuv (r1.1) removed
---
Log message:

Old JM version removed


---
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/MultiSource/Applications/JM/lencod/data/.cvsignore encoder.cfg foreman_part_qcif.yuv leakybucketparam.cfg test_rec.yuv

2007-02-04 Thread LLVM


Changes in directory llvm-test/MultiSource/Applications/JM/lencod/data:

.cvsignore (r1.1) removed
encoder.cfg (r1.1) removed
foreman_part_qcif.yuv (r1.1) removed
leakybucketparam.cfg (r1.1) removed
test_rec.yuv (r1.1) removed
---
Log message:

Old JM version removed


---
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/MultiSource/Applications/JM/lencod/.cvsignore Makefile annexb.c annexb.h biariencode.c biariencode.h block.c block.h cabac.c cabac.h configfile.c configfile.h context_ini

2007-02-04 Thread LLVM


Changes in directory llvm-test/MultiSource/Applications/JM/lencod:

.cvsignore (r1.2) removed
Makefile (r1.1) removed
annexb.c (r1.1) removed
annexb.h (r1.1) removed
biariencode.c (r1.1) removed
biariencode.h (r1.1) removed
block.c (r1.1) removed
block.h (r1.1) removed
cabac.c (r1.1) removed
cabac.h (r1.1) removed
configfile.c (r1.1) removed
configfile.h (r1.1) removed
context_ini.c (r1.1) removed
context_ini.h (r1.1) removed
contributors.h (r1.1) removed
ctx_tables.h (r1.1) removed
decoder.c (r1.1) removed
defines.h (r1.1) removed
elements.h (r1.1) removed
epzs.c (r1.1) removed
epzs.h (r1.1) removed
explicit_gop.c (r1.1) removed
explicit_gop.h (r1.1) removed
fast_me.c (r1.1) removed
fast_me.h (r1.1) removed
filehandle.c (r1.1) removed
fmo.c (r1.1) removed
fmo.h (r1.1) removed
global.h (r1.1) removed
header.c (r1.1) removed
header.h (r1.1) removed
image.c (r1.1) removed
image.h (r1.1) removed
intrarefresh.c (r1.1) removed
intrarefresh.h (r1.1) removed
leaky_bucket.c (r1.1) removed
leaky_bucket.h (r1.1) removed
lencod.c (r1.1) removed
loopFilter.c (r1.1) removed
macroblock.c (r1.1) removed
macroblock.h (r1.1) removed
mb_access.c (r1.1) removed
mb_access.h (r1.1) removed
mbuffer.c (r1.1) removed
mbuffer.h (r1.1) removed
memalloc.c (r1.1) removed
memalloc.h (r1.1) removed
minmax.h (r1.1) removed
mode_decision.c (r1.1) removed
mode_decision.h (r1.1) removed
mv-search.c (r1.1) removed
mv-search.h (r1.1) removed
nal.c (r1.1) removed
nalu.c (r1.1) removed
nalu.h (r1.1) removed
nalucommon.c (r1.1) removed
nalucommon.h (r1.1) removed
output.c (r1.1) removed
output.h (r1.1) removed
parset.c (r1.1) removed
parset.h (r1.1) removed
parsetcommon.c (r1.1) removed
parsetcommon.h (r1.1) removed
q_matrix.c (r1.2) removed
q_matrix.h (r1.1) removed
q_offsets.c (r1.2) removed
q_offsets.h (r1.1) removed
ratectl.c (r1.1) removed
ratectl.h (r1.1) removed
rdopt.c (r1.1) removed
rdopt_coding_state.c (r1.1) removed
rdopt_coding_state.h (r1.1) removed
rdpicdecision.c (r1.1) removed
refbuf.c (r1.1) removed
refbuf.h (r1.1) removed
rtp.c (r1.1) removed
rtp.h (r1.1) removed
sei.c (r1.1) removed
sei.h (r1.1) removed
simplified_fast_me.c (r1.1) removed
simplified_fast_me.h (r1.1) removed
slice.c (r1.1) removed
transform8x8.c (r1.1) removed
transform8x8.h (r1.1) removed
vlc.c (r1.1) removed
vlc.h (r1.1) removed
weighted_prediction.c (r1.1) removed
---
Log message:

Old JM version removed


---
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/External/SPEC/Makefile.spec

2007-02-04 Thread Reid Spencer


Changes in directory llvm-test/External/SPEC:

Makefile.spec updated: 1.60 - 1.61
---
Log message:

For PR1165: http://llvm.org/PR1165 :
gccas-pass-args - opt-pass-args


---
Diffs of the changes:  (+2 -2)

 Makefile.spec |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm-test/External/SPEC/Makefile.spec
diff -u llvm-test/External/SPEC/Makefile.spec:1.60 
llvm-test/External/SPEC/Makefile.spec:1.61
--- llvm-test/External/SPEC/Makefile.spec:1.60  Mon Dec  4 16:07:46 2006
+++ llvm-test/External/SPEC/Makefile.spec   Sun Feb  4 13:39:34 2007
@@ -121,9 +121,9 @@
 # Rules to bugpoint the GCCAS, GCCLD, LLC, or LLI commands...
 $(PROGRAMS_TO_TEST:%=Output/%.bugpoint-gccas): \
 Output/%.bugpoint-gccas: Output/%.noopt-llvm.bc $(LBUGPOINT) \
- Output/gccas-pass-args Output/%.out-nat
+ Output/opt-pass-args Output/%.out-nat
$(SPEC_SANDBOX) bugpoint-$(RUN_TYPE) $@ $(REF_IN_DIR) \
-   $(LBUGPOINT) ../$*.noopt-llvm.bc `cat Output/gccas-pass-args` 
$(OPTPASSES) \
+   $(LBUGPOINT) ../$*.noopt-llvm.bc `cat Output/opt-pass-args` 
$(OPTPASSES) \
$(BUGPOINT_OPTIONS) $(BUGPOINT_ARGS)
@echo === Leaving Output/bugpoint-$(RUN_TYPE)
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/CodeGen/X86/2007-02-04-OrAddrMode.ll

2007-02-04 Thread Chris Lattner


Changes in directory llvm/test/CodeGen/X86:

2007-02-04-OrAddrMode.ll added (r1.1)
---
Log message:

new testcase for x86 backend miscompilation


---
Diffs of the changes:  (+21 -0)

 2007-02-04-OrAddrMode.ll |   21 +
 1 files changed, 21 insertions(+)


Index: llvm/test/CodeGen/X86/2007-02-04-OrAddrMode.ll
diff -c /dev/null llvm/test/CodeGen/X86/2007-02-04-OrAddrMode.ll:1.1
*** /dev/null   Sun Feb  4 14:15:25 2007
--- llvm/test/CodeGen/X86/2007-02-04-OrAddrMode.ll  Sun Feb  4 14:15:15 2007
***
*** 0 
--- 1,21 
+ ; RUN: llvm-as  %s | llc -march=x86 | grep 'orl $1, %eax' 
+ ; RUN: llvm-as  %s | llc -march=x86 | grep 'leal 3(,%eax,8)'
+ 
+ ;; This example can't fold the or into an LEA.
+ define i32 @test(float ** %tmp2, i32 %tmp12) {
+   %tmp3 = load float** %tmp2
+   %tmp132 = shl i32 %tmp12, 2 ; i32 [#uses=1]
+   %tmp3 = bitcast float* %tmp3 to i8* ; i8* [#uses=1]
+   %ctg2 = getelementptr i8* %tmp3, i32 %tmp132; i8* 
[#uses=1]
+   %tmp6 = ptrtoint i8* %ctg2 to i32   ; i32 [#uses=1]
+   %tmp14 = or i32 %tmp6, 1; i32 [#uses=1]
+   ret i32 %tmp14
+ }
+ 
+ 
+ ;; This can!
+ define i32 @test2(i32 %a, i32 %b) {
+   %c = shl i32 %a, 3
+   %d = or i32 %c, 3
+   ret i32 %d
+ }



___
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/X86ISelDAGToDAG.cpp

2007-02-04 Thread Chris Lattner


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.144 - 1.145
---
Log message:

Fix a miscompilation in the addr mode code trying to implement X | C and 
X + C to promote LEA formation.  We would incorrectly apply it in some cases
(test) and miss it in others.

This fixes CodeGen/X86/2007-02-04-OrAddrMode.ll



---
Diffs of the changes:  (+17 -20)

 X86ISelDAGToDAG.cpp |   37 +
 1 files changed, 17 insertions(+), 20 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.144 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.145
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.144   Mon Jan 22 15:34:25 2007
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Sun Feb  4 14:18:17 2007
@@ -677,7 +677,7 @@
 if (!Available 
 AM.BaseType == X86ISelAddressMode::RegBase 
 AM.Base.Reg.Val == 0 
-AM.IndexReg.Val == 0)
+AM.IndexReg.Val == 0) {
   if (ConstantSDNode *CN = dyn_castConstantSDNode(N.Val-getOperand(1)))
 if (CN-getValue() == 3 || CN-getValue() == 5 || CN-getValue() == 9) 
{
   AM.Scale = unsigned(CN-getValue())-1;
@@ -705,9 +705,10 @@
   AM.IndexReg = AM.Base.Reg = Reg;
   return false;
 }
+}
 break;
 
-  case ISD::ADD: {
+  case ISD::ADD:
 if (!Available) {
   X86ISelAddressMode Backup = AM;
   if (!MatchAddress(N.Val-getOperand(0), AM, false) 
@@ -720,32 +721,28 @@
   AM = Backup;
 }
 break;
-  }
 
-  case ISD::OR: {
+  case ISD::OR:
+// Handle X | C as X + C iff X is known to have C bits clear.
 if (!Available) {
-  X86ISelAddressMode Backup = AM;
-  // Look for (x  c1) | c2 where (c2  c1)
-  ConstantSDNode *CN = dyn_castConstantSDNode(N.Val-getOperand(0));
-  if (CN  !MatchAddress(N.Val-getOperand(1), AM, false)) {
-if (AM.GV == NULL  AM.Disp == 0  CN-getValue()  AM.Scale) {
-  AM.Disp = CN-getValue();
+  if (ConstantSDNode *CN = dyn_castConstantSDNode(N.getOperand(1))) {
+X86ISelAddressMode Backup = AM;
+// Start with the LHS as an addr mode.
+if (!MatchAddress(N.getOperand(0), AM, false) 
+// Address could not have picked a GV address for the displacement.
+AM.GV == NULL 
+// On x86-64, the resultant disp must fit in 32-bits.
+isInt32(AM.Disp + CN-getSignExtended()) 
+// Check to see if the LHS  C is zero.
+TLI.MaskedValueIsZero(N.getOperand(0), CN-getValue())) {
+  AM.Disp += CN-getValue();
   return false;
 }
+AM = Backup;
   }
-  AM = Backup;
-  CN = dyn_castConstantSDNode(N.Val-getOperand(1));
-  if (CN  !MatchAddress(N.Val-getOperand(0), AM, false)) {
-if (AM.GV == NULL  AM.Disp == 0  CN-getValue()  AM.Scale) {
-  AM.Disp = CN-getValue();
-  return false;
-}
-  }
-  AM = Backup;
 }
 break;
   }
-  }
 
   // Is the base register already occupied?
   if (AM.BaseType != X86ISelAddressMode::RegBase || AM.Base.Reg.Val) {



___
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/Makefile

2007-02-04 Thread Reid Spencer


Changes in directory llvm/tools/llvm-config:

Makefile updated: 1.22 - 1.23
---
Log message:

Fix grammaro in output message.


---
Diffs of the changes:  (+1 -1)

 Makefile |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/tools/llvm-config/Makefile
diff -u llvm/tools/llvm-config/Makefile:1.22 
llvm/tools/llvm-config/Makefile:1.23
--- llvm/tools/llvm-config/Makefile:1.22Sun Jan 21 09:53:18 2007
+++ llvm/tools/llvm-config/Makefile Sun Feb  4 16:08:16 2007
@@ -39,7 +39,7 @@
 
 $(LibDeps): $(LibDepsTemp)
$(Verb) $(CMP) -s $@ $ || ( $(CP) $ $@  \
- $(EchoCmd) Updated LibDeps.txt because dependencies changes )
+ $(EchoCmd) Updated LibDeps.txt because dependencies changed )
 
 # Find all the cyclic dependencies between various LLVM libraries, so we
 # don't have to process them at runtime.



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/Makefile.rules

2007-02-04 Thread Reid Spencer


Changes in directory llvm:

Makefile.rules updated: 1.420 - 1.421
---
Log message:

When using LINK_COMPONENTS, append the components to the end of the 
libraries linked with. This permits a project to still use USEDLIBS to 
specify its own libraries in conjunction with LINK_COMPONENTS. llvm-stacker
needs this after libLLVMTransforms.a went away.


---
Diffs of the changes:  (+2 -2)

 Makefile.rules |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/Makefile.rules
diff -u llvm/Makefile.rules:1.420 llvm/Makefile.rules:1.421
--- llvm/Makefile.rules:1.420   Fri Jan 26 07:34:50 2007
+++ llvm/Makefile.rules Sun Feb  4 16:12:25 2007
@@ -681,8 +681,8 @@
 
 $(ToolDir)/$(strip $(TOOLNAME))$(EXEEXT): $(LLVM_CONFIG)
 
-ProjLibsOptions = $(shell $(LLVM_CONFIG) --libs $(LINK_COMPONENTS))
-ProjLibsPaths   = $(LLVM_CONFIG) \
+ProjLibsOptions += $(shell $(LLVM_CONFIG) --libs $(LINK_COMPONENTS))
+ProjLibsPaths   += $(LLVM_CONFIG) \
   $(shell $(LLVM_CONFIG) --libfiles $(LINK_COMPONENTS))
 endif
 endif



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-stacker/lib/runtime/Makefile

2007-02-04 Thread Reid Spencer


Changes in directory llvm-stacker/lib/runtime:

Makefile updated: 1.6 - 1.7
---
Log message:

Make Stacker makefiles more compliant with LLVM standards. 
Fix linkage problems after libLLVMTransforms.a was removed.


---
Diffs of the changes:  (+3 -3)

 Makefile |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)


Index: llvm-stacker/lib/runtime/Makefile
diff -u llvm-stacker/lib/runtime/Makefile:1.6 
llvm-stacker/lib/runtime/Makefile:1.7
--- llvm-stacker/lib/runtime/Makefile:1.6   Thu Nov  2 18:08:08 2006
+++ llvm-stacker/lib/runtime/Makefile   Sun Feb  4 16:25:16 2007
@@ -1,11 +1,11 @@
-##===- projects/Stacker/lib/runtime/Makefile ---*- Makefile 
-*-===##
-# 
+#===-- projects/llvm-stacker/lib/runtime/Makefile ---*- Makefile 
-*-===#
+#
 # The LLVM Compiler Infrastructure
 #
 # This file was developed by Reid Spencer and is distributed under the 
 # University of Illinois Open Source License. See LICENSE.TXT for details.
 # 
-##===--===##
+#======#
 
 LEVEL = ../..
 DONT_BUILD_RELINKED = 1



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-stacker/tools/Makefile

2007-02-04 Thread Reid Spencer


Changes in directory llvm-stacker/tools:

Makefile updated: 1.3 - 1.4
---
Log message:

Make Stacker makefiles more compliant with LLVM standards. 
Fix linkage problems after libLLVMTransforms.a was removed.


---
Diffs of the changes:  (+7 -11)

 Makefile |   18 +++---
 1 files changed, 7 insertions(+), 11 deletions(-)


Index: llvm-stacker/tools/Makefile
diff -u llvm-stacker/tools/Makefile:1.3 llvm-stacker/tools/Makefile:1.4
--- llvm-stacker/tools/Makefile:1.3 Sat Sep  4 14:48:50 2004
+++ llvm-stacker/tools/Makefile Sun Feb  4 16:25:16 2007
@@ -1,20 +1,16 @@
-##===- projects/Stacker/tools/Makefile -*- Makefile 
-*-===##
+#===-- projects/llvm-stacker/tools/Makefile -*- Makefile 
-*-===#
 #
-# This is the stacker tools makefile
+# The LLVM Compiler Infrastructure
 #
-##===--===##
+# This file was developed by Reid Spencer and is distributed under the 
+# University of Illinois Open Source License. See LICENSE.TXT for details.
+# 
+#======#
 
-#
 # Indicates our relative path to the top of the project's root directory.
-#
 LEVEL = ..
 
-#
-# Directories that needs to be built.
-#
+# Directories that need to be built.
 DIRS = stkrc
 
-#
-# Include the Master Makefile that knows how to build all.
-#
 include $(LEVEL)/Makefile.common



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-stacker/tools/stkrc/Makefile

2007-02-04 Thread Reid Spencer


Changes in directory llvm-stacker/tools/stkrc:

Makefile updated: 1.12 - 1.13
---
Log message:

Make Stacker makefiles more compliant with LLVM standards. 
Fix linkage problems after libLLVMTransforms.a was removed.


---
Diffs of the changes:  (+17 -14)

 Makefile |   31 +--
 1 files changed, 17 insertions(+), 14 deletions(-)


Index: llvm-stacker/tools/stkrc/Makefile
diff -u llvm-stacker/tools/stkrc/Makefile:1.12 
llvm-stacker/tools/stkrc/Makefile:1.13
--- llvm-stacker/tools/stkrc/Makefile:1.12  Thu Jul  6 19:20:39 2006
+++ llvm-stacker/tools/stkrc/Makefile   Sun Feb  4 16:25:16 2007
@@ -1,22 +1,29 @@
-##===- projects/Stacker/lib/stkrc/Makefile -*- Makefile 
-*-===##
-
+#===-- projects/llvm-stacker/tools/stkrc/Makefile ---*- Makefile 
-*-===#
 #
-# Indicate where we are relative to the top of the source tree.
+# The LLVM Compiler Infrastructure
 #
+# This file was developed by Reid Spencer and is distributed under the 
+# University of Illinois Open Source License. See LICENSE.TXT for details.
+# 
+#======#
+
+# Indicate where we are relative to the top of the source tree.
 LEVEL=../..
 
-#
 # Give the name of a library.  This will build a dynamic version.
-#
 TOOLNAME = stkrc
-LLVMLIBS = LLVMAsmParser.a LLVMBCWriter.a LLVMipo.a LLVMScalarOpts.a \
- LLVMTransforms.a LLVMTransformUtils.a LLVMipa.a LLVMAnalysis.a \
- LLVMTarget.a LLVMCore.a LLVMSupport.a LLVMbzip2.a LLVMSystem.a 
+
+# Define the link components
+USEDLIBS=stkr_compiler 
+LINK_COMPONENTS = asmparser bcwriter ipo scalaropts \
+ transformutils ipa analysis target $(TARGETS_TO_BUILD) core
+
+# Define our configuration files
 CONFIG_FILES = st
 EXTRA_DIST = st
-USEDLIBS=stkr_compiler 
-REQUIRES_EH := 1
 
+# We need exception handling
+REQUIRES_EH := 1
 
 ifdef PARSE_DEBUG
 CPPFLAGS = -DPARSE_DEBUG=1
@@ -26,8 +33,4 @@
 CPPFLAGS += -DFLEX_DEBUG=1
 endif
 
-#
-# Include Makefile.common so we know what to do.
-#
 include $(LEVEL)/Makefile.common
-



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-stacker/lib/Makefile

2007-02-04 Thread Reid Spencer


Changes in directory llvm-stacker/lib:

Makefile updated: 1.8 - 1.9
---
Log message:

Make Stacker makefiles more compliant with LLVM standards. 
Fix linkage problems after libLLVMTransforms.a was removed.


---
Diffs of the changes:  (+9 -3)

 Makefile |   12 +---
 1 files changed, 9 insertions(+), 3 deletions(-)


Index: llvm-stacker/lib/Makefile
diff -u llvm-stacker/lib/Makefile:1.8 llvm-stacker/lib/Makefile:1.9
--- llvm-stacker/lib/Makefile:1.8   Sat Nov  4 21:58:44 2006
+++ llvm-stacker/lib/Makefile   Sun Feb  4 16:25:16 2007
@@ -1,8 +1,15 @@
-##===- projects/Stacker/lib/Makefile ---*- Makefile 
-*-===##
+#===-- projects/llvm-stacker/lib/Makefile ---*- Makefile 
-*-===#
+#
+# The LLVM Compiler Infrastructure
+#
+# This file was developed by Reid Spencer and is distributed under the 
+# University of Illinois Open Source License. See LICENSE.TXT for details.
+# 
+#======#
 #
 # Compile Stacker libraries
 #
-##===--===##
+#======#
 
 LEVEL = ..
 DIRS = compiler runtime
@@ -13,4 +20,3 @@
 ifeq ($(strip $(LLVMGCC)),)
   DIRS := $(filter-out runtime, $(DIRS))
 endif
-



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-stacker/samples/Makefile

2007-02-04 Thread Reid Spencer


Changes in directory llvm-stacker/samples:

Makefile updated: 1.8 - 1.9
---
Log message:

Make Stacker makefiles more compliant with LLVM standards. 
Fix linkage problems after libLLVMTransforms.a was removed.


---
Diffs of the changes:  (+10 -5)

 Makefile |   15 ++-
 1 files changed, 10 insertions(+), 5 deletions(-)


Index: llvm-stacker/samples/Makefile
diff -u llvm-stacker/samples/Makefile:1.8 llvm-stacker/samples/Makefile:1.9
--- llvm-stacker/samples/Makefile:1.8   Sat Oct 30 04:26:22 2004
+++ llvm-stacker/samples/Makefile   Sun Feb  4 16:25:16 2007
@@ -1,12 +1,17 @@
-##===- projects/sample/Makefile *- Makefile 
-*-===##
+#===-- projects/llvm-stacker/samples/Makefile ---*- Makefile 
-*-===#
 #
-# This is a sample Makefile for a project that uses LLVM.
+# The LLVM Compiler Infrastructure
 #
-##===--===##
-
+# This file was developed by Reid Spencer and is distributed under the 
+# University of Illinois Open Source License. See LICENSE.TXT for details.
+# 
+#======#
 #
-# Indicates our relative path to the top of the project's root directory.
+# This makefile builds some sample stacker programs.
 #
+#======#
+
+# Indicates our relative path to the top of the project's root directory.
 LEVEL = ../../..
 DIRS = 
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-stacker/lib/compiler/Makefile

2007-02-04 Thread Reid Spencer


Changes in directory llvm-stacker/lib/compiler:

Makefile updated: 1.10 - 1.11
---
Log message:

Make Stacker makefiles more compliant with LLVM standards. 
Fix linkage problems after libLLVMTransforms.a was removed.


---
Diffs of the changes:  (+8 -1)

 Makefile |9 -
 1 files changed, 8 insertions(+), 1 deletion(-)


Index: llvm-stacker/lib/compiler/Makefile
diff -u llvm-stacker/lib/compiler/Makefile:1.10 
llvm-stacker/lib/compiler/Makefile:1.11
--- llvm-stacker/lib/compiler/Makefile:1.10 Fri Aug 25 12:15:23 2006
+++ llvm-stacker/lib/compiler/Makefile  Sun Feb  4 16:25:16 2007
@@ -1,4 +1,11 @@
-##===- projects/Stacker/lib/compiler/Makefile --*- Makefile 
-*-===##
+#===-- projects/llvm-stacker/lib/compiler/Makefile --*- Makefile 
-*-===#
+#
+# The LLVM Compiler Infrastructure
+#
+# This file was developed by Reid Spencer and is distributed under the 
+# University of Illinois Open Source License. See LICENSE.TXT for details.
+# 
+#======#
 
 LEVEL := ../..
 LIBRARYNAME := stkr_compiler



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-stacker/test/Makefile

2007-02-04 Thread Reid Spencer


Changes in directory llvm-stacker/test:

Makefile updated: 1.11 - 1.12
---
Log message:

Make Stacker makefiles more compliant with LLVM standards. 
Fix linkage problems after libLLVMTransforms.a was removed.


---
Diffs of the changes:  (+9 -8)

 Makefile |   17 +
 1 files changed, 9 insertions(+), 8 deletions(-)


Index: llvm-stacker/test/Makefile
diff -u llvm-stacker/test/Makefile:1.11 llvm-stacker/test/Makefile:1.12
--- llvm-stacker/test/Makefile:1.11 Wed Dec 13 02:03:25 2006
+++ llvm-stacker/test/Makefile  Sun Feb  4 16:25:16 2007
@@ -1,22 +1,23 @@
-##===- projects/Stacker/test/Makefile --*- Makefile 
-*-===##
+#===-- projects/llvm-stacker/test/Makefile --*- Makefile 
-*-===#
+#
+# The LLVM Compiler Infrastructure
+#
+# This file was developed by Reid Spencer and is distributed under the 
+# University of Illinois Open Source License. See LICENSE.TXT for details.
+# 
+#======#
 #
 # This is the makefile that tests the various facilities of the Stacker 
language
 #
-##===--===##
+#======#
 
-#
 # Indicates our relative path to the top of the project's root directory.
-#
 LEVEL = ../
 
-#
 # Directories that need to be built.
-#
 DIRS =
 
-#
 # Include the Master Makefile that knows how to build all.
-#
 include $(LEVEL)/Makefile.common
 
 LOGIC_TESTS = eq ne le ge gt lt false true



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/CodeGen/AsmPrinter.cpp

2007-02-04 Thread Anton Korobeynikov


Changes in directory llvm/lib/CodeGen:

AsmPrinter.cpp updated: 1.143 - 1.144
---
Log message:

Fixing silly not-implemented bug in AsmPrinter. This fixes PR1169: 
http://llvm.org/PR1169 .


---
Diffs of the changes:  (+4 -2)

 AsmPrinter.cpp |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)


Index: llvm/lib/CodeGen/AsmPrinter.cpp
diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.143 
llvm/lib/CodeGen/AsmPrinter.cpp:1.144
--- llvm/lib/CodeGen/AsmPrinter.cpp:1.143   Thu Feb  1 11:46:10 2007
+++ llvm/lib/CodeGen/AsmPrinter.cpp Sun Feb  4 17:27:42 2007
@@ -608,7 +608,8 @@
 }
   } else if (const ConstantExpr *CE = dyn_castConstantExpr(CV)) {
 const TargetData *TD = TM.getTargetData();
-switch(CE-getOpcode()) {
+unsigned Opcode = CE-getOpcode();
+switch (Opcode) {
 case Instruction::GetElementPtr: {
   // generate a symbolic expression for the byte address
   const Constant *ptrVal = CE-getOperand(0);
@@ -666,9 +667,10 @@
   break;
 }
 case Instruction::Add:
+case Instruction::Sub:
   O  (;
   EmitConstantValueOnly(CE-getOperand(0));
-  O  ) + (;
+  O  (Opcode==Instruction::Add ? ) + ( : ) - ();
   EmitConstantValueOnly(CE-getOperand(1));
   O  );
   break;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-test/Makefile.programs

2007-02-04 Thread Chris Lattner


Changes in directory llvm-test:

Makefile.programs updated: 1.254 - 1.255
---
Log message:

fix bugpoint-gccas target


---
Diffs of the changes:  (+1 -1)

 Makefile.programs |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm-test/Makefile.programs
diff -u llvm-test/Makefile.programs:1.254 llvm-test/Makefile.programs:1.255
--- llvm-test/Makefile.programs:1.254   Sun Feb  4 00:07:13 2007
+++ llvm-test/Makefile.programs Sun Feb  4 17:50:20 2007
@@ -288,7 +288,7 @@
 # Targets to get the pass arguments that gccas and gccld are using...
 Output/opt-pass-args: $(LOPT) Output/.dir
-$(LLVMAS)  /dev/null -o - | \
- $(LOPT) $(EXTRA_LOPT_OPTIONS) -disable-output -debug-pass=Arguments 
21 | \
+ $(LOPT) $(EXTRA_LOPT_OPTIONS) -std-compile-opts -disable-output 
-debug-pass=Arguments 21 | \
  sed 's/Pass Arguments: //' | sed 's/-emitbytecode//'  $@
 
 Output/gccld-pass-args: $(LGCCLDPROG) Output/.dir



___
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/PredicateSimplifier.cpp

2007-02-04 Thread Nick Lewycky


Changes in directory llvm/lib/Transforms/Scalar:

PredicateSimplifier.cpp updated: 1.51 - 1.52
---
Log message:

Fix indenting, remove tabs.

Learn from sext and zext. The destination value falls within the range of the
source type.

Generalize properties regarding constant ints.

Get smarter about marking blocks as unreachable. If 1 = 2 in order for this
block to execute, then it isn't reachable.



---
Diffs of the changes:  (+90 -32)

 PredicateSimplifier.cpp |  122 +++-
 1 files changed, 90 insertions(+), 32 deletions(-)


Index: llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp
diff -u llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.51 
llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.52
--- llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.51 Sat Feb  3 
18:40:41 2007
+++ llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp  Sun Feb  4 17:43:05 2007
@@ -52,7 +52,7 @@
 // responsible for analyzing the variable and seeing what new inferences
 // can be made from each property. For example:
 //
-//   %P = setne int* %ptr, null
+//   %P = icmp ne int* %ptr, null
 //   %a = and bool %P, %Q
 //   br bool %a label %cond_true, label %cond_false
 //
@@ -140,14 +140,14 @@
 
   static bool validPredicate(LatticeVal LV) {
 switch (LV) {
-case GT: case GE: case LT: case LE: case NE:
-case SGTULT: case SGT: case SGEULE:
-case SLTUGT: case SLT: case SLEUGE:
-case ULT: case UGT:
-case SLE: case SGE: case ULE: case UGE:
-  return true;
-default:
-  return false;
+  case GT: case GE: case LT: case LE: case NE:
+  case SGTULT: case SGT: case SGEULE:
+  case SLTUGT: case SLT: case SLEUGE:
+  case ULT: case UGT:
+  case SLE: case SGE: case ULE: case UGE:
+return true;
+  default:
+return false;
 }
   }
 
@@ -415,7 +415,7 @@
 if (iULT == end || iUGT == end) {
   if (iULT == end) iSLT = last;  else iSLT = iULT;
   if (iUGT == end) iSGT = begin; else iSGT = iUGT;
-   } else if (iULT-first-getSExtValue()  0) {
+} else if (iULT-first-getSExtValue()  0) {
   assert(iUGT-first-getSExtValue() = 0  Bad sign comparison.);
   iSGT = iUGT;
   iSLT = iULT;
@@ -424,7 +424,7 @@
  iUGT-first-getSExtValue()  0  Bad sign comparison.);
   iSGT = iULT;
   iSLT = iUGT;
-   }
+}
 
 if (iSGT != end 
 iSGT-first-getSExtValue()  CI-getSExtValue()) iSGT = end;
@@ -436,13 +436,13 @@
 if (iSLT == end ||
 begin-first-getSExtValue()  iSLT-first-getSExtValue())
   iSLT = begin;
-   }
+}
 if (last != end) {
   if (last-first-getSExtValue()  CI-getSExtValue())
 if (iSGT == end ||
 last-first-getSExtValue()  iSGT-first-getSExtValue())
   iSGT = last;
-   }
+}
   }
 
   if (iULT != end) addInequality(iULT-second, index, TreeRoot, ULT);
@@ -868,7 +868,7 @@
   if (n1) assert(V1 == IG.node(n1)-getValue()  Value isn't 
canonical.);
   if (n2) assert(V2 == IG.node(n2)-getValue()  Value isn't 
canonical.);
 
-  if (compare(V2, V1)) { std::swap(V1, V2); std::swap(n1, n2); }
+  assert(!compare(V2, V1)  Please order parameters to makeEqual.);
 
   assert(!isaConstant(V2)  Tried to remove a constant.);
 
@@ -1398,10 +1398,22 @@
 
 DEBUG(IG.dump());
 
-// TODO: actually check the constants and add to UB.
-if (isaConstant(O.LHS)  isaConstant(O.RHS)) {
-  WorkList.pop_front();
-  continue;
+// If they're both Constant, skip it. Check for contradiction and mark
+// the BB as unreachable if so.
+if (Constant *CI_L = dyn_castConstant(O.LHS)) {
+  if (Constant *CI_R = dyn_castConstant(O.RHS)) {
+if (ConstantExpr::getCompare(O.Op, CI_L, CI_R) ==
+ConstantInt::getFalse())
+  UB.mark(TopBB);
+
+WorkList.pop_front();
+continue;
+  }
+}
+
+if (compare(O.RHS, O.LHS)) {
+  std::swap(O.LHS, O.RHS);
+  O.Op = ICmpInst::getSwappedPredicate(O.Op);
 }
 
 if (O.Op == ICmpInst::ICMP_EQ) {
@@ -1416,7 +1428,7 @@
   UB.mark(TopBB);
   } else {
 if (isRelatedBy(O.LHS, O.RHS, 
ICmpInst::getInversePredicate(O.Op))){
-  DOUT  inequality contradiction!\n;
+  UB.mark(TopBB);
   WorkList.pop_front();
   continue;
 }
@@ -1438,6 +1450,31 @@
   continue;
 }
 
+// Generalize %x u -10 to %x  -10.
+if (ConstantInt *CI = dyn_castConstantInt(O.RHS)) {
+  // xform doesn't apply to i1
+  if (CI-getType()-getBitWidth()  1) {
+if (LV == SLT  CI-getSExtValue()  0) {
+  // i8 %x s -5 implies %x  -5 and %x u 127
+
+ 

[llvm-commits] CVS: llvm/test/CFrontend/2007-02-04-EmptyStruct.c

2007-02-04 Thread Chris Lattner


Changes in directory llvm/test/CFrontend:

2007-02-04-EmptyStruct.c added (r1.1)
---
Log message:

testcase for PR1175: http://llvm.org/PR1175 


---
Diffs of the changes:  (+9 -0)

 2007-02-04-EmptyStruct.c |9 +
 1 files changed, 9 insertions(+)


Index: llvm/test/CFrontend/2007-02-04-EmptyStruct.c
diff -c /dev/null llvm/test/CFrontend/2007-02-04-EmptyStruct.c:1.1
*** /dev/null   Sun Feb  4 17:55:14 2007
--- llvm/test/CFrontend/2007-02-04-EmptyStruct.cSun Feb  4 17:55:04 2007
***
*** 0 
--- 1,9 
+ // RUN: %llvmgcc %s -O3 -S -o - -emit-llvm
+ // PR1175
+ 
+ struct empty { };
+ 
+ void foo(struct empty *p) {
+p++;
+ }
+ 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] [123403] Fix test/CFrontend/2007-02-04-EmptyStruct.c, patch by Anton!

2007-02-04 Thread clattner
Revision: 123403
Author:   clattner
Date: 2007-02-04 15:54:39 -0800 (Sun, 04 Feb 2007)

Log Message:
---
Fix test/CFrontend/2007-02-04-EmptyStruct.c, patch by Anton!

Modified Paths:
--
apple-local/branches/llvm/gcc/llvm-convert.cpp

Modified: apple-local/branches/llvm/gcc/llvm-convert.cpp
===
--- apple-local/branches/llvm/gcc/llvm-convert.cpp  2007-02-04 10:30:17 UTC 
(rev 123402)
+++ apple-local/branches/llvm/gcc/llvm-convert.cpp  2007-02-04 23:54:39 UTC 
(rev 123403)
@@ -2480,7 +2480,7 @@
   
   // If EltSize exactly divides Offset, then we know that we can turn this
   // into a getelementptr instruction.
-  int64_t EltOffset = Offset/EltSize;
+  int64_t EltOffset = EltSize ? Offset/EltSize : 0;
   if (EltOffset*EltSize == Offset) {
 // If this is a subtract, we want to step backwards.
 if (Opc == Instruction::Sub)


___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/CFrontend/2007-02-04-AddrLValue.c

2007-02-04 Thread Chris Lattner


Changes in directory llvm/test/CFrontend:

2007-02-04-AddrLValue.c added (r1.1)
---
Log message:

test for pr1173: http://llvm.org/PR1173 


---
Diffs of the changes:  (+23 -0)

 2007-02-04-AddrLValue.c |   23 +++
 1 files changed, 23 insertions(+)


Index: llvm/test/CFrontend/2007-02-04-AddrLValue.c
diff -c /dev/null llvm/test/CFrontend/2007-02-04-AddrLValue.c:1.1
*** /dev/null   Sun Feb  4 20:19:19 2007
--- llvm/test/CFrontend/2007-02-04-AddrLValue.c Sun Feb  4 20:19:09 2007
***
*** 0 
--- 1,23 
+ // RUN: %llvmgcc %s -O3 -S -o - -emit-llvm
+ // PR1173
+ 
+ typedef struct
+ {
+   char *key;
+   char *value;
+ } T1;
+ 
+ typedef struct
+ {
+   long type;
+   char *value;
+ } T3;
+ 
+ T1 a[] =
+ {
+   {
+ ,
+ ((char *)((T3) {1, (char *) 1}))
+   }
+ };
+ 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] [123429] Patch for PR1173 and test/CFrontend/2007-02-04-AddrLValue.c,

2007-02-04 Thread clattner
Revision: 123429
Author:   clattner
Date: 2007-02-04 18:18:43 -0800 (Sun, 04 Feb 2007)

Log Message:
---
Patch for PR1173 and test/CFrontend/2007-02-04-AddrLValue.c,
patch by Anton!

Modified Paths:
--
apple-local/branches/llvm/gcc/llvm-convert.cpp
apple-local/branches/llvm/gcc/llvm-internal.h

Modified: apple-local/branches/llvm/gcc/llvm-convert.cpp
===
--- apple-local/branches/llvm/gcc/llvm-convert.cpp  2007-02-05 00:58:26 UTC 
(rev 123428)
+++ apple-local/branches/llvm/gcc/llvm-convert.cpp  2007-02-05 02:18:43 UTC 
(rev 123429)
@@ -5043,6 +5043,7 @@
   case COMPONENT_REF: return EmitLV_COMPONENT_REF(exp);
   case ARRAY_RANGE_REF:
   case ARRAY_REF: return EmitLV_ARRAY_REF(exp);
+  case INDIRECT_REF:  return EmitLV_INDIRECT_REF(exp);
   }
 }
 
@@ -5223,4 +5224,9 @@
   return FieldPtr;
 }
 
+Constant* TreeConstantToLLVM::EmitLV_INDIRECT_REF(tree exp) {
+  // The lvalue is just the address.
+  return Convert(TREE_OPERAND(exp, 0));
+}
+
 /* APPLE LOCAL end LLVM (ENTIRE FILE!)  */

Modified: apple-local/branches/llvm/gcc/llvm-internal.h
===
--- apple-local/branches/llvm/gcc/llvm-internal.h   2007-02-05 00:58:26 UTC 
(rev 123428)
+++ apple-local/branches/llvm/gcc/llvm-internal.h   2007-02-05 02:18:43 UTC 
(rev 123429)
@@ -513,6 +513,7 @@
   static Constant *EmitLV_STRING_CST(tree_node *exp);
   static Constant *EmitLV_COMPONENT_REF(tree_node *exp);
   static Constant *EmitLV_ARRAY_REF(tree_node *exp);
+  static Constant *EmitLV_INDIRECT_REF(tree_node *exp);
 };
 
 #endif


___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/CFrontend/2007-02-04-AddrLValue.c

2007-02-04 Thread Chris Lattner


Changes in directory llvm/test/CFrontend:

2007-02-04-AddrLValue.c updated: 1.1 - 1.2
---
Log message:

fix bug number


---
Diffs of the changes:  (+1 -1)

 2007-02-04-AddrLValue.c |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/test/CFrontend/2007-02-04-AddrLValue.c
diff -u llvm/test/CFrontend/2007-02-04-AddrLValue.c:1.1 
llvm/test/CFrontend/2007-02-04-AddrLValue.c:1.2
--- llvm/test/CFrontend/2007-02-04-AddrLValue.c:1.1 Sun Feb  4 20:19:09 2007
+++ llvm/test/CFrontend/2007-02-04-AddrLValue.c Sun Feb  4 20:26:07 2007
@@ -1,5 +1,5 @@
 // RUN: %llvmgcc %s -O3 -S -o - -emit-llvm
-// PR1173
+// PR1176
 
 typedef struct
 {



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/Support/OutputBuffer.h

2007-02-04 Thread Bill Wendling


Changes in directory llvm/include/llvm/Support:

OutputBuffer.h updated: 1.3 - 1.4
---
Log message:

Use unsigned char instead of std::vector::reference.


---
Diffs of the changes:  (+2 -4)

 OutputBuffer.h |6 ++
 1 files changed, 2 insertions(+), 4 deletions(-)


Index: llvm/include/llvm/Support/OutputBuffer.h
diff -u llvm/include/llvm/Support/OutputBuffer.h:1.3 
llvm/include/llvm/Support/OutputBuffer.h:1.4
--- llvm/include/llvm/Support/OutputBuffer.h:1.3Fri Feb  2 20:38:15 2007
+++ llvm/include/llvm/Support/OutputBuffer.hSun Feb  4 20:37:07 2007
@@ -139,12 +139,10 @@
 assert(0  Emission of 64-bit data not implemented yet!);
 }
 
-std::vectorunsigned char::reference
-operator [] (unsigned Index) {
+unsigned char operator[](unsigned Index) {
   return Output[Index];
 }
-std::vectorunsigned char::const_reference
-operator [] (unsigned Index) const {
+const unsigned char operator[](unsigned Index) const {
   return Output[Index];
 }
   };



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Transforms/Utils/LCSSA.cpp

2007-02-04 Thread Owen Anderson


Changes in directory llvm/lib/Transforms/Utils:

LCSSA.cpp updated: 1.32 - 1.33
---
Log message:

Use DenseMap for pointer-pointer maps.


---
Diffs of the changes:  (+4 -4)

 LCSSA.cpp |8 
 1 files changed, 4 insertions(+), 4 deletions(-)


Index: llvm/lib/Transforms/Utils/LCSSA.cpp
diff -u llvm/lib/Transforms/Utils/LCSSA.cpp:1.32 
llvm/lib/Transforms/Utils/LCSSA.cpp:1.33
--- llvm/lib/Transforms/Utils/LCSSA.cpp:1.32Tue Dec 19 16:17:40 2006
+++ llvm/lib/Transforms/Utils/LCSSA.cpp Sun Feb  4 20:39:47 2007
@@ -33,13 +33,13 @@
 #include llvm/Pass.h
 #include llvm/Function.h
 #include llvm/Instructions.h
+#include llvm/ADT/DenseMap.h
 #include llvm/ADT/SetVector.h
 #include llvm/ADT/Statistic.h
 #include llvm/Analysis/Dominators.h
 #include llvm/Analysis/LoopInfo.h
 #include llvm/Support/CFG.h
 #include algorithm
-#include map
 using namespace llvm;
 
 STATISTIC(NumLCSSA, Number of live out of a loop variables);
@@ -71,7 +71,7 @@
 SetVectorInstruction* getLoopValuesUsedOutsideLoop(Loop *L);
 
 Value *GetValueForBlock(DominatorTree::Node *BB, Instruction *OrigInst,
-std::mapDominatorTree::Node*, Value* Phis);
+DenseMapDominatorTree::Node*, Value* Phis);
 
 /// inLoop - returns true if the given block is within the current loop
 const bool inLoop(BasicBlock* B) {
@@ -139,7 +139,7 @@
   ++NumLCSSA; // We are applying the transformation
 
   // Keep track of the blocks that have the value available already.
-  std::mapDominatorTree::Node*, Value* Phis;
+  DenseMapDominatorTree::Node*, Value* Phis;
 
   DominatorTree::Node *InstrNode = DT-getNode(Instr-getParent());
 
@@ -226,7 +226,7 @@
 /// GetValueForBlock - Get the value to use within the specified basic block.
 /// available values are in Phis.
 Value *LCSSA::GetValueForBlock(DominatorTree::Node *BB, Instruction *OrigInst,
-   std::mapDominatorTree::Node*, Value* Phis) {
+   DenseMapDominatorTree::Node*, Value* Phis) {
   // If there is no dominator info for this BB, it is unreachable.
   if (BB == 0)
 return UndefValue::get(OrigInst-getType());



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] [123430] patch for test/CFrontend/2007-02-04-AddrLValue.c and PR1176, by Anton.

2007-02-04 Thread clattner
Revision: 123430
Author:   clattner
Date: 2007-02-04 19:50:26 -0800 (Sun, 04 Feb 2007)

Log Message:
---
patch for test/CFrontend/2007-02-04-AddrLValue.c and PR1176, by Anton.

Modified Paths:
--
apple-local/branches/llvm/gcc/llvm-convert.cpp
apple-local/branches/llvm/gcc/llvm-internal.h

Modified: apple-local/branches/llvm/gcc/llvm-convert.cpp
===
--- apple-local/branches/llvm/gcc/llvm-convert.cpp  2007-02-05 02:18:43 UTC 
(rev 123429)
+++ apple-local/branches/llvm/gcc/llvm-convert.cpp  2007-02-05 03:50:26 UTC 
(rev 123430)
@@ -46,6 +46,7 @@
 #include coretypes.h
 #include tm.h
 #include tree.h
+#include c-tree.h  // FIXME: eliminate.
 #include tree-iterator.h
 #include output.h
 #include diagnostic.h
@@ -5044,6 +5045,8 @@
   case ARRAY_RANGE_REF:
   case ARRAY_REF: return EmitLV_ARRAY_REF(exp);
   case INDIRECT_REF:  return EmitLV_INDIRECT_REF(exp);
+  case COMPOUND_LITERAL_EXPR:
+return EmitLV_COMPOUND_LITERAL_EXPR(exp);
   }
 }
 
@@ -5229,4 +5232,10 @@
   return Convert(TREE_OPERAND(exp, 0));
 }
 
+Constant *TreeConstantToLLVM::EmitLV_COMPOUND_LITERAL_EXPR(tree exp) {
+  tree Decl = COMPOUND_LITERAL_EXPR_DECL(exp);
+  return EmitLV(Decl);
+}
+
 /* APPLE LOCAL end LLVM (ENTIRE FILE!)  */
+

Modified: apple-local/branches/llvm/gcc/llvm-internal.h
===
--- apple-local/branches/llvm/gcc/llvm-internal.h   2007-02-05 02:18:43 UTC 
(rev 123429)
+++ apple-local/branches/llvm/gcc/llvm-internal.h   2007-02-05 03:50:26 UTC 
(rev 123430)
@@ -514,6 +514,7 @@
   static Constant *EmitLV_COMPONENT_REF(tree_node *exp);
   static Constant *EmitLV_ARRAY_REF(tree_node *exp);
   static Constant *EmitLV_INDIRECT_REF(tree_node *exp);
+  static Constant *EmitLV_COMPOUND_LITERAL_EXPR(tree_node *exp);
 };
 
 #endif


___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/CFrontend/2007-02-04-WITH_SIZE_EXPR.c

2007-02-04 Thread Chris Lattner


Changes in directory llvm/test/CFrontend:

2007-02-04-WITH_SIZE_EXPR.c added (r1.1)
---
Log message:

new testcase for 1174, currently xfailed


---
Diffs of the changes:  (+22 -0)

 2007-02-04-WITH_SIZE_EXPR.c |   22 ++
 1 files changed, 22 insertions(+)


Index: llvm/test/CFrontend/2007-02-04-WITH_SIZE_EXPR.c
diff -c /dev/null llvm/test/CFrontend/2007-02-04-WITH_SIZE_EXPR.c:1.1
*** /dev/null   Sun Feb  4 21:57:09 2007
--- llvm/test/CFrontend/2007-02-04-WITH_SIZE_EXPR.c Sun Feb  4 21:56:59 2007
***
*** 0 
--- 1,22 
+ // RUN: %llvmgcc %s -O3 -S -o - -emit-llvm
+ // PR1174
+ // XFAIL: *
+ 
+ void zzz (char *s1, char *s2, int len, int *q)
+ {
+   int z = 5;
+   unsigned int i,  b;
+   struct { char a[z]; } x;
+   
+   for (i = 0; i  len; i++)
+ s1[i] = s2[i];
+ 
+   b = z  0x3;
+ 
+   len += (b == 0 ? 0 : 1) + z;
+ 
+   *q = len;
+ 
+   foo (x, x);
+ }
+ 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] [123431] initial support for WITH_SIZE_EXPR, but is not enough

2007-02-04 Thread clattner
Revision: 123431
Author:   clattner
Date: 2007-02-04 19:57:03 -0800 (Sun, 04 Feb 2007)

Log Message:
---
initial support for WITH_SIZE_EXPR, but is not enough
to fix PR1174

Modified Paths:
--
apple-local/branches/llvm/gcc/llvm-convert.cpp

Modified: apple-local/branches/llvm/gcc/llvm-convert.cpp
===
--- apple-local/branches/llvm/gcc/llvm-convert.cpp  2007-02-05 03:50:26 UTC 
(rev 123430)
+++ apple-local/branches/llvm/gcc/llvm-convert.cpp  2007-02-05 03:57:03 UTC 
(rev 123431)
@@ -689,7 +689,8 @@
   case REALPART_EXPR: return EmitLV_PART_EXPR(exp, 0);
   case IMAGPART_EXPR: return EmitLV_PART_EXPR(exp, 1);
   case VIEW_CONVERT_EXPR:
-// The address of a VIEW_CONVERT_EXPR is the address of its operand.
+  case WITH_SIZE_EXPR:
+// The address of a these is the address of their operand.
 return EmitLV(TREE_OPERAND(exp, 0));
   }
 }


___
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

2007-02-04 Thread Chris Lattner


Changes in directory llvm/lib/Transforms/Scalar:

InstructionCombining.cpp updated: 1.626 - 1.627
---
Log message:

fix a miscompilation of 176.gcc


---
Diffs of the changes:  (+2 -2)

 InstructionCombining.cpp |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.626 
llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.627
--- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.626   Sun Feb  4 
18:57:54 2007
+++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Sun Feb  4 22:09:35 2007
@@ -5647,12 +5647,12 @@
 if (ShiftAmt1 == ShiftAmt2) {
   // If we have ((X ? C)  C), turn this into X  (-1  C).
   if (I.getOpcode() == Instruction::Shl) {
-uint64_t Mask = -1ULL  ShiftAmt1;
+uint64_t Mask = Ty-getBitMask()  ShiftAmt1;
 return BinaryOperator::createAnd(X, ConstantInt::get(Ty, Mask));
   }
   // If we have ((X  C) u C), turn this into X  (-1 u C).
   if (I.getOpcode() == Instruction::LShr) {
-uint64_t Mask = -1ULL  ShiftAmt1;
+uint64_t Mask = Ty-getBitMask()  ShiftAmt1;
 return BinaryOperator::createAnd(X, ConstantInt::get(Ty, Mask));
   }
   // We can simplify ((X  C) s C) into a trunc + sext.



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Transforms/Utils/LCSSA.cpp

2007-02-04 Thread Reid Spencer


Changes in directory llvm/lib/Transforms/Utils:

LCSSA.cpp updated: 1.33 - 1.34
---
Log message:

For PR1177: http://llvm.org/PR1177 :
Revert last patch which caused iteration invalidation.


---
Diffs of the changes:  (+4 -4)

 LCSSA.cpp |8 
 1 files changed, 4 insertions(+), 4 deletions(-)


Index: llvm/lib/Transforms/Utils/LCSSA.cpp
diff -u llvm/lib/Transforms/Utils/LCSSA.cpp:1.33 
llvm/lib/Transforms/Utils/LCSSA.cpp:1.34
--- llvm/lib/Transforms/Utils/LCSSA.cpp:1.33Sun Feb  4 20:39:47 2007
+++ llvm/lib/Transforms/Utils/LCSSA.cpp Sun Feb  4 23:23:32 2007
@@ -33,13 +33,13 @@
 #include llvm/Pass.h
 #include llvm/Function.h
 #include llvm/Instructions.h
-#include llvm/ADT/DenseMap.h
 #include llvm/ADT/SetVector.h
 #include llvm/ADT/Statistic.h
 #include llvm/Analysis/Dominators.h
 #include llvm/Analysis/LoopInfo.h
 #include llvm/Support/CFG.h
 #include algorithm
+#include map
 using namespace llvm;
 
 STATISTIC(NumLCSSA, Number of live out of a loop variables);
@@ -71,7 +71,7 @@
 SetVectorInstruction* getLoopValuesUsedOutsideLoop(Loop *L);
 
 Value *GetValueForBlock(DominatorTree::Node *BB, Instruction *OrigInst,
-DenseMapDominatorTree::Node*, Value* Phis);
+std::mapDominatorTree::Node*, Value* Phis);
 
 /// inLoop - returns true if the given block is within the current loop
 const bool inLoop(BasicBlock* B) {
@@ -139,7 +139,7 @@
   ++NumLCSSA; // We are applying the transformation
 
   // Keep track of the blocks that have the value available already.
-  DenseMapDominatorTree::Node*, Value* Phis;
+  std::mapDominatorTree::Node*, Value* Phis;
 
   DominatorTree::Node *InstrNode = DT-getNode(Instr-getParent());
 
@@ -226,7 +226,7 @@
 /// GetValueForBlock - Get the value to use within the specified basic block.
 /// available values are in Phis.
 Value *LCSSA::GetValueForBlock(DominatorTree::Node *BB, Instruction *OrigInst,
-   DenseMapDominatorTree::Node*, Value* Phis) {
+   std::mapDominatorTree::Node*, Value* Phis) {
   // If there is no dominator info for this BB, it is unreachable.
   if (BB == 0)
 return UndefValue::get(OrigInst-getType());



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-www/ProjectsWithLLVM/index.html

2007-02-04 Thread Chris Lattner


Changes in directory llvm-www/ProjectsWithLLVM:

index.html updated: 1.30 - 1.31
---
Log message:

add info about the LENS project


---
Diffs of the changes:  (+42 -0)

 index.html |   42 ++
 1 files changed, 42 insertions(+)


Index: llvm-www/ProjectsWithLLVM/index.html
diff -u llvm-www/ProjectsWithLLVM/index.html:1.30 
llvm-www/ProjectsWithLLVM/index.html:1.31
--- llvm-www/ProjectsWithLLVM/index.html:1.30   Mon Jan 22 22:07:36 2007
+++ llvm-www/ProjectsWithLLVM/index.htmlSun Feb  4 23:46:33 2007
@@ -35,6 +35,7 @@
 div class=www_text
 
 ul
+lia href=#LENSLENS Project/a/li
 lia href=#tridentTrident Compiler/a/li
 lia href=#asceniumAscenium Reconfigurable Processor Compiler/a/li
 lia href=#pypyThe PyPy Python Implementation Project/a/li
@@ -53,6 +54,47 @@
 
 /div
 
+
+!--=--
+div class=www_subsection
+  a name=LENSLENS Project/abr
+/div
+!--=--
+
+div class=www_subsubsection
+By a href=http://www.lanl.gov/;Los Alamos National Laboratory/a
+/div
+
+div class=www_text
+p
+The a href=http://www.cs.ucsd.edu/~mmccrack/lens/;LENS Project/a 
+is intended to improve the task of measuring programs and
+investigating their behavior.  LENS defines an external representation 
+of a program in XML to store useful information
+that is accessible based on program structure, including loop 
+structure information./p
+
+pLens defines a flexible naming scheme for program components 
+based on XPath and the LENS XML document structure. This allows
+users and tools to selectively query program behavior from a
+uniform interface, allowing users or tools to ask a variety of
+questions about program components, which can be answered by any
+tool that understands the query. Queries, metrics and program
+structure are all stored in the LENS file, and are annotated with 
+version names that support historical comparison and scientific 
+record-keeping./p
+
+pCompiler writers can use LENS to expose results of transformations
+and analyses for a program easily, without worrying about display or
+handling information overload. This functionality has been
+demonstrated using LLVM. LENS uses LLVM for two purposes: first, to
+generate the initial program structure file in XML using an LLVM
+pass, and second, as a demonstration of the advantages of selective
+querying for compiler information, with an interface built into LLVM
+that allows LLVM passes to easily respond to queries in a LENS file./p
+
+/div
+
 
!--=--
 div class=www_subsection
   a name=tridentTrident Compiler/abr



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-www/ProjectsWithLLVM/index.html

2007-02-04 Thread Chris Lattner


Changes in directory llvm-www/ProjectsWithLLVM:

index.html updated: 1.31 - 1.32
---
Log message:

fix afficliation



---
Diffs of the changes:  (+1 -1)

 index.html |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm-www/ProjectsWithLLVM/index.html
diff -u llvm-www/ProjectsWithLLVM/index.html:1.31 
llvm-www/ProjectsWithLLVM/index.html:1.32
--- llvm-www/ProjectsWithLLVM/index.html:1.31   Sun Feb  4 23:46:33 2007
+++ llvm-www/ProjectsWithLLVM/index.htmlSun Feb  4 23:47:58 2007
@@ -62,7 +62,7 @@
 
!--=--
 
 div class=www_subsubsection
-By a href=http://www.lanl.gov/;Los Alamos National Laboratory/a
+By Michael O. McCracken, UCSD.
 /div
 
 div class=www_text



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/utils/findmisopt

2007-02-04 Thread Reid Spencer


Changes in directory llvm/utils:

findmisopt updated: 1.11 - 1.12
---
Log message:

Use opt to generate the list of passes to run.


---
Diffs of the changes:  (+5 -5)

 findmisopt |   10 +-
 1 files changed, 5 insertions(+), 5 deletions(-)


Index: llvm/utils/findmisopt
diff -u llvm/utils/findmisopt:1.11 llvm/utils/findmisopt:1.12
--- llvm/utils/findmisopt:1.11  Fri Dec  8 22:42:33 2006
+++ llvm/utils/findmisopt   Mon Feb  5 00:10:19 2007
@@ -93,11 +93,11 @@
 ex1=$?
 
 # Define the list of optimizations to run. This comprises the same set of 
-# optimizations that gccas and gccld run, in the same order.
-all_switches=-verify -lowersetjmp -funcresolve -raiseallocs -simplifycfg 
-mem2reg -globalopt -globaldce -ipconstprop -deadargelim -instcombine 
-simplifycfg -prune-eh -inline -simplify-libcalls -argpromotion -raise 
-tailduplicate -simplifycfg -scalarrepl -instcombine -predsimplify -condprop 
-tailcallelim -simplifycfg -reassociate -licm -loop-unswitch -instcombine 
-indvars -loop-unroll -instcombine -load-vn -gcse -sccp -instcombine -condprop 
-dse -dce -simplifycfg -deadtypeelim -constmerge -funcresolve -internalize 
-ipsccp -globalopt -constmerge -deadargelim -inline -prune-eh -globalopt 
-globaldce -argpromotion -instcombine -predsimplify -scalarrepl 
-globalsmodref-aa -licm -load-vn -gcse -dse -instcombine -simplifycfg -verify
-# Here's an alternative list of optimizations comprising just the ones that 
-# gccld uses. To use, just comment out the line above, and uncomment this one
-#all_switches=-funcresolve -internalize -ipsccp -globalopt -constmerge 
-deadargelim -inline -prune-eh -globalopt -globaldce -argpromotion -instcombine 
-predsimplify -scalarrepl -globalsmodref-aa -licm -load-vn -gcse -dse 
-instcombine -simplifycfg -verify
+# optimizations that opt -std-compile-opts and gccld run, in the same order.
+opt_switches=`llvm-as  /dev/null -o - | opt -std-compile-opts -disable-output 
-debug-pass=Arguments 21 | sed 's/Pass Arguments: //'`
+gccld_switches=-internalize -ipsccp -globalopt -constmerge -deadargelim 
-inline -prune-eh -globalopt -globaldce -argpromotion -instcombine 
-predsimplify -scalarrepl -globalsmodref-aa -licm -load-vn -gcse -dse 
-instcombine -simplifycfg -verify
+all_switches=$opt_switches $gccld_switches
+echo Passes : $all_switches
 
 # Current set of switches is empty
 function tryit {



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits