[llvm-commits] CVS: llvm/lib/Target/ARM/ARMRegisterInfo.cpp

2006-08-09 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMRegisterInfo.cpp updated: 1.11 -> 1.12
---
Log message:

fix the loading of the link register in emitepilogue


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

 ARMRegisterInfo.cpp |4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/ARM/ARMRegisterInfo.cpp
diff -u llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.11 
llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.12
--- llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.11Tue Aug  8 15:35:03 2006
+++ llvm/lib/Target/ARM/ARMRegisterInfo.cpp Wed Aug  9 08:15:47 2006
@@ -129,6 +129,8 @@
 // entry to the current function.  This eliminates the need for add/sub
 // brackets around call sites.
 NumBytes += MFI->getMaxCallFrameSize();
+  } else {
+NumBytes += 4;
   }
 
   MFI->setStackSize(NumBytes);
@@ -149,7 +151,7 @@
   int  NumBytes = (int) MFI->getStackSize();
 
   //ldr lr, [sp]
-  BuildMI(MBB, MBBI, ARM::ldr, 2, ARM::R14).addImm(0).addReg(ARM::R13);
+  BuildMI(MBB, MBBI, ARM::ldr, 2, ARM::R14).addImm(NumBytes - 
4).addReg(ARM::R13);
   //add sp, sp, #NumBytes
   BuildMI(MBB, MBBI, ARM::addri, 2, 
ARM::R13).addReg(ARM::R13).addImm(NumBytes);
 }



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


Re: [llvm-commits] CVS: llvm/autoconf/m4/libtool.m4

2006-08-09 Thread Reid Spencer
Could you please make a note of this in the autoconf/README.TXT file.
These deviations from the standard libtool need to be documented so they
can be applied in the next update of libtool.

Thanks,

Reid.

On Wed, 2006-08-09 at 00:39 -0500, Evan Cheng wrote:
> 
> Changes in directory llvm/autoconf/m4:
> 
> libtool.m4 updated: 1.7 -> 1.8
> ---
> Log message:
> 
> Recover the lost diff between 1.5 and 1.6.
> 
> ---
> Diffs of the changes:  (+1 -1)
> 
>  libtool.m4 |2 +-
>  1 files changed, 1 insertion(+), 1 deletion(-)
> 
> 
> Index: llvm/autoconf/m4/libtool.m4
> diff -u llvm/autoconf/m4/libtool.m4:1.7 llvm/autoconf/m4/libtool.m4:1.8
> --- llvm/autoconf/m4/libtool.m4:1.7   Fri Aug  4 13:18:08 2006
> +++ llvm/autoconf/m4/libtool.m4   Wed Aug  9 00:38:51 2006
> @@ -2234,7 +2234,7 @@
>  case $host_os in
>darwin*)
>  if test "$GCC" = yes; then
> -  reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
> +  reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r $compiler_flags -o 
> $output$reload_objs'
>  else
>reload_cmds='$LD$reload_flag -o $output$reload_objs'
>  fi
> 
> 
> 
> ___
> llvm-commits mailing list
> llvm-commits@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

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


[llvm-commits] [release_18] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

2006-08-09 Thread Tanya Lattner


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.226 -> 1.226.2.1
---
Log message:

Merging in from mainline


---
Diffs of the changes:  (+398 -503)

 DAGISelEmitter.cpp |  901 +++--
 1 files changed, 398 insertions(+), 503 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.226 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.1
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.226Wed Jul 26 18:06:27 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Wed Aug  9 11:24:13 2006
@@ -1829,9 +1829,22 @@
   // If this node is commutative, consider the commuted order.
   if (NodeInfo.hasProperty(SDNodeInfo::SDNPCommutative)) {
 assert(N->getNumChildren()==2 &&"Commutative but doesn't have 2 
children!");
+// Don't count children which are actually register references.
+unsigned NC = 0;
+for (unsigned i = 0, e = N->getNumChildren(); i != e; ++i) {
+  TreePatternNode *Child = N->getChild(i);
+  if (Child->isLeaf())
+if (DefInit *DI = dynamic_cast(Child->getLeafValue())) {
+  Record *RR = DI->getDef();
+  if (RR->isSubClassOf("Register"))
+continue;
+}
+  NC++;
+}
 // Consider the commuted order.
-CombineChildVariants(N, ChildVariants[1], ChildVariants[0],
- OutVariants, ISE);
+if (NC == 2)
+  CombineChildVariants(N, ChildVariants[1], ChildVariants[0],
+   OutVariants, ISE);
   }
 }
 
@@ -2106,8 +2119,6 @@
   // Names of all the folded nodes which produce chains.
   std::vector > FoldedChains;
   std::set Duplicates;
-  /// These nodes are being marked "in-flight" so they cannot be folded.
-  std::vector InflightNodes;
 
   /// GeneratedCode - This is the buffer that we emit code to.  The first bool
   /// indicates whether this is an exit predicate (something that should be
@@ -2123,7 +2134,6 @@
   std::vector &TargetVTs;
 
   std::string ChainName;
-  bool DoReplace;
   unsigned TmpNo;
   unsigned OpcNo;
   unsigned VTNo;
@@ -2154,11 +2164,10 @@
  std::vector > &gc,
  std::set > &gd,
  std::vector &to,
- std::vector &tv,
- bool dorep)
+ std::vector &tv)
   : ISE(ise), Predicates(preds), Pattern(pattern), Instruction(instr),
 GeneratedCode(gc), GeneratedDecl(gd), TargetOpcodes(to), TargetVTs(tv),
-DoReplace(dorep), TmpNo(0), OpcNo(0), VTNo(0) {}
+TmpNo(0), OpcNo(0), VTNo(0) {}
 
   /// EmitMatchCode - Emit a matcher for N, going to the label for PatternNo
   /// if the match fails. At this point, we already know that the opcode for N
@@ -2225,24 +2234,14 @@
 bool HasChain = PatternHasProperty(N, SDNodeInfo::SDNPHasChain, ISE);
 bool HasOutFlag   = PatternHasProperty(N, SDNodeInfo::SDNPOutFlag,  ISE);
 bool EmittedUseCheck = false;
-bool EmittedSlctedCheck = false;
 if (HasChain) {
   if (NodeHasChain)
 OpNo = 1;
   if (!isRoot) {
 const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator());
-// Not in flight?
-emitCheck("InFlightSet.count(" + RootName + ".Val) == 0");
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
 EmittedUseCheck = true;
-// hasOneUse() check is not strong enough. If the original node has
-// already been selected, it may have been replaced with another.
-for (unsigned j = 0; j != CInfo.getNumResults(); j++)
-  emitCheck("!CodeGenMap.count(" + RootName + ".getValue(" + utostr(j) 
+
-"))");
-
-EmittedSlctedCheck = true;
 if (NodeHasChain) {
   // FIXME: Don't fold if 1) the parent node writes a flag, 2) the node
   // has a chain use.
@@ -2280,14 +2279,8 @@
   PInfo.hasProperty(SDNodeInfo::SDNPHasChain) ||
   PInfo.hasProperty(SDNodeInfo::SDNPInFlag) ||
   PInfo.hasProperty(SDNodeInfo::SDNPOptInFlag))
-if (PInfo.getNumOperands() > 1) {
-  emitCheck("!isNonImmUse(" + ParentName + ".Val, " + RootName +
-".Val)");
-} else {
-  emitCheck("(" + ParentName + ".getNumOperands() == 1 || !" +
-"isNonImmUse(" + ParentName + ".Val, " + RootName +
-".Val))");
-}
+emitCheck("CanBeFoldedBy(" + RootName + ".Val, " + ParentName +
+  ".Val)");
 }
   }
 
