[llvm-commits] CVS: llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

2006-08-03 Thread Chris Lattner


Changes in directory llvm/lib/Transforms/Scalar:

LoopStrengthReduce.cpp updated: 1.86 - 1.87
---
Log message:


Changes:
  1. Update an obsolete comment.
  2. Make the sorting by base an explicit (though still N^2) step, so 
 that the code is more clear on what it is doing.
  3. Partition uses so that uses inside the loop are handled before uses
 outside the loop.

Note that none of these changes currently changes the code inserted by LSR,
but they are a stepping stone to getting there.

This code is the result of some crazy pair programming with Nate. :)



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

 LoopStrengthReduce.cpp |   63 +++--
 1 files changed, 46 insertions(+), 17 deletions(-)


Index: llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
diff -u llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.86 
llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.87
--- llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.86  Tue Jul 18 
14:07:58 2006
+++ llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp   Thu Aug  3 01:34:50 2006
@@ -750,9 +750,9 @@
 }
 
 
-/// IncrementAddExprUses - Decompose the specified expression into its added
-/// subexpressions, and increment SubExpressionUseCounts for each of these
-/// decomposed parts.
+/// SeparateSubExprs - Decompose Expr into all of the subexpressions that are
+/// added together.  This is used to reassociate common addition subexprs
+/// together for maximal sharing when rewriting bases.
 static void SeparateSubExprs(std::vectorSCEVHandle SubExprs,
  SCEVHandle Expr) {
   if (SCEVAddExpr *AE = dyn_castSCEVAddExpr(Expr)) {
@@ -904,6 +904,11 @@
   return 0;
 }
 
+/// PartitionByIsUseOfPostIncrementedValue - Simple boolean predicate that
+/// returns true if Val's isUseOfPostIncrementedValue is true.
+static bool PartitionByIsUseOfPostIncrementedValue(const BasedUser Val) {
+  return Val.isUseOfPostIncrementedValue;
+}
 
 /// StrengthReduceStridedIVUsers - Strength reduce all of the users of a single
 /// stride of IV.  All of the users may have different starting values, and 
this
@@ -1039,8 +1044,38 @@
  commonbase, PreInsertPt);
   }
 