@@ -2317,12 +2310,6 @@
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
   }
-  if (!EmittedSlctedCheck)
-// hasOneUse() check is not strong enough. If the original node has
-// already been selected, it may have been replaced with another.
-for (unsigned j = 0; j < CInfo.getNumR

[llvm-commits] [release_18] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

2006-08-09 Thread Tanya Lattner


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.226.2.1 -> 1.226.2.2
---
Log message:

Merge in correct version from mainline


---
Diffs of the changes:  (+246 -127)

 DAGISelEmitter.cpp |  373 ++---
 1 files changed, 246 insertions(+), 127 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.1 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.2
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.1Wed Aug  9 11:24:13 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Wed Aug  9 11:33:15 2006
@@ -2134,6 +2134,7 @@
   std::vector &TargetVTs;
 
   std::string ChainName;
+  bool DoReplace;
   unsigned TmpNo;
   unsigned OpcNo;
   unsigned VTNo;
@@ -2164,10 +2165,11 @@
  std::vector > &gc,
  std::set > &gd,
  std::vector &to,
- std::vector &tv)
+ std::vector &tv,
+ bool dorep)
   : ISE(ise), Predicates(preds), Pattern(pattern), Instruction(instr),
 GeneratedCode(gc), GeneratedDecl(gd), TargetOpcodes(to), TargetVTs(tv),
-TmpNo(0), OpcNo(0), VTNo(0) {}
+DoReplace(dorep), TmpNo(0), OpcNo(0), VTNo(0) {}
 
   /// EmitMatchCode - Emit a matcher for N, going to the label for PatternNo
   /// if the match fails. At this point, we already know that the opcode for N
@@ -2234,6 +2236,7 @@
 bool HasChain = PatternHasProperty(N, SDNodeInfo::SDNPHasChain, ISE);
 bool HasOutFlag   = PatternHasProperty(N, SDNodeInfo::SDNPOutFlag,  ISE);
 bool EmittedUseCheck = false;
+bool EmittedSlctedCheck = false;
 if (HasChain) {
   if (NodeHasChain)
 OpNo = 1;
@@ -2242,6 +2245,13 @@
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
 EmittedUseCheck = true;
+// hasOneUse() check is not strong enough. If the original node has
+// already been selected, it may have been replaced with another.
+for (unsigned j = 0; j != CInfo.getNumResults(); j++)
+  emitCheck("!CodeGenMap.count(" + RootName + ".getValue(" + utostr(j) 
+
+"))");
+
+EmittedSlctedCheck = true;
 if (NodeHasChain) {
   // FIXME: Don't fold if 1) the parent node writes a flag, 2) the node
   // has a chain use.
@@ -2310,6 +2320,12 @@
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
   }
+  if (!EmittedSlctedCheck)
+// hasOneUse() check is not strong enough. If the original node has
+// already been selected, it may have been replaced with another.
+for (unsigned j = 0; j < CInfo.getNumResults(); j++)
+  emitCheck("!CodeGenMap.count(" + RootName + ".getValue(" + utostr(j) 
+
+"))");
 }
 
 for (unsigned i = 0, e = N->getNumChildren(); i != e; ++i, ++OpNo) {
@@ -2473,7 +2489,7 @@
 
 for (unsigned i = 0; i < NumRes; ++i) {
   emitDecl("Tmp" + utostr(i+ResNo));
-  emitCode("AddToQueue(Tmp" + utostr(i+ResNo) + ", CPTmp" +
+  emitCode("Select(Tmp" + utostr(i+ResNo) + ", CPTmp" +
utostr(i+ResNo) + ");");
 }
 
@@ -2485,12 +2501,12 @@
 if (LikeLeaf)
   emitCode("Tmp" + utostr(ResNo) + " = " + Val + ";");
 else {
-  emitCode("AddToQueue(Tmp" + utostr(ResNo) + ", " + Val + ");");
-  if (isRoot && N->isLeaf()) {
-emitCode("ReplaceUses(N, Tmp" + utostr(ResNo) + ");");
-emitCode("Result = Tmp" + utostr(ResNo) + ";");
-emitCode("return;");
-  }
+  emitCode("Select(Tmp" + utostr(ResNo) + ", " + Val + ");");
+}
+
+if (isRoot && N->isLeaf()) {
+  emitCode("Result = Tmp" + utostr(ResNo) + ";");
+  emitCode("return;");
 }
   }
   // Add Tmp to VariableMap, so that we don't multiply select this
@@ -2604,12 +2620,12 @@
   // Emit all the chain and CopyToReg stuff.
   bool ChainEmitted = NodeHasChain;
   if (NodeHasChain)
-emitCode("AddToQueue(" + ChainName + ", " + ChainName + ");");
+emitCode("Select(" + ChainName + ", " + ChainName + ");");
   if (NodeHasInFlag || HasImpInputs)
 EmitInFlagSelectCode(Pattern, "N", ChainEmitted, true);
   if (NodeHasOptInFlag) {
 emitCode("if (HasInFlag)");
-emitCode("  AddToQueue(InFlag, N.getOperand(N.getNumOperands()-1));");
+emitCode("  Select(InFlag, N.getOperand(N.getNumOperands()-1));");
   }
 
   unsigned NumResults = Inst.getNumResults();
@@ -2661,7 +2677,7 @@
 emitCode("for (unsigned i = 2, e = N.getNumOperands(); "
  "i != e; ++i) {");
   emitCode("  SDOperand VarOp(0, 0);");
-  emitCode("  AddToQueue(VarOp, N.getOperand(i));");
+  emitCode("  Select(VarOp, N.getOperand(i));");
 

[llvm-commits] CVS: llvm-www/releases/1.8/docs/ReleaseNotes.html

2006-08-09 Thread Chris Lattner


Changes in directory llvm-www/releases/1.8/docs:

ReleaseNotes.html updated: 1.1 -> 1.2
---
Log message:

Updates from the list.



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

 ReleaseNotes.html |   14 +++---
 1 files changed, 7 insertions(+), 7 deletions(-)


Index: llvm-www/releases/1.8/docs/ReleaseNotes.html
diff -u llvm-www/releases/1.8/docs/ReleaseNotes.html:1.1 
llvm-www/releases/1.8/docs/ReleaseNotes.html:1.2
--- llvm-www/releases/1.8/docs/ReleaseNotes.html:1.1Wed Aug  9 00:56:40 2006
+++ llvm-www/releases/1.8/docs/ReleaseNotes.htmlWed Aug  9 11:32:30 2006
@@ -109,7 +109,7 @@
 
 
 
-The loop optimizer passes now uses "Loop-Closed SSA Form", which makes it
+The loop optimizer passes now use "Loop-Closed SSA Form", which makes it
 easier to update SSA form as loop transformations change the code.  An 
 immediate benefit of this is that the loop unswitching pass can now unswitch
 loops in more cases.
@@ -168,10 +168,10 @@
 The PowerPC backend now pattern matches the 'rlwimi' instruction more 
 aggressively.
 Most of LLVM is now built with "-pedantic", ensuring better portability 
-to more C++ Compilers.
+to more C++ compilers.
 The PowerPC backend now includes initial 64-bit support.  The JIT is not
 complete, and the static compiler has a couple of known bugs, but support
-is mostly in place. LLVM 1.9 will include completed PPC-64 support. 
+is mostly in place. LLVM 1.9 will include complete PPC-64 support. 
 
 
 
@@ -251,7 +251,7 @@
 components, please contact us on the http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev";>LLVMdev list.
 
 
-The -cee pass is known to be buggy, and may be removed in in a 
+The -cee pass is known to be buggy, and may be removed in a 
 future release.
 The IA64 code generator is experimental.
 The Alpha JIT is experimental.
@@ -336,7 +336,7 @@
 support for floating point data types of any size other than 32 and 64
 bits.
 
-The following Unix system functionality has not been tested and may not
+The following Unix system features have not been tested and may not
 work:
   
   sigsetjmp, siglongjmp - These are not turned into the
@@ -537,7 +537,7 @@
 problem probably cannot be fixed.
 
 http://llvm.org/PR56";>Zero arg vararg functions are not 
-supported.  This should not affect LLVM produced by the C or C++ 
+supported.  This should not affect programs produced by the C or C++ 
 frontends.
 
 The C backend does not correctly implement the http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!" />
 
   http://llvm.org/";>The LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/08/09 05:56:40 $
+  Last modified: $Date: 2006/08/09 16:32:30 $
 
 
 



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


[llvm-commits] CVS: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp ARMRegisterInfo.cpp

2006-08-09 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMISelDAGToDAG.cpp updated: 1.24 -> 1.25
ARMRegisterInfo.cpp updated: 1.12 -> 1.13
---
Log message:

fix the spill code


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

 ARMISelDAGToDAG.cpp |6 ++
 ARMRegisterInfo.cpp |   16 +---
 2 files changed, 15 insertions(+), 7 deletions(-)


Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.24 
llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.25
--- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.24Tue Aug  8 08:02:29 2006
+++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Wed Aug  9 11:41:12 2006
@@ -148,6 +148,12 @@
   Ops.push_back(Chain);
   Ops.push_back(Callee);
 
+  // Add argument registers to the end of the list so that they are known live
+  // into the call.
+  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i)
+Ops.push_back(DAG.getRegister(RegsToPass[i].first,
+  RegsToPass[i].second.getValueType()));
+
   unsigned CallOpc = ARMISD::CALL;
   if (InFlag.Val)
 Ops.push_back(InFlag);


Index: llvm/lib/Target/ARM/ARMRegisterInfo.cpp
diff -u llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.12 
llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.13
--- llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.12Wed Aug  9 08:15:47 2006
+++ llvm/lib/Target/ARM/ARMRegisterInfo.cpp Wed Aug  9 11:41:12 2006
@@ -31,9 +31,8 @@
 storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
 unsigned SrcReg, int FI,
 const TargetRegisterClass *RC) const {
-  // On the order of operands here: think "[FI + 0] = SrcReg".
   assert (RC == ARM::IntRegsRegisterClass);
-  BuildMI(MBB, I, ARM::str, 3).addFrameIndex(FI).addImm(0).addReg(SrcReg);
+  BuildMI(MBB, I, ARM::str, 3).addReg(SrcReg).addImm(0).addFrameIndex(FI);
 }
 
 void ARMRegisterInfo::
@@ -41,7 +40,7 @@
  unsigned DestReg, int FI,
  const TargetRegisterClass *RC) const {
   assert (RC == ARM::IntRegsRegisterClass);
-  BuildMI(MBB, I, ARM::ldr, 2, DestReg).addFrameIndex(FI).addImm(0);
+  BuildMI(MBB, I, ARM::ldr, 2, DestReg).addImm(0).addFrameIndex(FI);
 }
 
 void ARMRegisterInfo::copyRegToReg(MachineBasicBlock &MBB,
@@ -81,7 +80,8 @@
   MachineBasicBlock &MBB = *MI.getParent();
   MachineFunction &MF = *MBB.getParent();
 
-  assert (MI.getOpcode() == ARM::ldr);
+  assert (MI.getOpcode() == ARM::ldr ||
+ MI.getOpcode() == ARM::str);
 
   unsigned FrameIdx = 2;
   unsigned OffIdx = 1;
@@ -93,6 +93,11 @@
 
   unsigned StackSize = MF.getFrameInfo()->getStackSize();
 
+  //
+  if (Offset < 0)
+Offset -= 4;
+  //
+
   Offset += StackSize;
 
   assert (Offset >= 0);
@@ -121,9 +126,6 @@
   MachineFrameInfo  *MFI = MF.getFrameInfo();
   int   NumBytes = (int) MFI->getStackSize();
 
-  //hack
-  assert(NumBytes == 0);
-
   if (MFI->hasCalls()) {
 // We reserve argument space for call sites in the function immediately on
 // entry to the current function.  This eliminates the need for add/sub



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


[llvm-commits] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

2006-08-09 Thread Tanya Lattner


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.238 -> 1.239
---
Log message:

Reverting back to original 1.8 version so I can manually merge in patch.


---
Diffs of the changes:  (+503 -398)

 DAGISelEmitter.cpp |  901 +
 1 files changed, 503 insertions(+), 398 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.238 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.239
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.238Mon Aug  7 21:23:42 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Wed Aug  9 11:41:21 2006
@@ -1829,22 +1829,9 @@
   // If this node is commutative, consider the commuted order.
   if (NodeInfo.hasProperty(SDNodeInfo::SDNPCommutative)) {
 assert(N->getNumChildren()==2 &&"Commutative but doesn't have 2 
children!");
-// Don't count children which are actually register references.
-unsigned NC = 0;
-for (unsigned i = 0, e = N->getNumChildren(); i != e; ++i) {
-  TreePatternNode *Child = N->getChild(i);
-  if (Child->isLeaf())
-if (DefInit *DI = dynamic_cast(Child->getLeafValue())) {
-  Record *RR = DI->getDef();
-  if (RR->isSubClassOf("Register"))
-continue;
-}
-  NC++;
-}
 // Consider the commuted order.
-if (NC == 2)
-  CombineChildVariants(N, ChildVariants[1], ChildVariants[0],
-   OutVariants, ISE);
+CombineChildVariants(N, ChildVariants[1], ChildVariants[0],
+ OutVariants, ISE);
   }
 }
 
@@ -2119,6 +2106,8 @@
   // Names of all the folded nodes which produce chains.
   std::vector > FoldedChains;
   std::set Duplicates;
+  /// These nodes are being marked "in-flight" so they cannot be folded.
+  std::vector InflightNodes;
 
   /// GeneratedCode - This is the buffer that we emit code to.  The first bool
   /// indicates whether this is an exit predicate (something that should be
@@ -2134,6 +2123,7 @@
   std::vector &TargetVTs;
 
   std::string ChainName;
+  bool DoReplace;
   unsigned TmpNo;
   unsigned OpcNo;
   unsigned VTNo;
@@ -2164,10 +2154,11 @@
  std::vector > &gc,
  std::set > &gd,
  std::vector &to,
- std::vector &tv)
+ std::vector &tv,
+ bool dorep)
   : ISE(ise), Predicates(preds), Pattern(pattern), Instruction(instr),
 GeneratedCode(gc), GeneratedDecl(gd), TargetOpcodes(to), TargetVTs(tv),