-  // Sort by the base value, so that all IVs with identical bases are next to
-  // each other.
+  // We want to emit code for users inside the loop first.  To do this, we
+  // rearrange BasedUser so that the entries at the end have
+  // isUseOfPostIncrementedValue = false, because we pop off the end of the
+  // vector (so we handle them first).
+  std::partition(UsersToProcess.begin(), UsersToProcess.end(),
+ PartitionByIsUseOfPostIncrementedValue);
+  
+  // Sort this by base, so that things with the same base are handled
+  // together.  By partitioning first and stable-sorting later, we are
+  // guaranteed that within each base we will pop off users from within the
+  // loop before users outside of the loop with a particular base.
+  //
+  // We would like to use stable_sort here, but we can't.  The problem is that
+  // SCEVHandle's don't have a deterministic ordering w.r.t to each other, so
+  // we don't have anything to do a '' comparison on.  Because we think the
+  // number of uses is small, do a horrible bubble sort which just relies on
+  // ==.
+  for (unsigned i = 0, e = UsersToProcess.size(); i != e; ++i) {
+// Get a base value.
+SCEVHandle Base = UsersToProcess[i].Base;
+
+// Compact everything with this base to be consequetive with this one.
+for (unsigned j = i+1; j != e; ++j) {
+  if (UsersToProcess[j].Base == Base) {
+std::swap(UsersToProcess[i+1], UsersToProcess[j]);
+++i;
+  }
+}
+  }
+
+  // Process all the users now.  This outer loop handles all bases, the inner
+  // loop handles all users of a particular base.
   while (!UsersToProcess.empty()) {
 SCEVHandle Base = UsersToProcess.back().Base;
 
@@ -1054,17 +1089,18 @@
 // the preheader, instead of being forward substituted into the uses.  We 
do
 // this by forcing a noop cast to be inserted into the preheader in this
 // case.
-if (Constant *C = dyn_castConstant(BaseV))
+if (Constant *C = dyn_castConstant(BaseV)) {
   if (!C-isNullValue()  !isTargetConstant(Base, TLI)) {
 // We want this constant emitted into the preheader!
 BaseV = new CastInst(BaseV, BaseV-getType(), preheaderinsert,
  PreInsertPt);   
   }
-
+}
+
 // Emit the code to add the immediate offset to the Phi value, just before
 // the instructions that we identified as using this stride and base.
-unsigned ScanPos = 0;
 do {
+  // FIXME: Use emitted users to emit other users.
   BasedUser User = UsersToProcess.back();
 
   // If this instruction wants to use the post-incremented value, move it
@@ -1119,15 +1155,8 @@
   UsersToProcess.pop_back();
   ++NumReduced;
 
-  // If there are 

[llvm-commits] CVS: llvm/tools/lto/Makefile lto.cpp

2006-08-03 Thread Devang Patel


Changes in directory llvm/tools/lto:

Makefile added (r1.1)
lto.cpp added (r1.1)
---
Log message:

Add new tool, lto, to do link time optimization. This tool installs
dynamic library that linker can use to optimize llvm byte codes at
link time.


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

 Makefile |   68 
 lto.cpp  |  330 +++
 2 files changed, 398 insertions(+)


Index: llvm/tools/lto/Makefile
diff -c /dev/null llvm/tools/lto/Makefile:1.1
*** /dev/null   Thu Aug  3 10:45:07 2006
--- llvm/tools/lto/Makefile Thu Aug  3 10:44:57 2006
***
*** 0 
--- 1,68 
+ ##===- tools/lto/Makefile ---*- Makefile 
-*-===##
+ # 
+ # The LLVM Compiler Infrastructure
+ #
+ # This file was developed by Devang Patel and is distributed under
+ # the University of Illinois Open Source License. See LICENSE.TXT for details.
+ # 
+ 
##===--===##
+ 
+ LEVEL = ../..
+ LIBRARYNAME = LLVMlto
+ 
+ LINK_LIBS_IN_SHARED = 1
+ SHARED_LIBRARY = 1
+ LOADABLE_MODULE = 1
+ DONT_BUILD_RELINKED = 1
+ 
+ # Include this here so we can get the configuration of the targets
+ # that have been configured for construction. We have to do this 
+ # early so we can set up USEDLIBS properly before includeing Makefile.rules
+ include $(LEVEL)/Makefile.config
+ 
+ # Initialize the USEDLIBS so we can add to it
+ USEDLIBS :=
+ 
+ # Check for LLVMCBackend  target
+ ifneq ($(strip $(filter CBackend,$(TARGETS_TO_BUILD))),)
+ USEDLIBS += LLVMCBackend
+ endif
+ 
+ ifneq ($(strip $(filter Sparc,$(TARGETS_TO_BUILD))),)
+ USEDLIBS += LLVMSparc
+ endif
+ 
+ 
+ #Check for X86 Target
+ ifneq ($(strip $(filter X86,$(TARGETS_TO_BUILD))),)
+ USEDLIBS += LLVMX86
+ endif
+ 
+ #Check for PowerPC Target
+ ifneq ($(strip $(filter PowerPC,$(TARGETS_TO_BUILD))),)
+ USEDLIBS += LLVMPowerPC
+ endif
+ 
+ #Check for Alpha Target
+ ifneq ($(strip $(filter Alpha,$(TARGETS_TO_BUILD))),)
+ USEDLIBS += LLVMAlpha
+ endif
+ 
+ #Check for IA64 Target
+ ifneq ($(strip $(filter IA64,$(TARGETS_TO_BUILD))),)
+ USEDLIBS += LLVMIA64
+ endif
+ 
+ #Check for ARM Target
+ ifneq ($(strip $(filter ARM,$(TARGETS_TO_BUILD))),)
+ USEDLIBS += LLVMARM
+ endif
+ 
+ 
+ USEDLIBS += LLVMSelectionDAG.a LLVMCodeGen.a LLVMipo.a \
+ LLVMTransforms.a LLVMScalarOpts.a LLVMipa.a LLVMTransformUtils.a 
LLVMAnalysis.a \
+ LLVMTarget.a LLVMBCReader.a LLVMBCWriter.a LLVMSystem.a LLVMLinker.a 
LLVMCore.a \
+ LLVMSupport.a LLVMbzip2.a
+ 
+ include $(LEVEL)/Makefile.common
+ 


Index: llvm/tools/lto/lto.cpp
diff -c /dev/null llvm/tools/lto/lto.cpp:1.1
*** /dev/null   Thu Aug  3 10:45:13 2006
--- llvm/tools/lto/lto.cpp  Thu Aug  3 10:44:57 2006
***
*** 0 
--- 1,330 
+ //===-lto.cpp - LLVM Link Time Optimizer 
--===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+ // This file was developed by Devang Patel and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for 
details.
+ // 
+ 
//===--===//
+ //
+ // This file implementes link time optimization library. This library is 
+ // intended to be used by linker to optimize code at link time.
+ //
+ 
//===--===//
+ 
+ #include llvm/Module.h
+ #include llvm/PassManager.h
+ #include llvm/Linker.h
+ #include llvm/Constants.h
+ #include llvm/DerivedTypes.h
+ #include llvm/SymbolTable.h
+ #include llvm/Bytecode/Reader.h
+ #include llvm/Bytecode/Writer.h
+ #include llvm/Support/CommandLine.h
+ #include llvm/Support/FileUtilities.h
+ #include llvm/Support/SystemUtils.h
+ #include llvm/System/Program.h
+ #include llvm/System/Signals.h
+ #include llvm/Analysis/Passes.h
+ #include llvm/Analysis/Verifier.h
+ #include llvm/Target/SubtargetFeature.h
+ #include llvm/Target/TargetData.h
+ #include llvm/Target/TargetMachine.h
+ #include llvm/Target/TargetMachineRegistry.h
+ #include llvm/Transforms/IPO.h
+ #include llvm/Transforms/Scalar.h
+ #include llvm/Analysis/LoadValueNumbering.h
+ #include llvm/LinkTimeOptimizer.h
+ #include fstream
+ #include iostream
+ 
+ using namespace llvm;
+ 
+ extern C
+ llvm::LinkTimeOptimizer *createLLVMOptimizer()
+ {
+   llvm::LinkTimeOptimizer *l = new llvm::LinkTimeOptimizer();
+   return l;
+ }
+ 
+ 
+ 
+ /// If symbol is not used then make it internal and let optimizer takes 
+ /// care of it.
+ void LLVMSymbol::mayBeNotUsed() { 
+   gv-setLinkage(GlobalValue::InternalLinkage); 
+ }
+ 
+ // Helper routine
+ // FIXME : Take advantage of GlobalPrefix from AsmPrinter
+ static const char *addUnderscore(const char *name) {
+   size_t namelen = strlen(name);
+   char *symName = (char*)malloc(namelen+2);
+   symName[0] = '_';
+   strcpy(symName[1], name);
+   return symName;
+ }
+ 
+ // Map LLVM LinkageType to 

[llvm-commits] CVS: llvm/include/llvm/LinkTimeOptimizer.h

2006-08-03 Thread Devang Patel


Changes in directory llvm/include/llvm:

LinkTimeOptimizer.h added (r1.1)
---
Log message:

Add new tool, lto, to do link time optimization. This tool installs
dynamic library that linker can use to optimize llvm byte codes at
link time.


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

 LinkTimeOptimizer.h |   99 
 1 files changed, 99 insertions(+)


Index: llvm/include/llvm/LinkTimeOptimizer.h
diff -c /dev/null llvm/include/llvm/LinkTimeOptimizer.h:1.1
*** /dev/null   Thu Aug  3 10:45:07 2006
--- llvm/include/llvm/LinkTimeOptimizer.h   Thu Aug  3 10:44:57 2006
***
*** 0 
--- 1,99 
+ //===-- llvm/LinkTimeOptimizer.h - Public Interface  *- C++ 
-*-===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+ // This file was developed by Devang Patel and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for 
details.
+ // 
+ 
//===--===//
+ //
+ // This header provides public interface to use LLVM link time optimization
+ // library. This is intended to be used by linker to do link time 
optimization.
+ //
+ 
//===--===//
+ 
+ #ifndef __LTO_H__
+ #define __LTO_H__
+ 
+ #include string
+ #include vector
+ #include set
+ #include llvm/ADT/hash_map
+ 
+ namespace llvm {
+ 
+   class Module;
+   class GlobalValue;
+ 
+   enum LTOStatus {
+ LTO_UNKNOWN,
+ LTO_OPT_SUCCESS,
+ LTO_READ_SUCCESS,
+ LTO_READ_FAILURE,
+ LTO_WRITE_FAILURE,
+ LTO_NO_TARGET,
+ LTO_NO_WORK,
+ LTO_MODULE_MERGE_FAILURE,
+ LTO_ASM_FAILURE
+   };
+  
+   enum LTOLinkageTypes {
+ LTOExternalLinkage, // Externally visible function
+ LTOLinkOnceLinkage, // Keep one copy of named function when linking 
(inline)
+ LTOWeakLinkage, // Keep one copy of named function when linking (weak)
+ LTOInternalLinkage  // Rename collisions when linking (static functions)
+   };
+ 
+   /// This class representes LLVM symbol information without exposing details
+   /// of LLVM global values. It encapsulates symbol linkage information. This
+   /// is typically used in hash_map where associated name identifies the 
+   /// the symbol name.
+   class LLVMSymbol {
+ 
+   public:
+ 
+ LTOLinkageTypes getLinkage() const { return linkage; }
+ void mayBeNotUsed();
+ 
+   LLVMSymbol (enum LTOLinkageTypes lt, GlobalValue *g) : linkage(lt), gv(g) {}
+ 
+   private:
+ enum LTOLinkageTypes linkage;
+ GlobalValue *gv;
+   };
+ 
+   class string_compare {
+   public:
+ bool operator()(const char* left, const char* right) const { 
+   return (strcmp(left, right) == 0); 
+ }
+   };
+   
+   /// This is the main link time optimization class. It exposes simple API
+   /// to perform link time optimization using LLVM intermodular optimizer.
+   class LinkTimeOptimizer {
+ 
+   public:
+ typedef hash_mapconst char*, LLVMSymbol*, hashconst char*, 
+string_compare NameToSymbolMap;
+ 
+ enum LTOStatus readLLVMObjectFile(const std::string InputFilename,
+ NameToSymbolMap symbols,
+ std::setconst char* references);
+ enum LTOStatus optimizeModules(const std::string OutputFilename,
+  std::vectorconst char* exportList);
+ 
+   private:
+ std::vectorModule * modules;
+ NameToSymbolMap allSymbols;
+   };
+ 
+ } // End llvm namespace
+ 
+ /// This provides C interface to initialize link time optimizer. This allows
+ /// linker to use dlopen() interface to dynamically load LinkTimeOptimizer.
+ /// extern C helps, because dlopen() interface uses name to find the symbol.
+ extern C
+ llvm::LinkTimeOptimizer *createLLVMOptimizer();
+ 
+ #endif



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


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

2006-08-03 Thread Devang Patel


Changes in directory llvm/tools/lto:

Makefile updated: 1.1 - 1.2
---
Log message:

Remove ARM for the moment since it is a work in progress.


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

 Makefile |6 --
 1 files changed, 6 deletions(-)


Index: llvm/tools/lto/Makefile
diff -u llvm/tools/lto/Makefile:1.1 llvm/tools/lto/Makefile:1.2
--- llvm/tools/lto/Makefile:1.1 Thu Aug  3 10:44:57 2006
+++ llvm/tools/lto/Makefile Thu Aug  3 11:14:09 2006
@@ -53,12 +53,6 @@
 USEDLIBS += LLVMIA64
 endif
 
-#Check for ARM Target
-ifneq ($(strip $(filter ARM,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMARM
-endif
-
-
 USEDLIBS += LLVMSelectionDAG.a LLVMCodeGen.a LLVMipo.a \
 LLVMTransforms.a LLVMScalarOpts.a LLVMipa.a LLVMTransformUtils.a 
LLVMAnalysis.a \
 LLVMTarget.a LLVMBCReader.a LLVMBCWriter.a LLVMSystem.a LLVMLinker.a 
LLVMCore.a \



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


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

2006-08-03 Thread Patrick Jenkins


Changes in directory llvm/utils:

NewNightlyTest.pl updated: 1.38 - 1.39
---
Log message:

One of the directories we were searching in for .o and .a files was wrong. We 
now search /lib instead of /libs.


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

 NewNightlyTest.pl |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/utils/NewNightlyTest.pl
diff -u llvm/utils/NewNightlyTest.pl:1.38 llvm/utils/NewNightlyTest.pl:1.39
--- llvm/utils/NewNightlyTest.pl:1.38   Wed Aug  2 18:48:07 2006
+++ llvm/utils/NewNightlyTest.plThu Aug  3 11:28:58 2006
@@ -677,7 +677,7 @@
 }
ChangeDir( $BuildDir/llvm, Build Directory );
$afiles.= `find utils/ -iname '*.a' -ls`;
-   $afiles.= `find libs/ -iname '*.a' -ls`;
+   $afiles.= `find lib/ -iname '*.a' -ls`;
$afiles.= `find tools/ -iname '*.a' -ls`;
if($BUILDTYPE eq release){
$afiles.= `find Release/ -iname '*.a' -ls`;
@@ -688,7 +688,7 @@


$ofiles.= `find utils/ -iname '*.o' -ls`;
-   $ofiles.= `find libs/ -iname '*.o' -ls`;
+   $ofiles.= `find lib/ -iname '*.o' -ls`;
$ofiles.= `find tools/ -iname '*.o' -ls`;
if($BUILDTYPE eq release){
$ofiles.= `find Release/ -iname '*.o' -ls`;



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


[llvm-commits] CVS: llvm/include/llvm/LinkTimeOptimizer.h

2006-08-03 Thread Devang Patel


Changes in directory llvm/include/llvm:

LinkTimeOptimizer.h updated: 1.1 - 1.2
---
Log message:

Fix typo.


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

 LinkTimeOptimizer.h |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/include/llvm/LinkTimeOptimizer.h
diff -u llvm/include/llvm/LinkTimeOptimizer.h:1.1 
llvm/include/llvm/LinkTimeOptimizer.h:1.2
--- llvm/include/llvm/LinkTimeOptimizer.h:1.1   Thu Aug  3 10:44:57 2006
+++ llvm/include/llvm/LinkTimeOptimizer.h   Thu Aug  3 11:34:35 2006
@@ -44,7 +44,7 @@
 LTOInternalLinkage  // Rename collisions when linking (static functions)
   };
 
-  /// This class representes LLVM symbol information without exposing details
+  /// This class represents LLVM symbol information without exposing details
   /// of LLVM global values. It encapsulates symbol linkage information. This
   /// is typically used in hash_map where associated name identifies the 
   /// the symbol name.



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


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

2006-08-03 Thread Chris Lattner


Changes in directory llvm/tools/llc:

Makefile updated: 1.87 - 1.88
---
Log message:

Now that SparcV9 is gone, this logical can be simplified significantly.


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

 Makefile |   40 +---
 1 files changed, 1 insertion(+), 39 deletions(-)


Index: llvm/tools/llc/Makefile
diff -u llvm/tools/llc/Makefile:1.87 llvm/tools/llc/Makefile:1.88
--- llvm/tools/llc/Makefile:1.87Fri Jul 21 14:44:55 2006
+++ llvm/tools/llc/Makefile Thu Aug  3 11:59:17 2006
@@ -16,45 +16,7 @@
 # early so we can set up USEDLIBS properly before includeing Makefile.rules
 include $(LEVEL)/Makefile.config
 
-# Initialize the USEDLIBS so we can add to it
-USEDLIBS :=
-
-# Check for LLVMCBackend  target
-ifneq ($(strip $(filter CBackend,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMCBackend
-endif
-
-ifneq ($(strip $(filter Sparc,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMSparc
-endif
-
-
-#Check for X86 Target
-ifneq ($(strip $(filter X86,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMX86
-endif
-
-#Check for PowerPC Target
-ifneq ($(strip $(filter PowerPC,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMPowerPC
-endif
-
-#Check for Alpha Target
-ifneq ($(strip $(filter Alpha,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMAlpha
-endif
-
-#Check for IA64 Target
-ifneq ($(strip $(filter IA64,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMIA64
-endif
-
-#Check for ARM Target
-ifneq ($(strip $(filter ARM,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMARM
-endif
-
-USEDLIBS += \
+USEDLIBS := $(addprefix LLVM,$(TARGETS_TO_BUILD)) \
LLVMCodeGen.a \
LLVMSelectionDAG.a \
LLVMTarget.a \



___
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 ARMInstrInfo.td

2006-08-03 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMISelDAGToDAG.cpp updated: 1.19 - 1.20
ARMInstrInfo.td updated: 1.11 - 1.12
---
Log message:

add and use ARMISD::RET_FLAG


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

 ARMISelDAGToDAG.cpp |   15 +++
 ARMInstrInfo.td |4 +++-
 2 files changed, 10 insertions(+), 9 deletions(-)


Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.19 
llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.20
--- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.19Tue Aug  1 07:58:43 2006
+++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Thu Aug  3 12:02:20 2006
@@ -52,7 +52,10 @@
   // Start the numbering where the builting ops and target ops leave off.
   FIRST_NUMBER = ISD::BUILTIN_OP_END+ARM::INSTRUCTION_LIST_END,
   /// CALL - A direct function call.
-  CALL
+  CALL,
+
+  /// Return with a flag operand.
+  RET_FLAG
 };
   }
 }
@@ -61,6 +64,7 @@
   switch (Opcode) {
   default: return 0;
   case ARMISD::CALL:  return ARMISD::CALL;
+  case ARMISD::RET_FLAG:  return ARMISD::RET_FLAG;
   }
 }
 
@@ -175,13 +179,8 @@
 break;
   }
 
-  SDOperand LR = DAG.getRegister(ARM::R14, MVT::i32);
-
-  //bug: the copy and branch should be linked with a flag so that the
-  //scheduller can't move an instruction that destroys R0 in between them
-  //return DAG.getNode(ISD::BRIND, MVT::Other, Copy, LR, Copy.getValue(1));
-
-  return DAG.getNode(ISD::BRIND, MVT::Other, Copy, LR);
+  //We must use RET_FLAG instead of BRIND because BRIND doesn't have a flag
+  return DAG.getNode(ARMISD::RET_FLAG, MVT::Other, Copy, Copy.getValue(1));
 }
 
 static SDOperand LowerFORMAL_ARGUMENT(SDOperand Op, SelectionDAG DAG,


Index: llvm/lib/Target/ARM/ARMInstrInfo.td
diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.11 
llvm/lib/Target/ARM/ARMInstrInfo.td:1.12
--- llvm/lib/Target/ARM/ARMInstrInfo.td:1.11Tue Aug  1 13:53:10 2006
+++ llvm/lib/Target/ARM/ARMInstrInfo.td Thu Aug  3 12:02:20 2006
@@ -44,6 +44,8 @@
 def SDT_ARMcall: SDTypeProfile0, -1, [SDTCisInt0];
 def ARMcall: SDNodeARMISD::CALL, SDT_ARMcall,
[SDNPHasChain, SDNPOptInFlag, SDNPOutFlag];
+def retflag: SDNodeARMISD::RET_FLAG, SDTRet,
+  [SDNPHasChain, SDNPOptInFlag];
 
 def ADJCALLSTACKUP : InstARM(ops i32imm:$amt),
 !ADJCALLSTACKUP $amt,
@@ -54,7 +56,7 @@
[(callseq_start imm:$amt)];
 
 let isReturn = 1 in {
-  def bx: InstARM(ops IntRegs:$dst), bx $dst, [(brind IntRegs:$dst)];
+  def bx: InstARM(ops), bx r14, [(retflag)];
 }
 
 let  Defs = [R0, R1, R2, R3] in {



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


[llvm-commits] CVS: nightlytest-serverside/test.php fulltest.php

2006-08-03 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

test.php updated: 1.12 - 1.13
fulltest.php updated: 1.9 - 1.10
---
Log message:

Fixed the coloring of cells in teh file size information table, also formatted 
the sum total size of the files so it is easily readable.



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

 fulltest.php |9 +
 test.php |   25 +++--
 2 files changed, 12 insertions(+), 22 deletions(-)


Index: nightlytest-serverside/test.php
diff -u nightlytest-serverside/test.php:1.12 
nightlytest-serverside/test.php:1.13
--- nightlytest-serverside/test.php:1.12Wed Aug  2 18:37:08 2006
+++ nightlytest-serverside/test.php Thu Aug  3 12:05:39 2006
@@ -494,9 +494,10 @@
 
 $all_data=buildFileSizeTable($mysql_link, $machine_id, $night_id);
 
-print bTotal size/b: {$all_data['Total Sum'][0]} bytesbr\n;
-print bDifference from previous test/b: {$all_data['Total 
Sum'][1]}br\n;
-print bDifference from five tests ago/b: {$all_data['Total 
Sum'][2]}brbr\n;
+$unformatted_num=number_format($all_data['Total Sum'][0],0,.,,);
+print bTotal size/b: $unformatted_num bytesbr\n;
+print bPercent difference from previous test/b: {$all_data['Total 
Sum'][1]}br\n;
+print bPercent difference from five tests ago/b: {$all_data['Total 
Sum'][2]}brbr\n;
 
 print table class=\sortable\ id=\file_sizes\ border=1 cellspacing=0 
cellpadding=6\n;
 print \ttr\n;
@@ -517,7 +518,7 @@
 print \t/tr\n;
 
 foreach (array_keys($all_data) as $d){
-  if($all_data[$d][1]!=0 || $all_data[$d][2]!=0){
+  if($all_data[$d][1]!=0 || $all_data[$d][3]!=0){
 print \ttr\n;
 if(strcmp($d, Total Sum)!=0){
   print \t\ttdinput type=checkbox name=files[] multiple=\multiple\ 
value=\$d\\n;
@@ -528,23 +529,11 @@
 print \t\t$d/td\n;
 print \t\ttd{$all_data[$d][0]}/td\n;
 
-if($all_data[$d][1]!=0){
-  $color=bgcolor=;
-  $color.=DetermineColor($all_data[$d][1], \\);
-}
-else{
-  $color=;
-}
+$color=bgcolor=\.DetermineColor($all_data[$d][1], ).\;
 print \t\ttd $color{$all_data[$d][1]}/td\n;
 print \t\ttd $color{$all_data[$d][2]}/td\n;
 
-if($all_data[$d][3]!=0){
-  $color=bgolor=;
-  $color.=DetermineColor($all_data[$d][3], white);
-}
-else{
-  $color=;
-}
+$color=bgcolor=\.DetermineColor($all_data[$d][3], ).\;
 print \t\ttd $color{$all_data[$d][3]}/td\n;
 print \t\ttd $color{$all_data[$d][4]}/td\n;
 


Index: nightlytest-serverside/fulltest.php
diff -u nightlytest-serverside/fulltest.php:1.9 
nightlytest-serverside/fulltest.php:1.10
--- nightlytest-serverside/fulltest.php:1.9 Wed Aug  2 18:30:32 2006
+++ nightlytest-serverside/fulltest.php Thu Aug  3 12:05:39 2006
@@ -481,9 +481,10 @@
 
 $all_data=buildFileSizeTable($mysql_link, $machine_id, $night_id);
 
-print bTotal size/b: {$all_data['Total Sum'][0]} bytesbr\n;
-print bDifference from previous test/b: {$all_data['Total 
Sum'][1]}br\n;
-print bDifference from five tests ago/b: {$all_data['Total 
Sum'][2]}brbr\n;
+$formatted_num=number_format($all_data['Total Sum'][0],0,.,,);
+print bTotal size/b: $formatted_num bytesbr\n;
+print bPercent difference from previous test/b: {$all_data['Total 
Sum'][1]}br\n;
+print bPercent difference from five tests ago/b: {$all_data['Total 
Sum'][2]}brbr\n;
 
 print table class=\sortable\ id=\file_sizes\ border=1 cellspacing=0 
cellpadding=6\n;
 print \ttr\n;
@@ -504,7 +505,7 @@
 print \t/tr\n;
 
 foreach (array_keys($all_data) as $d){
-  if($all_data[$d][1]!=0 || $all_data[$d][2]!=0){
+  if($all_data[$d][1]!=0 || $all_data[$d][3]!=0){
 print \ttr\n;
 if(strcmp($d, Total Sum)!=0){
   print \t\ttdinput type=checkbox name=files[] multiple=\multiple\ 
value=\$d\\n;



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


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

2006-08-03 Thread Devang Patel


Changes in directory llvm/tools/lto:

Makefile updated: 1.2 - 1.3
---
Log message:

Simplify. Use addprefix.


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

 Makefile |   42 +-
 1 files changed, 5 insertions(+), 37 deletions(-)


Index: llvm/tools/lto/Makefile
diff -u llvm/tools/lto/Makefile:1.2 llvm/tools/lto/Makefile:1.3
--- llvm/tools/lto/Makefile:1.2 Thu Aug  3 11:14:09 2006
+++ llvm/tools/lto/Makefile Thu Aug  3 12:18:45 2006
@@ -20,43 +20,11 @@
 # early so we can set up USEDLIBS properly before includeing Makefile.rules
 include $(LEVEL)/Makefile.config
 
-# Initialize the USEDLIBS so we can add to it
-USEDLIBS :=
-
-# Check for LLVMCBackend  target
-ifneq ($(strip $(filter CBackend,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMCBackend
-endif
-
-ifneq ($(strip $(filter Sparc,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMSparc
-endif
-
-
-#Check for X86 Target
-ifneq ($(strip $(filter X86,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMX86
-endif
-
-#Check for PowerPC Target
-ifneq ($(strip $(filter PowerPC,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMPowerPC
-endif
-
-#Check for Alpha Target
-ifneq ($(strip $(filter Alpha,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMAlpha
-endif
-
-#Check for IA64 Target
-ifneq ($(strip $(filter IA64,$(TARGETS_TO_BUILD))),)
-USEDLIBS += LLVMIA64
-endif
-
-USEDLIBS += LLVMSelectionDAG.a LLVMCodeGen.a LLVMipo.a \
-LLVMTransforms.a LLVMScalarOpts.a LLVMipa.a LLVMTransformUtils.a 
LLVMAnalysis.a \
-LLVMTarget.a LLVMBCReader.a LLVMBCWriter.a LLVMSystem.a LLVMLinker.a 
LLVMCore.a \
-LLVMSupport.a LLVMbzip2.a
+USEDLIBS := $(addprefix LLVM,$(TARGETS_TO_BUILD)) \
+   LLVMSelectionDAG.a LLVMCodeGen.a LLVMipo.a LLVMTransforms.a \
+   LLVMScalarOpts.a LLVMipa.a LLVMTransformUtils.a LLVMAnalysis.a \
+   LLVMTarget.a LLVMBCReader.a LLVMBCWriter.a LLVMSystem.a LLVMLinker.a \
+   LLVMCore.a LLVMSupport.a LLVMbzip2.a
 
 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/tools/lto/lto.cpp

2006-08-03 Thread Devang Patel


Changes in directory llvm/tools/lto:

lto.cpp updated: 1.1 - 1.2
---
Log message:

Fix typo.


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

 lto.cpp |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/tools/lto/lto.cpp
diff -u llvm/tools/lto/lto.cpp:1.1 llvm/tools/lto/lto.cpp:1.2
--- llvm/tools/lto/lto.cpp:1.1  Thu Aug  3 10:44:57 2006
+++ llvm/tools/lto/lto.cpp  Thu Aug  3 12:25:36 2006
@@ -275,7 +275,7 @@
 #endif
 
   // Strip leading underscore because it was added to match names
-  // seen by liner.
+  // seen by linker.
   for (unsigned i = 0, e = exportList.size(); i != e; ++i) {
 const char *name = exportList[i];
 if (strlen(name)  2  name[0] == '_')



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


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

2006-08-03 Thread Devang Patel


Changes in directory llvm/tools/lto:

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

Make it fit into 80-columns.


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

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


Index: llvm/tools/lto/Makefile
diff -u llvm/tools/lto/Makefile:1.3 llvm/tools/lto/Makefile:1.4
--- llvm/tools/lto/Makefile:1.3 Thu Aug  3 12:18:45 2006
+++ llvm/tools/lto/Makefile Thu Aug  3 12:26:30 2006
@@ -1,4 +1,4 @@
-##===- tools/lto/Makefile ---*- Makefile 
-*-===##
+##===- tools/lto/Makefile --*- Makefile 
-*-===##
 # 
 # The LLVM Compiler Infrastructure
 #



___
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/X86AsmPrinter.h X86RegisterInfo.td

2006-08-03 Thread Jim Laskey


Changes in directory llvm/lib/Target/X86:

X86AsmPrinter.h updated: 1.25 - 1.26
X86RegisterInfo.td updated: 1.35 - 1.36
---
Log message:

Get darwin intel debugging up and running.


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

 X86AsmPrinter.h|   28 +-
 X86RegisterInfo.td |   80 ++---
 2 files changed, 54 insertions(+), 54 deletions(-)


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.25 
llvm/lib/Target/X86/X86AsmPrinter.h:1.26
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.25Wed Jul 26 21:05:13 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h Thu Aug  3 12:27:09 2006
@@ -33,20 +33,20 @@
 ///
 struct X86DwarfWriter : public DwarfWriter {
   X86DwarfWriter(std::ostream o, AsmPrinter *ap) : DwarfWriter(o, ap) {
-needsSet = true;
-DwarfAbbrevSection = .section __DWARFA,__debug_abbrev;
-DwarfInfoSection = .section __DWARFA,__debug_info;
-DwarfLineSection = .section __DWARFA,__debug_line;
-DwarfFrameSection = .section __DWARFA,__debug_frame;
-DwarfPubNamesSection = .section __DWARFA,__debug_pubnames;
-DwarfPubTypesSection = .section __DWARFA,__debug_pubtypes;
-DwarfStrSection = .section __DWARFA,__debug_str;
-DwarfLocSection = .section __DWARFA,__debug_loc;
-DwarfARangesSection = .section __DWARFA,__debug_aranges;
-DwarfRangesSection = .section __DWARFA,__debug_ranges;
-DwarfMacInfoSection = .section __DWARFA,__debug_macinfo;
-TextSection = .text;
-DataSection = .data;
+  needsSet = true;
+  DwarfAbbrevSection = .section __DWARF,__debug_abbrev,regular,debug;
+  DwarfInfoSection = .section __DWARF,__debug_info,regular,debug;
+  DwarfLineSection = .section __DWARF,__debug_line,regular,debug;
+  DwarfFrameSection = .section __DWARF,__debug_frame,regular,debug;
+  DwarfPubNamesSection = .section __DWARF,__debug_pubnames,regular,debug;
+  DwarfPubTypesSection = .section __DWARF,__debug_pubtypes,regular,debug;
+  DwarfStrSection = .section __DWARF,__debug_str,regular,debug;
+  DwarfLocSection = .section __DWARF,__debug_loc,regular,debug;
+  DwarfARangesSection = .section __DWARF,__debug_aranges,regular,debug;
+  DwarfRangesSection = .section __DWARF,__debug_ranges,regular,debug;
+  DwarfMacInfoSection = .section __DWARF,__debug_macinfo,regular,debug;
+  TextSection = .text;
+  DataSection = .data;
   }
   virtual void virtfn();  // out of line virtual fn.
 };


Index: llvm/lib/Target/X86/X86RegisterInfo.td
diff -u llvm/lib/Target/X86/X86RegisterInfo.td:1.35 
llvm/lib/Target/X86/X86RegisterInfo.td:1.36
--- llvm/lib/Target/X86/X86RegisterInfo.td:1.35 Tue May 16 02:21:53 2006
+++ llvm/lib/Target/X86/X86RegisterInfo.td  Thu Aug  3 12:27:09 2006
@@ -25,43 +25,43 @@
 
   // 32-bit registers
   def EAX : RegisterEAX, DwarfRegNum0;
-  def ECX : RegisterECX, DwarfRegNum2;
-  def EDX : RegisterEDX, DwarfRegNum1;
+  def ECX : RegisterECX, DwarfRegNum1;
+  def EDX : RegisterEDX, DwarfRegNum2;
   def EBX : RegisterEBX, DwarfRegNum3;
-  def ESP : RegisterESP, DwarfRegNum7;
-  def EBP : RegisterEBP, DwarfRegNum6;
-  def ESI : RegisterESI, DwarfRegNum4;
-  def EDI : RegisterEDI, DwarfRegNum5;
+  def ESP : RegisterESP, DwarfRegNum4;
+  def EBP : RegisterEBP, DwarfRegNum5;
+  def ESI : RegisterESI, DwarfRegNum6;
+  def EDI : RegisterEDI, DwarfRegNum7;
   
   // 16-bit registers
   def AX : RegisterGroupAX, [EAX], DwarfRegNum0;
-  def CX : RegisterGroupCX, [ECX], DwarfRegNum2;
-  def DX : RegisterGroupDX, [EDX], DwarfRegNum1;
+  def CX : RegisterGroupCX, [ECX], DwarfRegNum1;
+  def DX : RegisterGroupDX, [EDX], DwarfRegNum2;
   def BX : RegisterGroupBX, [EBX], DwarfRegNum3;
-  def SP : RegisterGroupSP, [ESP], DwarfRegNum7;
-  def BP : RegisterGroupBP, [EBP], DwarfRegNum6;
-  def SI : RegisterGroupSI, [ESI], DwarfRegNum4;
-  def DI : RegisterGroupDI, [EDI], DwarfRegNum5;
+  def SP : RegisterGroupSP, [ESP], DwarfRegNum4;
+  def BP : RegisterGroupBP, [EBP], DwarfRegNum5;
+  def SI : RegisterGroupSI, [ESI], DwarfRegNum6;
+  def DI : RegisterGroupDI, [EDI], DwarfRegNum7;
   
   // 8-bit registers
   def AL : RegisterGroupAL, [AX,EAX], DwarfRegNum0;
-  def CL : RegisterGroupCL, [CX,ECX], DwarfRegNum2;
-  def DL : RegisterGroupDL, [DX,EDX], DwarfRegNum1;
+  def CL : RegisterGroupCL, [CX,ECX], DwarfRegNum1;
+  def DL : RegisterGroupDL, [DX,EDX], DwarfRegNum2;
   def BL : RegisterGroupBL, [BX,EBX], DwarfRegNum3;
   def AH : RegisterGroupAH, [AX,EAX], DwarfRegNum0;
-  def CH : RegisterGroupCH, [CX,ECX], DwarfRegNum2;
-  def DH : RegisterGroupDH, [DX,EDX], DwarfRegNum1;
+  def CH : RegisterGroupCH, [CX,ECX], DwarfRegNum1;
+  def DH : RegisterGroupDH, [DX,EDX], DwarfRegNum2;
   def BH : RegisterGroupBH, [BX,EBX], DwarfRegNum3;
 
   // MMX Registers. These are actually aliased to ST0 .. ST7
-  def MM0 : RegisterMM0, DwarfRegNum29;
-  def MM1 : RegisterMM1, DwarfRegNum30;
-  def MM2 : RegisterMM2, DwarfRegNum31;
-  def MM3 : 

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

2006-08-03 Thread Jim Laskey


Changes in directory llvm/lib/Target:

MRegisterInfo.cpp updated: 1.15 - 1.16
---
Log message:

Get darwin intel debugging up and running.


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

 MRegisterInfo.cpp |7 ++-
 1 files changed, 6 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/MRegisterInfo.cpp
diff -u llvm/lib/Target/MRegisterInfo.cpp:1.15 
llvm/lib/Target/MRegisterInfo.cpp:1.16
--- llvm/lib/Target/MRegisterInfo.cpp:1.15  Mon Apr 10 18:09:19 2006
+++ llvm/lib/Target/MRegisterInfo.cpp   Thu Aug  3 12:27:09 2006
@@ -11,7 +11,9 @@
 //
 
//===--===//
 
+#include llvm/Target/TargetMachine.h
 #include llvm/Target/MRegisterInfo.h
+#include llvm/Target/TargetFrameInfo.h
 
 #include llvm/CodeGen/MachineFunction.h
 #include llvm/CodeGen/MachineFrameInfo.h
@@ -50,9 +52,12 @@
 /// variables and then call MRegisterInfo::getLocation for the default action.
 void MRegisterInfo::getLocation(MachineFunction MF, unsigned Index,
 MachineLocation ML) const {
+  const TargetFrameInfo TFI = *MF.getTarget().getFrameInfo();
   MachineFrameInfo *MFI = MF.getFrameInfo();
   ML.set(getFrameRegister(MF),
- MFI-getObjectOffset(Index) + MFI-getStackSize());
+ MFI-getObjectOffset(Index) +
+ MFI-getStackSize() -
+ TFI.getOffsetOfLocalArea());
 }
 
 /// getInitialFrameState - Returns a list of machine moves that are assumed



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


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

2006-08-03 Thread Chris Lattner


Changes in directory llvm/include/llvm/Target:

TargetFrameInfo.h updated: 1.20 - 1.21
---
Log message:

remove some more dead sparcv9 support stuff


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

 TargetFrameInfo.h |   25 -
 1 files changed, 25 deletions(-)


Index: llvm/include/llvm/Target/TargetFrameInfo.h
diff -u llvm/include/llvm/Target/TargetFrameInfo.h:1.20 
llvm/include/llvm/Target/TargetFrameInfo.h:1.21
--- llvm/include/llvm/Target/TargetFrameInfo.h:1.20 Sun Apr 24 21:55:55 2005
+++ llvm/include/llvm/Target/TargetFrameInfo.h  Thu Aug  3 13:55:44 2006
@@ -75,31 +75,6 @@
 NumEntries = 0;
 return 0;
   }
-
-  
//======//
-  // These methods provide details of the stack frame used by Sparc, thus they
-  // are Sparc specific.
-  
//======//
-
-  // This method adjusts a stack offset to meet alignment rules of target.
-  virtual int adjustAlignment(int unalignedOffset, bool growUp,
-  unsigned align) const;
-
-  // These methods compute offsets using the frame contents for a particular
-  // function.  The frame contents are obtained from the MachineFunction object
-  // for the given function.  The rest must be implemented by the
-  // machine-specific subclass.
-  //
-  virtual int getIncomingArgOffset(MachineFunction mcInfo,
-   unsigned argNum) const;
-  virtual int getOutgoingArgOffset(MachineFunction mcInfo,
-   unsigned argNum) const;
-  virtual int getFirstAutomaticVarOffset(MachineFunction mcInfo,
- bool growUp) const;
-  virtual int getRegSpillAreaOffset(MachineFunction mcInfo,
-bool growUp) const;
-  virtual int getTmpAreaOffset(MachineFunction mcInfo, bool growUp) const;
-  virtual int getDynamicAreaOffset(MachineFunction mcInfo, bool growUp) 
const;
 };
 
 } // End llvm namespace



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


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

2006-08-03 Thread Chris Lattner


Changes in directory llvm/lib/Target:

TargetFrameInfo.cpp updated: 1.7 - 1.8
---
Log message:

remove some more dead sparcv9 support stuff


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

 TargetFrameInfo.cpp |   64 
 1 files changed, 1 insertion(+), 63 deletions(-)


Index: llvm/lib/Target/TargetFrameInfo.cpp
diff -u llvm/lib/Target/TargetFrameInfo.cpp:1.7 
llvm/lib/Target/TargetFrameInfo.cpp:1.8
--- llvm/lib/Target/TargetFrameInfo.cpp:1.7 Wed Jul 27 01:12:33 2005
+++ llvm/lib/Target/TargetFrameInfo.cpp Thu Aug  3 13:55:44 2006
@@ -13,69 +13,7 @@
 
 #include llvm/Target/TargetFrameInfo.h
 #include cstdlib
-
 using namespace llvm;
 
-TargetFrameInfo::~TargetFrameInfo()
-{
+TargetFrameInfo::~TargetFrameInfo() {
 }
-
-//======//
-// These methods provide details of the stack frame used by Sparc, thus they
-// are Sparc specific.
-//======//
-
-// This method adjusts a stack offset to meet alignment rules of target.
-int
-TargetFrameInfo::adjustAlignment(int unalignedOffset, bool growUp,
- unsigned align) const {
-  abort();
-  return 0;
-}
-
-// These methods compute offsets using the frame contents for a particular
-// function.  The frame contents are obtained from the MachineFunction object
-// for the given function.  The rest must be implemented by the
-// machine-specific subclass.
-//
-int
-TargetFrameInfo::getIncomingArgOffset(MachineFunction mcInfo, unsigned argNum)
-  const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getOutgoingArgOffset(MachineFunction mcInfo,
-  unsigned argNum) const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getFirstAutomaticVarOffset(MachineFunction mcInfo,
-bool growUp) const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getRegSpillAreaOffset(MachineFunction mcInfo, bool growUp)
-  const {
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getTmpAreaOffset(MachineFunction mcInfo, bool growUp) const 
{
-  abort();
-  return 0;
-}
-
-int
-TargetFrameInfo::getDynamicAreaOffset(MachineFunction mcInfo, bool growUp)
-  const {
-  abort();
-  return 0;
-}
-



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


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

2006-08-03 Thread Chris Lattner


Changes in directory llvm/include/llvm/Target:

MRegisterInfo.h updated: 1.79 - 1.80
---
Log message:

update comment


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

 MRegisterInfo.h |   10 ++
 1 files changed, 2 insertions(+), 8 deletions(-)


Index: llvm/include/llvm/Target/MRegisterInfo.h
diff -u llvm/include/llvm/Target/MRegisterInfo.h:1.79 
llvm/include/llvm/Target/MRegisterInfo.h:1.80
--- llvm/include/llvm/Target/MRegisterInfo.h:1.79   Fri Jul 21 15:57:35 2006
+++ llvm/include/llvm/Target/MRegisterInfo.hThu Aug  3 13:57:28 2006
@@ -208,20 +208,14 @@
 public:
 
   enum {// Define some target independent constants
-/// NoRegister - This 'hard' register is a 'noop' register for all 
backends.
-/// This is used as the destination register for instructions that do not
-/// produce a value.  Some frontends may use this as an operand register to
-/// mean special things, for example, the Sparc backend uses R0 to mean %g0
-/// which always PRODUCES the value 0.  The X86 backend does not use this
-/// value as an operand register, except for memory references.
-///
+/// NoRegister - This physical register is not a real target register.  It
+/// is useful as a sentinal.
 NoRegister = 0,
 
 /// FirstVirtualRegister - This is the first register number that is
 /// considered to be a 'virtual' register, which is part of the SSA
 /// namespace.  This must be the same for all targets, which means that 
each
 /// target is limited to 1024 registers.
-///
 FirstVirtualRegister = 1024
   };
 



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


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

2006-08-03 Thread Reid Spencer


Changes in directory llvm/utils:

GenLibDeps.pl updated: 1.11 - 1.12
---
Log message:

Print an error message if the lib directory (first argument) is not a 
directory.


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

 GenLibDeps.pl |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)


Index: llvm/utils/GenLibDeps.pl
diff -u llvm/utils/GenLibDeps.pl:1.11 llvm/utils/GenLibDeps.pl:1.12
--- llvm/utils/GenLibDeps.pl:1.11   Tue Aug  1 03:09:03 2006
+++ llvm/utils/GenLibDeps.plThu Aug  3 14:10:03 2006
@@ -24,9 +24,10 @@
 
 # Give first option a name.
 my $Directory = $ARGV[0];
-if (!defined($Directory)) {
-  die First argument must be the directory containing LLVM libs\n;
+if (!defined($Directory) || ! -d $Directory) {
+  die First argument must specify the directory containing LLVM libs\n;
 }
+
 my $nmPath = $ARGV[1];
 
 # Find the dot program



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


[llvm-commits] CVS: nightlytest-serverside/test.php

2006-08-03 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

test.php updated: 1.13 - 1.14
---
Log message:

We now display Significant changes in file size the same way display 
significant changes in performance.



---
Diffs of the changes:  (+274 -249)

 test.php |  523 +--
 1 files changed, 274 insertions(+), 249 deletions(-)


Index: nightlytest-serverside/test.php
diff -u nightlytest-serverside/test.php:1.13 
nightlytest-serverside/test.php:1.14
--- nightlytest-serverside/test.php:1.13Thu Aug  3 12:05:39 2006
+++ nightlytest-serverside/test.php Thu Aug  3 15:42:09 2006
@@ -61,15 +61,15 @@
 centerfont size=+3 face=VerdanabLLVM Nightly Test Results For ?php 
print $cur_date; ?/b/font/centerbr
 
 table cellspacing=0 cellpadding=0 border=0
-   tr
-   td valign=top width=180
-   ? 
-   $machine = $HTTP_GET_VARS['machine'];
-   $night = $HTTP_GET_VARS['night'];
-   include 'sidebar.php'; 
-   ?  
-   /td
-   td
+  tr
+td valign=top width=180
+  ? 
+  $machine = $HTTP_GET_VARS['machine'];
+  $night = $HTTP_GET_VARS['night'];
+  include 'sidebar.php'; 
+  ?  
+/td
+td
 ?php
 
 /*
@@ -117,8 +117,8 @@
 
 $buildfile=str_replace( , _, $cur_date);
 if(file_exists(machines/$machine_id/$buildfile-Build-Log.txt)){
-   print h4a href=\machines/$machine_id/$buildfile-Build-Log.txt\.
- View Build Log/a/h4\n;
+  print h4a href=\machines/$machine_id/$buildfile-Build-Log.txt\.
+  View Build Log/a/h4\n;
 }
 
 /*
@@ -127,16 +127,16 @@
  *
  **/
 if(strpos($today_row['buildstatus'], OK)===FALSE){
-   $disp=;
-   $sign=(+);
+  $disp=;
+  $sign=(+);
 }
 else{
-   $disp=none;
-   $sign=(-);
+  $disp=none;
+  $sign=(-);
 }
 
 print font size=\-1\a href=\javascript://\onclick=\toggleLayer.
- ('buildStatus');\, id=\buildStatus_\$sign Build 
Status/a/font\n;
+('buildStatus');\, id=\buildStatus_\$sign Build Status/a/font\n;
 print div id=\buildStatus\ style=\display: $disp;\ 
class=\hideable\\n;
 print h3uBuild Status /u/h3/p;
 print font color=red{$today_row['buildstatus']}/fontbr\n;
@@ -160,12 +160,12 @@
strcmp($removed_tests, )==0 
strcmp($newly_passing_tests, )==0 
strcmp($newly_failing_tests, )==0)){
-   $disp=none;
-   $sign=(-);
+  $disp=none;
+  $sign=(-);
 }
 else{
-   $disp=;
-   $sign=(+);
+  $disp=;
+  $sign=(+);
 }
 print font size=\-1\a 
href=\javascript://\onclick=\toggleLayer('testSuite');\, 
id=\testSuite_\$sign Test Suite Changes/a/font\n;
 print div id=\testSuite\ style=\display: $disp;\ class=\hideable\\n;
@@ -190,32 +190,32 @@
 $delta_unexpfail = 
$today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
 
 if($delta_exppass==0  $delta_expfail==0  $delta_unexpfail==0){
-   $disp=none;
+  $disp=none;
 $sign=(-);
 }
 else{
-   $disp=;
+  $disp=;
 $sign=(+);
 }
 
 
 if(isset($today_row['teststats_exppass'])){
-   $exp_pass=$today_row['teststats_exppass'];
+  $exp_pass=$today_row['teststats_exppass'];
 }
 else{
-   $exp_pass=0;
+  $exp_pass=0;
 }
 if(isset($today_row['teststats_unexpfail'])){
-   $unexp_fail=$today_row['teststats_unexpfail'];
+  $unexp_fail=$today_row['teststats_unexpfail'];
 }
 else{
-   $unexp_fail=0;
+  $unexp_fail=0;
 }
 if(isset($today_row['teststats_expfail'])){
-   $exp_fail=$today_row['teststats_expfail'];  
+  $exp_fail=$today_row['teststats_expfail'];  
 }
 else{
-   $exp_fail=0;
+  $exp_fail=0;
 
 }
 
@@ -257,12 +257,12 @@
strpos($today_row['warnings_removed'], none)===FALSE) 
(strcmp($today_row['warnings_added'], )!=0 
strcmp($today_row['warnings_removed'], )!=0)){
-   $disp= ;
-   $sign=(+);
+  $disp= ;
+  $sign=(+);
 }
 else{
-   $disp=none;
-   $sign=(-);
+  $disp=none;
+  $sign=(-);
 }
 print font size=\-1\a 
href=\javascript://\onclick=\toggleLayer('warningsChanges');\, 
id=\warningsChanges_\$sign Warnings Information/a/font\n;
 print div id=\warningsChanges\ style=\display: $disp;\ 
class=\hideable\\n;
@@ -311,99 +311,99 @@
 print \t/tr\n;
 
 if( isset($yesterday_row) ){
-   print \ttr\n;
-   print \t\ttdPrevious nightly test 
({$yesterday_row['added']})/td\n;
-   print \t\ttd{$yesterday_row['getcvstime_cpu']}/td\n;
-   print \t\ttd{$yesterday_row['getcvstime_wall']}/td\n;
-   print \t\ttd{$yesterday_row['configuretime_cpu']}/td\n;
-   print \t\ttd{$yesterday_row['configuretime_wall']}/td\n;
-   print \t\ttd{$yesterday_row['buildtime_cpu']}/td\n;
-   print \t\ttd{$yesterday_row['buildtime_wall']}/td\n;
-   print \t\ttd{$yesterday_row['dejagnutime_cpu']}/td\n;
-   

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

2006-08-03 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen/SelectionDAG:

ScheduleDAGSimple.cpp updated: 1.16 - 1.17
---
Log message:

Copy the liveins for the first block.  PR859: http://llvm.org/PR859 


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

 ScheduleDAGSimple.cpp |   14 ++
 1 files changed, 14 insertions(+)


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.16 
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.17
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.16Wed Aug  2 
07:30:23 2006
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp Thu Aug  3 15:51:06 2006
@@ -14,9 +14,11 @@
 
//===--===//
 
 #define DEBUG_TYPE sched
+#include llvm/CodeGen/MachineFunction.h
 #include llvm/CodeGen/ScheduleDAG.h
 #include llvm/CodeGen/SchedulerRegistry.h
 #include llvm/CodeGen/SelectionDAG.h
+#include llvm/CodeGen/SSARegMap.h
 #include llvm/Target/TargetData.h
 #include llvm/Target/TargetMachine.h
 #include llvm/Target/TargetInstrInfo.h
@@ -669,6 +671,18 @@
 /// EmitAll - Emit all nodes in schedule sorted order.
 ///
 void ScheduleDAGSimple::EmitAll() {
+  // If this is the first basic block in the function, and if it has live ins
+  // that need to be copied into vregs, emit the copies into the top of the
+  // block before emitting the code for the block.
+  MachineFunction MF = DAG.getMachineFunction();
+  if (MF.front() == BB  MF.livein_begin() != MF.livein_end()) {
+for (MachineFunction::livein_iterator LI = MF.livein_begin(),
+ E = MF.livein_end(); LI != E; ++LI)
+  if (LI-second)
+MRI-copyRegToReg(*MF.begin(), MF.begin()-end(), LI-second,
+  LI-first, RegMap-getRegClass(LI-second));
+  }
+  
   std::mapSDNode*, unsigned VRBaseMap;
   
   // For each node in the ordering



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


[llvm-commits] CVS: llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll

2006-08-03 Thread Jim Laskey


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

2006-07-03-schedulers.ll added (r1.1)
---
Log message:

Make all the schedulers continue to work.


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

 2006-07-03-schedulers.ll |   40 
 1 files changed, 40 insertions(+)


Index: llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll
diff -c /dev/null 
llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll:1.1
*** /dev/null   Thu Aug  3 15:49:39 2006
--- llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll   Thu Aug 
 3 15:49:29 2006
***
*** 0 
--- 1,40 
+ ; RUN: llvm-as -f %s -o - | llc -sched=none
+ ; RUN: llvm-as -f %s -o - | llc -sched=default
+ ; RUN: llvm-as -f %s -o - | llc -sched=simple
+ ; RUN: llvm-as -f %s -o - | llc -sched=simple-noitin
+ ; RUN: llvm-as -f %s -o - | llc -sched=list-td
+ ; RUN: llvm-as -f %s -o - | llc -sched=list-tdrr
+ ; RUN: llvm-as -f %s -o - | llc -sched=list-burr
+ ; PR859
+ 
+ implementation
+ declare int printf(sbyte*, int, float)
+ 
+ 
+ int testissue(int %i, float %x, float %y)
+ begin
+   br label %bb1
+ bb1:
+   %x1 = mul float %x, %y  ;; x1
+   %y1 = mul float %y, 0.75;; y1
+   %z1 = add float %x1, %y1;; z1 = x1 + y1
+   
+   %x2 = mul float %x, 0.5 ;; x2
+   %y2 = mul float %y, 0.9 ;; y2
+   %z2 = add float %x2, %y2;; z2 = x2 + y2
+   
+   %z3 = add float %z1, %z2;; z3 = z1 + z2
+   
+   %i1 = shl int   %i, ubyte 3 ;; i1
+   %j1 = add int   %i, 7   ;; j1
+   %m1 = add int   %i1, %j1;; k1 = i1 + j1
+ ;;%m1 = div int   %k1, 99 ;; m1 = k1 / 99
+   
+   %b  = setle int %m1, 6  ;; (m1 = 6)?
+   br bool %b, label %bb1, label %bb2
+ 
+ bb2:
+   %Msg = cast ulong 0 to sbyte *
+   call int %printf(sbyte* %Msg, int %m1, float %z3)
+   ret int 0
+ end



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


[llvm-commits] CVS: llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll

2006-08-03 Thread Jim Laskey


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

2006-07-03-schedulers.ll updated: 1.1 - 1.2
---
Log message:

Applying for all.


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

 2006-07-03-schedulers.ll |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)


Index: llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll
diff -u llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll:1.1 
llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll:1.2
--- llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll:1.1   Thu Aug 
 3 15:49:29 2006
+++ llvm/test/Regression/CodeGen/Generic/2006-07-03-schedulers.ll   Thu Aug 
 3 15:56:35 2006
@@ -1,9 +1,9 @@
-; RUN: llvm-as -f %s -o - | llc -sched=none
-; RUN: llvm-as -f %s -o - | llc -sched=default
-; RUN: llvm-as -f %s -o - | llc -sched=simple
-; RUN: llvm-as -f %s -o - | llc -sched=simple-noitin
-; RUN: llvm-as -f %s -o - | llc -sched=list-td
-; RUN: llvm-as -f %s -o - | llc -sched=list-tdrr
+; RUN: llvm-as -f %s -o - | llc -sched=none 
+; RUN: llvm-as -f %s -o - | llc -sched=default 
+; RUN: llvm-as -f %s -o - | llc -sched=simple 
+; RUN: llvm-as -f %s -o - | llc -sched=simple-noitin 
+; RUN: llvm-as -f %s -o - | llc -sched=list-td 
+; RUN: llvm-as -f %s -o - | llc -sched=list-tdrr 
 ; RUN: llvm-as -f %s -o - | llc -sched=list-burr
 ; PR859
 



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


[llvm-commits] CVS: nightlytest-serverside/fulltest.php

2006-08-03 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

fulltest.php updated: 1.10 - 1.11
---
Log message:

Since we only print out the important eye catching file size changes in the 
brief test page, i made it so all file sizes and their changes are printed out 
in the detailed page. 



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

 fulltest.php |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: nightlytest-serverside/fulltest.php
diff -u nightlytest-serverside/fulltest.php:1.10 
nightlytest-serverside/fulltest.php:1.11
--- nightlytest-serverside/fulltest.php:1.10Thu Aug  3 12:05:39 2006
+++ nightlytest-serverside/fulltest.php Thu Aug  3 16:07:24 2006
@@ -505,7 +505,7 @@
 print \t/tr\n;
 
 foreach (array_keys($all_data) as $d){
-  if($all_data[$d][1]!=0 || $all_data[$d][3]!=0){
+  //if($all_data[$d][1]!=0 || $all_data[$d][3]!=0){
 print \ttr\n;
 if(strcmp($d, Total Sum)!=0){
   print \t\ttdinput type=checkbox name=files[] multiple=\multiple\ 
value=\$d\\n;
@@ -537,7 +537,7 @@
 print \t\ttd $color{$all_data[$d][4]}/td\n;
 
 print \t/tr\n;
-  }
+//}
 }
 
 print /table\n;



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


[llvm-commits] CVS: llvm/test/Regression/Transforms/SimplifyCFG/2006-08-03-Crash.ll

2006-08-03 Thread Chris Lattner


Changes in directory llvm/test/Regression/Transforms/SimplifyCFG:

2006-08-03-Crash.ll added (r1.1)
---
Log message:

new testcase for pr867: http://llvm.org/PR867 


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

 2006-08-03-Crash.ll |  103 
 1 files changed, 103 insertions(+)


Index: llvm/test/Regression/Transforms/SimplifyCFG/2006-08-03-Crash.ll
diff -c /dev/null 
llvm/test/Regression/Transforms/SimplifyCFG/2006-08-03-Crash.ll:1.1
*** /dev/null   Thu Aug  3 16:39:51 2006
--- llvm/test/Regression/Transforms/SimplifyCFG/2006-08-03-Crash.ll Thu Aug 
 3 16:39:41 2006
***
*** 0 
--- 1,103 
+ ; RUN: llvm-as  %s | opt -load-vn -gcse -simplifycfg -disable-output
+ ; PR867
+ 
+ target endian = big
+ target pointersize = 32
+ target triple = powerpc-apple-darwin8
+   %struct.CUMULATIVE_ARGS = type { int, int, int, int, int, int, int, 
int, int, int, int, int }
+   %struct.eh_status = type opaque
+   %struct.emit_status = type { int, int, %struct.rtx_def*, 
%struct.rtx_def*, %struct.sequence_stack*, int, %struct.location_t, int, 
ubyte*, %struct.rtx_def** }
+   %struct.expr_status = type { int, int, int, %struct.rtx_def*, 
%struct.rtx_def*, %struct.rtx_def* }
+   %struct.function = type { %struct.eh_status*, %struct.expr_status*, 
%struct.emit_status*, %struct.varasm_status*, %struct.tree_node*, 
%struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.function*, 
int, int, int, int, %struct.rtx_def*, %struct.CUMULATIVE_ARGS, 
%struct.rtx_def*, %struct.rtx_def*, %struct.initial_value_struct*, 
%struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, 
%struct.rtx_def*, %struct.rtx_def*, ubyte, int, long, %struct.tree_node*, 
%struct.tree_node*, %struct.rtx_def*, %struct.varray_head_tag*, 
%struct.temp_slot*, int, %struct.var_refs_queue*, int, int, %struct.rtvec_def*, 
%struct.tree_node*, int, int, int, %struct.machine_function*, uint, uint, 
ubyte, ubyte, %struct.language_function*, %struct.rtx_def*, uint, int, int, 
int, %struct.location_t, %struct.varray_head_tag*, %struct.tree_node*, ubyte, 
ubyte, ubyte }
+   %struct.initial_value_struct = type opaque
+   %struct.lang_decl = type opaque
+   %struct.lang_type = type opaque
+   %struct.language_function = type opaque
+   %struct.location_t = type { sbyte*, int }
+   %struct.machine_function = type { int, uint, sbyte*, int, int }
+   %struct.rtunion = type { int }
+   %struct.rtvec_def = type { int, [1 x %struct.rtx_def*] }
+   %struct.rtx_def = type { ushort, ubyte, ubyte, %struct.u }
+   %struct.sequence_stack = type { %struct.rtx_def*, %struct.rtx_def*, 
%struct.sequence_stack* }
+   %struct.temp_slot = type opaque
+   %struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, 
%union.tree_ann_d*, ubyte, ubyte, ubyte, ubyte, ubyte }
+   %struct.tree_decl = type { %struct.tree_common, %struct.location_t, 
uint, %struct.tree_node*, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, 
ubyte, uint, %struct.tree_decl_u1, %struct.tree_node*, %struct.tree_node*, 
%struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, 
%struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, 
%struct.rtx_def*, %struct.tree_decl_u2, %struct.tree_node*, %struct.tree_node*, 
long, %struct.lang_decl* }
+   %struct.tree_decl_u1 = type { long }
+   %struct.tree_decl_u2 = type { %struct.function* }
+   %struct.tree_node = type { %struct.tree_decl }
+   %struct.tree_type = type { %struct.tree_common, %struct.tree_node*, 
%struct.tree_node*, %struct.tree_node*, %struct.tree_node*, uint, ushort, 
ubyte, ubyte, uint, %struct.tree_node*, %struct.tree_node*, %struct.rtunion, 
%struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, 
%struct.tree_node*, %struct.tree_node*, %struct.tree_node*, long, 
%struct.lang_type* }
+   %struct.u = type { [1 x long] }
+   %struct.var_refs_queue = type { %struct.rtx_def*, uint, int, 
%struct.var_refs_queue* }
+   %struct.varasm_status = type opaque
+   %struct.varray_head_tag = type { uint, uint, uint, sbyte*, %struct.u }
+   %union.tree_ann_d = type opaque
+ %mode_class = external global [35 x ubyte]; [35 x ubyte]* 
[#uses=3]
+ 
+ implementation   ; Functions:
+ 
+ void %fold_builtin_classify() {
+ entry:
+   %tmp63 = load int* null ; int [#uses=1]
+   switch int %tmp63, label %bb276 [
+int 414, label %bb145
+int 417, label %bb
+   ]
+ 
+ bb:   ; preds = %entry
+   ret void
+ 
+ bb145:; preds = %entry
+   %tmp146 = load %struct.tree_node** null ; %struct.tree_node* 
[#uses=1]
+   %tmp148 = getelementptr %struct.tree_node* %tmp146, int 0, uint 0, uint 
0, uint 1   ; %struct.tree_node** [#uses=1]
+   %tmp149 = load %struct.tree_node** %tmp148  ; 

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

2006-08-03 Thread Chris Lattner


Changes in directory llvm/lib/Transforms/Utils:

SimplifyCFG.cpp updated: 1.98 - 1.99
---
Log message:

Fix PR867: http://llvm.org/PR867  (and maybe 868) and testcsae:
Transforms/SimplifyCFG/2006-08-03-Crash.ll



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

 SimplifyCFG.cpp |   31 +--
 1 files changed, 25 insertions(+), 6 deletions(-)


Index: llvm/lib/Transforms/Utils/SimplifyCFG.cpp
diff -u llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.98 
llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.99
--- llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.98  Mon Jun 12 15:18:01 2006
+++ llvm/lib/Transforms/Utils/SimplifyCFG.cpp   Thu Aug  3 16:40:24 2006
@@ -459,12 +459,31 @@
 /// has no side effects, nuke it.  If it uses any instructions that become dead
 /// because the instruction is now gone, nuke them too.
 static void ErasePossiblyDeadInstructionTree(Instruction *I) {
-  if (isInstructionTriviallyDead(I)) {
-std::vectorValue* Operands(I-op_begin(), I-op_end());
-I-getParent()-getInstList().erase(I);
-for (unsigned i = 0, e = Operands.size(); i != e; ++i)
-  if (Instruction *OpI = dyn_castInstruction(Operands[i]))
-ErasePossiblyDeadInstructionTree(OpI);
+  if (!isInstructionTriviallyDead(I)) return;
+  
+  std::vectorInstruction* InstrsToInspect;
+  InstrsToInspect.push_back(I);
+
+  while (!InstrsToInspect.empty()) {
+I = InstrsToInspect.back();
+InstrsToInspect.pop_back();
+
+if (!isInstructionTriviallyDead(I)) continue;
+
+// If I is in the work list multiple times, remove previous instances.
+for (unsigned i = 0, e = InstrsToInspect.size(); i != e; ++i)
+  if (InstrsToInspect[i] == I) {
+InstrsToInspect.erase(InstrsToInspect.begin()+i);
+--i, --e;
+  }
+
+// Add operands of dead instruction to worklist.
+for (unsigned i = 0, e = I-getNumOperands(); i != e; ++i)
+  if (Instruction *OpI = dyn_castInstruction(I-getOperand(i)))
+InstrsToInspect.push_back(OpI);
+
+// Remove dead instruction.
+I-eraseFromParent();
   }
 }
 



___
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/llvm-config.in.in

2006-08-03 Thread Reid Spencer


Changes in directory llvm/tools/llvm-config:

llvm-config.in.in updated: 1.19 - 1.20
---
Log message:

Fix a typo in the name of expand_dependencies. 
Make the dependency line pattern match handle white space better.


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

 llvm-config.in.in |8 
 1 files changed, 4 insertions(+), 4 deletions(-)


Index: llvm/tools/llvm-config/llvm-config.in.in
diff -u llvm/tools/llvm-config/llvm-config.in.in:1.19 
llvm/tools/llvm-config/llvm-config.in.in:1.20
--- llvm/tools/llvm-config/llvm-config.in.in:1.19   Thu Jul 27 18:00:30 2006
+++ llvm/tools/llvm-config/llvm-config.in.inThu Aug  3 16:45:35 2006
@@ -84,7 +84,7 @@
 sub usage;
 sub fix_library_names (@);
 sub fix_library_files (@);
-sub expand_dependecies (@);
+sub expand_dependencies (@);
 sub name_map_entries;
 
 # Parse our command-line arguments.
@@ -145,7 +145,7 @@
 
 # Handle any arguments which require building our dependency graph.
 if ($want_libs || $want_libnames || $want_libfiles) {
-my @libs = expand_dependecies(@components);
+my @libs = expand_dependencies(@components);
 print join(' ', fix_library_names(@libs)), \n if ($want_libs);
 print join(' ',  @libs), \n if ($want_libnames);
 print join(' ', fix_library_files(@libs)), \n if ($want_libfiles);
@@ -257,7 +257,7 @@
 
 # Given a list of human-friendly component names, translate them into a
 # complete set of linker arguments.
-sub expand_dependecies (@) {
+sub expand_dependencies (@) {
 my @libs = @_;
 load_dependencies;
 my @required_sets = find_all_required_sets(expand_names(@libs));
@@ -275,7 +275,7 @@
 $DEPENDENCIES_LOADED = 1;
 while (DATA) {
 # Parse our line.
-my ($libs, $deps) = /^(^[^:]+): ?(.*)$/;
+my ($libs, $deps) = /^\s*([^:]+):\s+(.*)\s*$/;
 die Malformed dependency data unless defined $deps;
 my @libs = split(' ', $libs);
 my @deps = split(' ', $deps);



___
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 find-cycles.pl

2006-08-03 Thread Reid Spencer


Changes in directory llvm/tools/llvm-config:

Makefile updated: 1.13 - 1.14
find-cycles.pl updated: 1.4 - 1.5
---
Log message:

For PR845: http://llvm.org/PR845 :
Enable the makefile check on the result of find-cycles.pl. LLVM is now
cycle free and we intend to keep it that way. This patch will fail the
build if cycles are found.


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

 Makefile   |2 +-
 find-cycles.pl |4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)


Index: llvm/tools/llvm-config/Makefile
diff -u llvm/tools/llvm-config/Makefile:1.13 
llvm/tools/llvm-config/Makefile:1.14
--- llvm/tools/llvm-config/Makefile:1.13Thu Jul 27 18:00:30 2006
+++ llvm/tools/llvm-config/Makefile Thu Aug  3 16:46:42 2006
@@ -39,7 +39,7 @@
 # don't have to process them at runtime.
 $(FinalLibDeps): find-cycles.pl $(LibDeps)
$(Echo) Finding cyclic dependencies between LLVM libraries.
-   -$(Verb) $(PERL) $  $(LibDeps)  $@
+   $(Verb) $(PERL) $  $(LibDeps)  $@
 
 # Rerun our configure substitutions as needed.
 ConfigInIn = $(PROJ_SRC_DIR)/llvm-config.in.in


Index: llvm/tools/llvm-config/find-cycles.pl
diff -u llvm/tools/llvm-config/find-cycles.pl:1.4 
llvm/tools/llvm-config/find-cycles.pl:1.5
--- llvm/tools/llvm-config/find-cycles.pl:1.4   Wed Jul 26 16:14:04 2006
+++ llvm/tools/llvm-config/find-cycles.pl   Thu Aug  3 16:46:42 2006
@@ -71,9 +71,7 @@
 }
 print sort @output;
 
-### FIXME: reenable this after 1.8.
-#exit $cycles_found;
-exit 0;
+exit $cycles_found;
 
 #==
 #  Depedency Cycle Support



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


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

2006-08-03 Thread Chris Lattner


Changes in directory llvm/docs:

GettingStarted.html updated: 1.140 - 1.141
---
Log message:

updated CVS server location


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

 GettingStarted.html |   10 +-
 1 files changed, 5 insertions(+), 5 deletions(-)


Index: llvm/docs/GettingStarted.html
diff -u llvm/docs/GettingStarted.html:1.140 llvm/docs/GettingStarted.html:1.141
--- llvm/docs/GettingStarted.html:1.140 Mon Jul 31 16:37:55 2006
+++ llvm/docs/GettingStarted.html   Thu Aug  3 17:14:43 2006
@@ -666,9 +666,9 @@
 
 ul
 littcd iwhere-you-want-llvm-to-live/i/tt
-  littcvs -d :pserver:[EMAIL PROTECTED]:/var/cvs/llvm login/tt
+  littcvs -d :pserver:[EMAIL PROTECTED]:/var/cvs/llvm login/tt
   liHit the return key when prompted for the password.
-  littcvs -z3 -d :pserver:[EMAIL PROTECTED]:/var/cvs/llvm co
+  littcvs -z3 -d :pserver:[EMAIL PROTECTED]:/var/cvs/llvm co
   llvm/tt
 /ul
 
@@ -695,7 +695,7 @@
 you get it from the CVS repository:/p
 pre
   cd llvm/projects
-  cvs -z3 -d :pserver:[EMAIL PROTECTED]:/var/cvs/llvm co llvm-test
+  cvs -z3 -d :pserver:[EMAIL PROTECTED]:/var/cvs/llvm co llvm-test
 /pre
 pBy placing it in the ttllvm/projects/tt, it will be automatically
 configured by the LLVM configure script as well as automatically updated when
@@ -704,7 +704,7 @@
 pIf you would like to get the GCC 3.4 front end source code, you can also 
get it from the CVS repository:/p
 
 pre
-  cvs -z3 -d :pserver:[EMAIL PROTECTED]:/var/cvs/llvm co llvm-gcc
+  cvs -z3 -d :pserver:[EMAIL PROTECTED]:/var/cvs/llvm co llvm-gcc
 /pre
 
 pPlease note that you must follow a href=CFEBuildInstrs.htmlthese 
@@ -1595,7 +1595,7 @@
   a href=mailto:[EMAIL PROTECTED]Chris Lattner/abr
   a href=http://llvm.x10sys.com/rspencer/;Reid Spencer/abr
   a href=http://llvm.org;The LLVM Compiler Infrastructure/abr
-  Last modified: $Date: 2006/07/31 21:37:55 $
+  Last modified: $Date: 2006/08/03 22:14:43 $
 /address
 /body
 /html



___
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

2006-08-03 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMISelDAGToDAG.cpp updated: 1.20 - 1.21
---
Log message:

Bug fix: always generate a RET_FLAG in LowerRET
fixes ret_null.ll and call.ll


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

 ARMISelDAGToDAG.cpp |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.20 
llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.21
--- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.20Thu Aug  3 12:02:20 2006
+++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Thu Aug  3 17:50:11 2006
@@ -170,7 +170,7 @@
 abort();
   case 1: {
 SDOperand LR = DAG.getRegister(ARM::R14, MVT::i32);
-return DAG.getNode(ISD::BRIND, MVT::Other, Chain, LR);
+return DAG.getNode(ARMISD::RET_FLAG, MVT::Other, Chain);
   }
   case 3:
 Copy = DAG.getCopyToReg(Chain, ARM::R0, Op.getOperand(1), SDOperand());



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