-TmpNo(0), OpcNo(0), VTNo(0) {}
+DoReplace(dorep), TmpNo(0), OpcNo(0), VTNo(0) {}
 
   /// EmitMatchCode - Emit a matcher for N, going to the label for PatternNo
   /// if the match fails. At this point, we already know that the opcode for N
@@ -2234,14 +2225,24 @@
 bool HasChain = PatternHasProperty(N, SDNodeInfo::SDNPHasChain, ISE);
 bool HasOutFlag   = PatternHasProperty(N, SDNodeInfo::SDNPOutFlag,  ISE);
 bool EmittedUseCheck = false;
+bool EmittedSlctedCheck = false;
 if (HasChain) {
   if (NodeHasChain)
 OpNo = 1;
   if (!isRoot) {
 const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator());
+// Not in flight?
+emitCheck("InFlightSet.count(" + RootName + ".Val) == 0");
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
 EmittedUseCheck = true;
+// hasOneUse() check is not strong enough. If the original node has
+// already been selected, it may have been replaced with another.
+for (unsigned j = 0; j != CInfo.getNumResults(); j++)
+  emitCheck("!CodeGenMap.count(" + RootName + ".getValue(" + utostr(j) 
+
+"))");
+
+EmittedSlctedCheck = true;
 if (NodeHasChain) {
   // FIXME: Don't fold if 1) the parent node writes a flag, 2) the node
   // has a chain use.
@@ -2279,8 +2280,14 @@
   PInfo.hasProperty(SDNodeInfo::SDNPHasChain) ||
   PInfo.hasProperty(SDNodeInfo::SDNPInFlag) ||
   PInfo.hasProperty(SDNodeInfo::SDNPOptInFlag))
-emitCheck("CanBeFoldedBy(" + RootName + ".Val, " + ParentName +
-  ".Val)");
+if (PInfo.getNumOperands() > 1) {
+  emitCheck("!isNonImmUse(" + ParentName + ".Val, " + RootName +
+".Val)");
+} else {
+  emitCheck("(" + ParentName + ".getNumOperands() == 1 || !" +
+"isNonImmUse(" + ParentName + ".Val, " + RootName +
+".Val))");
+}
 }
   }
 
@@ -2310,6 +2317,12 @@
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
   }
+  if (!EmittedSlctedCheck)
+// hasOneUse() check is not strong enough. If the original node has
+// already been selected, it may have been replaced with another.
+  

[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/vargs.ll

2006-08-09 Thread Rafael Espindola


Changes in directory llvm/test/Regression/CodeGen/ARM:

vargs.ll updated: 1.1 -> 1.2
---
Log message:

fix the spill code


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

 vargs.ll |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)


Index: llvm/test/Regression/CodeGen/ARM/vargs.ll
diff -u llvm/test/Regression/CodeGen/ARM/vargs.ll:1.1 
llvm/test/Regression/CodeGen/ARM/vargs.ll:1.2
--- llvm/test/Regression/CodeGen/ARM/vargs.ll:1.1   Tue Aug  8 08:02:29 2006
+++ llvm/test/Regression/CodeGen/ARM/vargs.ll   Wed Aug  9 11:41:12 2006
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -march=arm 
+; RUN: llvm-as < %s | llc -march=arm
 %str = internal constant [43 x sbyte] c"Hello World %d %d %d %d %d %d %d %d %d 
%d\0A\00"   ; <[43 x sbyte]*> [#uses=1]
 
 implementation   ; Functions:
@@ -6,7 +6,8 @@
 int %main() {
 entry:
%tmp = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([43 x 
sbyte]* %str, int 0, uint 0), int 1, int 2, int 3, int 4, int 5, int 6, int 7, 
int 8, int 9, int 10 )   ;  [#uses=0]
-   ret int 0
+   %tmp2 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([43 x 
sbyte]* %str, int 0, uint 0), int 10, int 9, int 8, int 7, int 6, int 5, int 4, 
int 3, int 2, int 1 )  ;  [#uses=0]
+   ret int 11
 }
 
 declare int %printf(sbyte*, ...)



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


[llvm-commits] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

2006-08-09 Thread Chris Lattner


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.239 -> 1.240
---
Log message:

Revert previous patch



---
Diffs of the changes:  (+398 -503)

 DAGISelEmitter.cpp |  901 +++--
 1 files changed, 398 insertions(+), 503 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.239 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.240
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.239Wed Aug  9 11:41:21 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Wed Aug  9 11:44:44 2006
@@ -1829,9 +1829,22 @@
   // If this node is commutative, consider the commuted order.
   if (NodeInfo.hasProperty(SDNodeInfo::SDNPCommutative)) {
 assert(N->getNumChildren()==2 &&"Commutative but doesn't have 2 
children!");
+// Don't count children which are actually register references.
+unsigned NC = 0;
+for (unsigned i = 0, e = N->getNumChildren(); i != e; ++i) {
+  TreePatternNode *Child = N->getChild(i);
+  if (Child->isLeaf())
+if (DefInit *DI = dynamic_cast(Child->getLeafValue())) {
+  Record *RR = DI->getDef();
+  if (RR->isSubClassOf("Register"))
+continue;
+}
+  NC++;
+}
 // Consider the commuted order.
-CombineChildVariants(N, ChildVariants[1], ChildVariants[0],
- OutVariants, ISE);
+if (NC == 2)
+  CombineChildVariants(N, ChildVariants[1], ChildVariants[0],
+   OutVariants, ISE);
   }
 }
 
@@ -2106,8 +2119,6 @@
   // Names of all the folded nodes which produce chains.
   std::vector > FoldedChains;
   std::set Duplicates;
-  /// These nodes are being marked "in-flight" so they cannot be folded.
-  std::vector InflightNodes;
 
   /// GeneratedCode - This is the buffer that we emit code to.  The first bool
   /// indicates whether this is an exit predicate (something that should be
@@ -2123,7 +2134,6 @@
   std::vector &TargetVTs;
 
   std::string ChainName;
-  bool DoReplace;
   unsigned TmpNo;
   unsigned OpcNo;
   unsigned VTNo;
@@ -2154,11 +2164,10 @@
  std::vector > &gc,
  std::set > &gd,
  std::vector &to,
- std::vector &tv,
- bool dorep)
+ std::vector &tv)
   : ISE(ise), Predicates(preds), Pattern(pattern), Instruction(instr),
 GeneratedCode(gc), GeneratedDecl(gd), TargetOpcodes(to), TargetVTs(tv),
-DoReplace(dorep), TmpNo(0), OpcNo(0), VTNo(0) {}
+TmpNo(0), OpcNo(0), VTNo(0) {}
 
   /// EmitMatchCode - Emit a matcher for N, going to the label for PatternNo
   /// if the match fails. At this point, we already know that the opcode for N
@@ -2225,24 +2234,14 @@
 bool HasChain = PatternHasProperty(N, SDNodeInfo::SDNPHasChain, ISE);
 bool HasOutFlag   = PatternHasProperty(N, SDNodeInfo::SDNPOutFlag,  ISE);
 bool EmittedUseCheck = false;
-bool EmittedSlctedCheck = false;
 if (HasChain) {
   if (NodeHasChain)
 OpNo = 1;
   if (!isRoot) {
 const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator());
-// Not in flight?
-emitCheck("InFlightSet.count(" + RootName + ".Val) == 0");
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
 EmittedUseCheck = true;
-// hasOneUse() check is not strong enough. If the original node has
-// already been selected, it may have been replaced with another.
-for (unsigned j = 0; j != CInfo.getNumResults(); j++)
-  emitCheck("!CodeGenMap.count(" + RootName + ".getValue(" + utostr(j) 
+
-"))");
-
-EmittedSlctedCheck = true;
 if (NodeHasChain) {
   // FIXME: Don't fold if 1) the parent node writes a flag, 2) the node
   // has a chain use.
@@ -2280,14 +2279,8 @@
   PInfo.hasProperty(SDNodeInfo::SDNPHasChain) ||
   PInfo.hasProperty(SDNodeInfo::SDNPInFlag) ||
   PInfo.hasProperty(SDNodeInfo::SDNPOptInFlag))
-if (PInfo.getNumOperands() > 1) {
-  emitCheck("!isNonImmUse(" + ParentName + ".Val, " + RootName +
-".Val)");
-} else {
-  emitCheck("(" + ParentName + ".getNumOperands() == 1 || !" +
-"isNonImmUse(" + ParentName + ".Val, " + RootName +
-".Val))");
-}
+emitCheck("CanBeFoldedBy(" + RootName + ".Val, " + ParentName +
+  ".Val)");
 }
   }
 
@@ -2317,12 +2310,6 @@
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
   }
-  if (!EmittedSlctedCheck)
-// hasOneUse() check is not strong enough. If the original node has
-// already been selected, it may have been replaced with another.
-for (unsigned j = 0; j < CInfo.getNumResults(); 

[llvm-commits] [release_18] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

2006-08-09 Thread Tanya Lattner


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.226.2.2 -> 1.226.2.3
---
Log message:

Revert.


---
Diffs of the changes:  (+272 -286)

 DAGISelEmitter.cpp |  558 +
 1 files changed, 272 insertions(+), 286 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.2 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.3
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.2Wed Aug  9 11:33:15 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Wed Aug  9 11:46:19 2006
@@ -1829,22 +1829,9 @@
   // If this node is commutative, consider the commuted order.
   if (NodeInfo.hasProperty(SDNodeInfo::SDNPCommutative)) {
 assert(N->getNumChildren()==2 &&"Commutative but doesn't have 2 
children!");
-// Don't count children which are actually register references.
-unsigned NC = 0;
-for (unsigned i = 0, e = N->getNumChildren(); i != e; ++i) {
-  TreePatternNode *Child = N->getChild(i);
-  if (Child->isLeaf())
-if (DefInit *DI = dynamic_cast(Child->getLeafValue())) {
-  Record *RR = DI->getDef();
-  if (RR->isSubClassOf("Register"))
-continue;
-}
-  NC++;
-}
 // Consider the commuted order.
-if (NC == 2)
-  CombineChildVariants(N, ChildVariants[1], ChildVariants[0],
-   OutVariants, ISE);
+CombineChildVariants(N, ChildVariants[1], ChildVariants[0],
+ OutVariants, ISE);
   }
 }
 
@@ -2119,6 +2106,8 @@
   // Names of all the folded nodes which produce chains.
   std::vector > FoldedChains;
   std::set Duplicates;
+  /// These nodes are being marked "in-flight" so they cannot be folded.
+  std::vector InflightNodes;
 
   /// GeneratedCode - This is the buffer that we emit code to.  The first bool
   /// indicates whether this is an exit predicate (something that should be
@@ -2242,6 +2231,8 @@
 OpNo = 1;
   if (!isRoot) {
 const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator());
+// Not in flight?
+emitCheck("InFlightSet.count(" + RootName + ".Val) == 0");
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
 EmittedUseCheck = true;
@@ -2289,8 +2280,14 @@
   PInfo.hasProperty(SDNodeInfo::SDNPHasChain) ||
   PInfo.hasProperty(SDNodeInfo::SDNPInFlag) ||
   PInfo.hasProperty(SDNodeInfo::SDNPOptInFlag))
-emitCheck("CanBeFoldedBy(" + RootName + ".Val, " + ParentName +
-  ".Val)");
+if (PInfo.getNumOperands() > 1) {
+  emitCheck("!isNonImmUse(" + ParentName + ".Val, " + RootName +
+".Val)");
+} else {
+  emitCheck("(" + ParentName + ".getNumOperands() == 1 || !" +
+"isNonImmUse(" + ParentName + ".Val, " + RootName +
+".Val))");
+}
 }
   }
 
@@ -2482,11 +2479,27 @@
 for (unsigned i = 0; i < NumRes; ++i)
   emitDecl("CPTmp" + utostr(i+ResNo));
 
-std::string Code = Fn + "(" + Val;
+std::string Code = "bool Match = " + Fn + "(" + Val;
 for (unsigned i = 0; i < NumRes; i++)
   Code += ", CPTmp" + utostr(i + ResNo);
-emitCheck(Code + ")");
+emitCode(Code + ");");
+if (InflightNodes.size()) {
+  // Remove the in-flight nodes if the ComplexPattern does not match!
+  emitCode("if (!Match) {");
+  for (std::vector::iterator AI = InflightNodes.begin(),
+ AE = InflightNodes.end(); AI != AE; ++AI)
+emitCode("  SelectionDAG::RemoveInFlightSetEntry(InFlightSet, " +
+ *AI + ".Val);");
+  emitCode("}");
+}
 
+emitCheck("Match");
+
+for (unsigned i = 0; i < NumRes; ++i) {
+  emitCode("SelectionDAG::InsertInFlightSetEntry(InFlightSet, CPTmp" +
+   utostr(i+ResNo) + ".Val);");
+  InflightNodes.push_back("CPTmp" + utostr(i+ResNo));
+}
 for (unsigned i = 0; i < NumRes; ++i) {
   emitDecl("Tmp" + utostr(i+ResNo));
   emitCode("Select(Tmp" + utostr(i+ResNo) + ", CPTmp" +
@@ -2601,6 +2614,22 @@
 }
   }
 
+  // Make sure these operands which would be selected won't be folded while
+  // the isel traverses the DAG upward.
+  for (unsigned i = 0, e = EmitOrder.size(); i != e; ++i) {
+TreePatternNode *Child = EmitOrder[i].second;
+if (!Child->getName().empty()) {
+  std::string &Val = VariableMap[Child->getName()];
+  assert(!Val.empty() &&
+ "Variable referenced but not defined and not caught 
earlier!");
+  if (Child->isLeaf() && !NodeGetComplexPattern(Child, ISE)) {
+emitCode("SelectionDAG::InsertInFlightSetEntry(InFlightSet, " +
+ Val + ".Va

[llvm-commits] [release_18] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

2006-08-09 Thread Chris Lattner


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.226.2.3 -> 1.226.2.4
---
Log message:

Apply patch from mainline for GCC 3.3 compatibility.


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

 DAGISelEmitter.cpp |2 ++
 1 files changed, 2 insertions(+)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.3 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.4
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.226.2.3Wed Aug  9 11:46:19 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Wed Aug  9 11:55:25 2006
@@ -3633,6 +3633,8 @@
   OS << "#if defined(__GNUC__) && \\\n";
   OS << "((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)))\n";
   OS << "#define NOINLINE __attribute__((noinline))\n";
+  OS << "#else\n\n";
+  OS << "#define NOINLINE\n\n";
   OS << "#endif\n\n";
 
   OS << "// Instance var to keep track of multiply used nodes that have \n"



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


[llvm-commits] CVS: llvm-www/releases/1.8/llvm-1.8a.tar.gz

2006-08-09 Thread Tanya Lattner


Changes in directory llvm-www/releases/1.8:

llvm-1.8a.tar.gz added (r1.1)
---
Log message:

New tar ball with ISelEmitter.cpp patch for GCC 3.3 compatibility.


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

 llvm-1.8a.tar.gz |0 
 1 files changed


Index: llvm-www/releases/1.8/llvm-1.8a.tar.gz



___
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

2006-08-09 Thread Tanya Lattner


Changes in directory llvm-www/releases:

download.html updated: 1.35 -> 1.36
---
Log message:

Adjust link to new tar for 1.8a


---
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.35 
llvm-www/releases/download.html:1.36
--- llvm-www/releases/download.html:1.35Wed Aug  9 01:02:21 2006
+++ llvm-www/releases/download.html Wed Aug  9 12:00:24 2006
@@ -39,7 +39,7 @@
 downloading:
 
 
-LLVM source code (4.5M)
+LLVM source code (4.5M)
 LLVM Test Suite (11.6M)
LLVM-GCC 
3.4 Front End Binaries for Linux/x86 (6.4M)
   LLVM-GCC 
3.4 Front End Binaries for MacOS X/PowerPC (6.5M)



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


[llvm-commits] CVS: llvm/docs/ReleaseNotes.html

2006-08-09 Thread Tanya Lattner


Changes in directory llvm/docs:

ReleaseNotes.html updated: 1.361 -> 1.362
---
Log message:

Fixed misspelling


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

 ReleaseNotes.html |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/docs/ReleaseNotes.html
diff -u llvm/docs/ReleaseNotes.html:1.361 llvm/docs/ReleaseNotes.html:1.362
--- llvm/docs/ReleaseNotes.html:1.361   Tue Aug  8 23:10:32 2006
+++ llvm/docs/ReleaseNotes.html Wed Aug  9 12:08:27 2006
@@ -61,7 +61,7 @@
 
 
 
-This is the nineth public release of the LLVM Compiler Infrastructure. This
+This is the ninth public release of the LLVM Compiler Infrastructure. This
 release incorporates a large number of enhancements and new features,
 including DWARF debugging support (C and C++ on Darwin/PPC), improved inline
 assembly support, a new http://llvm.org/nightlytest/";>nightly 
@@ -684,7 +684,7 @@
   src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!" />
 
   http://llvm.org/";>The LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/08/09 04:10:32 $
+  Last modified: $Date: 2006/08/09 17:08:27 $
 
 
 



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


[llvm-commits] CVS: llvm/lib/Target/ARM/ARMRegisterInfo.cpp ARMTargetMachine.cpp

2006-08-09 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMRegisterInfo.cpp updated: 1.13 -> 1.14
ARMTargetMachine.cpp updated: 1.3 -> 1.4
---
Log message:

correctly set LocalAreaOffset of TargetFrameInfo


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

 ARMRegisterInfo.cpp  |5 -
 ARMTargetMachine.cpp |2 +-
 2 files changed, 1 insertion(+), 6 deletions(-)


Index: llvm/lib/Target/ARM/ARMRegisterInfo.cpp
diff -u llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.13 
llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.14
--- llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.13Wed Aug  9 11:41:12 2006
+++ llvm/lib/Target/ARM/ARMRegisterInfo.cpp Wed Aug  9 12:37:45 2006
@@ -93,11 +93,6 @@
 
   unsigned StackSize = MF.getFrameInfo()->getStackSize();
 
-  //
-  if (Offset < 0)
-Offset -= 4;
-  //
-
   Offset += StackSize;
 
   assert (Offset >= 0);


Index: llvm/lib/Target/ARM/ARMTargetMachine.cpp
diff -u llvm/lib/Target/ARM/ARMTargetMachine.cpp:1.3 
llvm/lib/Target/ARM/ARMTargetMachine.cpp:1.4
--- llvm/lib/Target/ARM/ARMTargetMachine.cpp:1.3Fri Jun 16 13:22:52 2006
+++ llvm/lib/Target/ARM/ARMTargetMachine.cppWed Aug  9 12:37:45 2006
@@ -33,7 +33,7 @@
 ///
 ARMTargetMachine::ARMTargetMachine(const Module &M, const std::string &FS)
   : TargetMachine("ARM"), DataLayout("E-p:32:32"),
-FrameInfo(TargetFrameInfo::StackGrowsDown, 8, 0) {
+FrameInfo(TargetFrameInfo::StackGrowsDown, 8, -4) {
 }
 
 unsigned ARMTargetMachine::getModuleMatchQuality(const Module &M) {



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


[llvm-commits] CVS: llvm/utils/findsym.pl

2006-08-09 Thread Reid Spencer


Changes in directory llvm/utils:

findsym.pl updated: 1.1 -> 1.2
---
Log message:

Fix a comment.


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

 findsym.pl |3 +--
 1 files changed, 1 insertion(+), 2 deletions(-)


Index: llvm/utils/findsym.pl
diff -u llvm/utils/findsym.pl:1.1 llvm/utils/findsym.pl:1.2
--- llvm/utils/findsym.pl:1.1   Thu Mar 23 17:04:50 2006
+++ llvm/utils/findsym.pl   Wed Aug  9 14:40:13 2006
@@ -5,14 +5,13 @@
 # Synopsis: Generate a list of the libraries in which a symbol is defined or
 #   referenced.
 #
-# Syntax:   GenLibDeps.pl  
+# Syntax:   findsym.pl  
 #
 
 # Give first option a name.
 my $Directory = $ARGV[0];
 my $Symbol = $ARGV[1];
 
-
 # Open the directory and read its contents, sorting by name and differentiating
 # by whether its a library (.a) or an object file (.o)
 opendir DIR,$Directory;



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


[llvm-commits] CVS: llvm-www/demo/index.cgi

2006-08-09 Thread Reid Spencer


Changes in directory llvm-www/demo:

index.cgi updated: 1.59 -> 1.60
---
Log message:

Add the invocation of llvm2cpp to the demo page. Also, rearrange the 
"what to do" options to make it more legible.


---
Diffs of the changes:  (+41 -33)

 index.cgi |   74 ++
 1 files changed, 41 insertions(+), 33 deletions(-)


Index: llvm-www/demo/index.cgi
diff -u llvm-www/demo/index.cgi:1.59 llvm-www/demo/index.cgi:1.60
--- llvm-www/demo/index.cgi:1.59Sat Jul 16 00:46:08 2005
+++ llvm-www/demo/index.cgi Wed Aug  9 17:28:57 2006
@@ -5,13 +5,13 @@
 # doing remote web JO99C compilations.  (It could still be used for that
 # purpose, though the two scripts have diverged somewhat.)
 #
-# Last modified $Date: 2005/07/16 05:46:08 $
+# Last modified $Date: 2006/08/09 22:28:57 $
 #
 
 use strict;
 use CGI;
 use POSIX;
-use Mail::Send;
+# use Mail::Send;
 
 $| = 1;
 
@@ -105,8 +105,8 @@
 
 sub mailto {
 my ( $recipient, $body ) = @_;
-my $msg =
-  new Mail::Send( Subject => "LLVM Demo Page Run", To => $recipient );
+my $msg = "Nada";
+#  new Mail::Send( Subject => "LLVM Demo Page Run", To => $recipient );
 my $fh = $msg->open();
 print $fh $body;
 $fh->close();
@@ -187,44 +187,45 @@
 information about Stacker and examples.\n";
 
-print "";
-print
-"Click here if you want Bitter Melon to run the resulting code through 
c++filt.  Warning, the LLVM code produced will probably not be lexically valid, 
but it will be easier to understand.",
-  $c->checkbox(
+print '';
+
+print $c->checkbox(
 -name  => 'cxxdemangle',
 -label => 'Demangle C++ names with c++filt'
-  ),
-  "";
-print "";
-
+  ),'';
 print
-"Bitter Melon can also run the link-time optimizer for you, if you like 
(but she won't link your code with any libraries).  Note that you have to 
define 'main' in your program for this to make much of a difference.",
-  $c->checkbox(
+"Click here if you want Bitter Melon to run the resulting code through 
c++filt.  Warning, the LLVM code produced will probably not be lexically valid, 
but it will be easier to understand.";
+
+print $c->checkbox(
 -name  => 'linkopt',
 -label => 'Run link-time optimizer',
 -checked => 'checked'
-  ),
-  "";
-
-print "";
-
+  ),"";
 print
-"Would you believe that BitterMelon even has a stopwatch? Click here to get 
detailed compilation statistic and timings from each pass.",
-  $c->checkbox(
+"Bitter Melon can also run the link-time optimizer for you, if you like 
(but she won't link your code with any libraries).  Note that you have to 
define 'main' in your program for this to make much of a difference.";
+print "";
+
+print $c->checkbox(
 -name  => 'showstats',
--label => 'Show detailed statistics'
-  ),
-  "";
-
-print "";
-
-print "And further, the cat can even produce detailed information about the 
bytecode file generated!",
-  " Click here to get a detailed description of the various artifacts in the 
bytecode file your program generates.",
-  $c->checkbox(
+-label => 'Show detailed pass statistics'
+  ), "";
+print
+"Would you believe that BitterMelon even has a stopwatch? Click here to get 
detailed compilation statistic and timings from each pass.";
+print "";
+
+print $c->checkbox(
 -name => 'showbcanalysis',
--label => 'Show detailed bytecode information'
-  ),
-  "";
+-label => 'Show detailed bytecode analysis'
+  ),"";
+print "And further, the cat can even produce detailed information about the 
bytecode file generated! Click here to get a detailed description of the 
various artifacts in the bytecode file your program generates.";
+
+print "";
+
+print $c->checkbox(
+-name => 'showllvm2cpp',
+-label => 'Show corresponding LLVM C++ code'
+  ),"";
+print "And, BitterMelon, that fabulously talented cat can even turn your 
bytecode back into LLVM C++ that would produce the same bytecode! Click here to 
get a C++ program that generates the equivalent bytecode for your program by 
direct LLVM IR calls.";
 
 print "";
 
@@ -263,6 +264,9 @@
 $sanitycheckfail .= ' llvm-bcanalyzer'
   if `llvm-bcanalyzer --help 2>&1` !~ /bcanalyzer/;
 
+$sanitycheckfail .= ' llvm2cpp' 
+  if `llvm2cpp --help 2>&1` !~ /llvm2cpp/;
+
 barf(
 "The demo page is currently unavailable. [tools: ($sanitycheckfail ) 
failed sanity check]"
   )
@@ -434,6 +438,10 @@
   try_run( "llvm-bcanalyzer", "llvm-bcanalyzer $bytecodeFile > $analFile 
2>&1", 
 $analFile);
 }
+if ($c->param('showllvm2cpp') ) {
+  my $l2cppFile = getname(".l2cpp");
+  try_run("llvm2cpp","llvm2cpp $bytecodeFile -o l2cppFile 
2>&1",$l2cppFile);
+}
 addlog( $source, $pid, $UnhilightedResult );
 
 my ( $ip, $host, $lg, $lines );



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


[llvm-commits] CVS: llvm-www/demo/index.cgi

2006-08-09 Thread Reid Spencer


Changes in directory llvm-www/demo:

index.cgi updated: 1.60 -> 1.61
---
Log message:

Take llvm2cpp out of the sanity check to restore the demo page.


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

 index.cgi |5 +
 1 files changed, 1 insertion(+), 4 deletions(-)


Index: llvm-www/demo/index.cgi
diff -u llvm-www/demo/index.cgi:1.60 llvm-www/demo/index.cgi:1.61
--- llvm-www/demo/index.cgi:1.60Wed Aug  9 17:28:57 2006
+++ llvm-www/demo/index.cgi Wed Aug  9 17:31:44 2006
@@ -5,7 +5,7 @@
 # doing remote web JO99C compilations.  (It could still be used for that
 # purpose, though the two scripts have diverged somewhat.)
 #
-# Last modified $Date: 2006/08/09 22:28:57 $
+# Last modified $Date: 2006/08/09 22:31:44 $
 #
 
 use strict;
@@ -264,9 +264,6 @@
 $sanitycheckfail .= ' llvm-bcanalyzer'
   if `llvm-bcanalyzer --help 2>&1` !~ /bcanalyzer/;
 
-$sanitycheckfail .= ' llvm2cpp' 
-  if `llvm2cpp --help 2>&1` !~ /llvm2cpp/;
-
 barf(
 "The demo page is currently unavailable. [tools: ($sanitycheckfail ) 
failed sanity check]"
   )



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


[llvm-commits] CVS: llvm-www/demo/index.cgi

2006-08-09 Thread Reid Spencer


Changes in directory llvm-www/demo:

index.cgi updated: 1.61 -> 1.62
---
Log message:

Remove temporary hack!


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

 index.cgi |8 
 1 files changed, 4 insertions(+), 4 deletions(-)


Index: llvm-www/demo/index.cgi
diff -u llvm-www/demo/index.cgi:1.61 llvm-www/demo/index.cgi:1.62
--- llvm-www/demo/index.cgi:1.61Wed Aug  9 17:31:44 2006
+++ llvm-www/demo/index.cgi Wed Aug  9 17:33:19 2006
@@ -5,13 +5,13 @@
 # doing remote web JO99C compilations.  (It could still be used for that
 # purpose, though the two scripts have diverged somewhat.)
 #
-# Last modified $Date: 2006/08/09 22:31:44 $
+# Last modified $Date: 2006/08/09 22:33:19 $
 #
 
 use strict;
 use CGI;
 use POSIX;
-# use Mail::Send;
+use Mail::Send;
 
 $| = 1;
 
@@ -105,8 +105,8 @@
 
 sub mailto {
 my ( $recipient, $body ) = @_;
-my $msg = "Nada";
-#  new Mail::Send( Subject => "LLVM Demo Page Run", To => $recipient );
+my $msg =
+  new Mail::Send( Subject => "LLVM Demo Page Run", To => $recipient );
 my $fh = $msg->open();
 print $fh $body;
 $fh->close();



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


[llvm-commits] CVS: llvm-www/demo/index.cgi

2006-08-09 Thread Reid Spencer


Changes in directory llvm-www/demo:

index.cgi updated: 1.62 -> 1.63
---
Log message:

Make a timeout on the usage lock.


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

 index.cgi |   17 ++---
 1 files changed, 10 insertions(+), 7 deletions(-)


Index: llvm-www/demo/index.cgi
diff -u llvm-www/demo/index.cgi:1.62 llvm-www/demo/index.cgi:1.63
--- llvm-www/demo/index.cgi:1.62Wed Aug  9 17:33:19 2006
+++ llvm-www/demo/index.cgi Wed Aug  9 17:47:28 2006
@@ -5,7 +5,7 @@
 # doing remote web JO99C compilations.  (It could still be used for that
 # purpose, though the two scripts have diverged somewhat.)
 #
-# Last modified $Date: 2006/08/09 22:33:19 $
+# Last modified $Date: 2006/08/09 22:47:28 $
 #
 
 use strict;
@@ -140,12 +140,15 @@
 print "";
 }
 
-if ( -f "/tmp/webcompile/locked" ) { 
-
-print "Bitter Melon the cat says, 'this page is already in use by someone 
else at this ";
-print "time, try reloading in a second or two.  Meow!'\n";
-exit 0;
-
+if ( -f "/tmp/webcompile/locked" ) {
+  my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$locktime) = 
+stat("/tmp/webcompile/locked");
+  my $currtime = time();
+  if ($locktime + 60 > $currtime) {
+print "Bitter Melon the cat says, 'this page is already in use by 
someone else at this ";
+print "time, try reloading in a second or two.  Meow!'\n";
+exit 0;
+  }
 }
 
 system("touch /tmp/webcompile/locked");



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


[llvm-commits] CVS: llvm/docs/HowToReleaseLLVM.html

2006-08-09 Thread Tanya Lattner


Changes in directory llvm/docs:

HowToReleaseLLVM.html updated: 1.8 -> 1.9
---
Log message:

Adding notes from release experience.


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

 HowToReleaseLLVM.html |   38 +-
 1 files changed, 37 insertions(+), 1 deletion(-)


Index: llvm/docs/HowToReleaseLLVM.html
diff -u llvm/docs/HowToReleaseLLVM.html:1.8 llvm/docs/HowToReleaseLLVM.html:1.9
--- llvm/docs/HowToReleaseLLVM.html:1.8 Tue Apr 11 17:02:18 2006
+++ llvm/docs/HowToReleaseLLVM.html Wed Aug  9 19:23:05 2006
@@ -56,11 +56,13 @@
 Make LibDeps.txt
 Settle LLVM HEAD
 Tag LLVM and Create the Release Branch
+Update LLVM Version 
 Build LLVM
 Run 'make check'
 Run LLVM Test Suite
 Build the LLVM Source Distributions
 Build the LLVM GCC Binary Distribution
+Update the LLVM Website
   
 
 
@@ -138,12 +140,20 @@
 "ROOT_RELEASE_XX" where XX is the major and minor
 release numbers (you can't have . in a cvs tag name). So, for Release 1.2,
 XX=12 and for Release 1.10, XX=110.
+ 
+
+cvs tag ROOT_RELEASE_XX
+
 
 
 
 Immediately create cvs branches based on the ROOT_RELEASE_XX tag. The tag
 should be "release_XX" (where XX matches that used for the ROOT_RELEASE_XX
 tag).  This is where the release distribution will be created.
+
+
+cvs tag -b -r ROOT_RELEASE_XX release_XX
+
 
 
 
@@ -165,6 +175,17 @@
 
 
 
+Update LLVM Version
+
+  
+  After creating the llvm release branch, update the release branch's 
autoconf/configure.ac 
+  version from X.Xcvs to just X.X. Update it on mainline as well to be the 
next version 
+  (X.X+1cvs). 
+  
+
+
+
+
 Build LLVM
 
   
@@ -274,6 +295,21 @@
   
 
 
+
+
+Update the LLVM 
Website
+
+  
+  Check out the llvm-www module from cvs. Create a new subdirectory X.X in the 
+  releases directory. Place the llvm, llvm-test, llvm-gcc source, and llvm-gcc 
+  binaries in this new directory. Copy the llvm/docs and LICENSE.txt files 
+  into this new directory. Update the releases/download.html file with  the 
new release. 
+  Update the releases/index.html with the new release. Finally, update the 
main page (
+  index.html and sidebar) to point to the new release and release 
announcement. Make 
+  sure this all gets commited back into cvs.
+  
+
+
 

[llvm-commits] CVS: llvm/include/llvm/Target/MRegisterInfo.h

2006-08-09 Thread Chris Lattner


Changes in directory llvm/include/llvm/Target:

MRegisterInfo.h updated: 1.80 -> 1.81
---
Log message:

Doxygenify some methods.


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

 MRegisterInfo.h |   12 
 1 files changed, 8 insertions(+), 4 deletions(-)


Index: llvm/include/llvm/Target/MRegisterInfo.h
diff -u llvm/include/llvm/Target/MRegisterInfo.h:1.80 
llvm/include/llvm/Target/MRegisterInfo.h:1.81
--- llvm/include/llvm/Target/MRegisterInfo.h:1.80   Thu Aug  3 13:57:28 2006
+++ llvm/include/llvm/Target/MRegisterInfo.hThu Aug 10 01:00:40 2006
@@ -66,17 +66,21 @@
 RegSize(RS), Alignment(Al), RegsBegin(RB), RegsEnd(RE) {}
   virtual ~TargetRegisterClass() {} // Allow subclasses
   
-  // getID() - Return the register class ID number.
+  /// getID() - Return the register class ID number.
+  ///
   unsigned getID() const { return ID; }
   
-  // begin/end - Return all of the registers in this class.
+  /// begin/end - Return all of the registers in this class.
+  ///
   iterator   begin() const { return RegsBegin; }
   iterator end() const { return RegsEnd; }
 
-  // getNumRegs - Return the number of registers in this class
+  /// getNumRegs - Return the number of registers in this class.
+  ///
   unsigned getNumRegs() const { return RegsEnd-RegsBegin; }
 
-  // getRegister - Return the specified register in the class
+  /// getRegister - Return the specified register in the class.
+  ///
   unsigned getRegister(unsigned i) const {
 assert(i < getNumRegs() && "Register number out of range!");
 return RegsBegin[i];



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