[llvm-commits] [llvm] r46962 - /llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

2008-02-11 Thread Dan Gohman
Author: djg
Date: Mon Feb 11 12:58:42 2008
New Revision: 46962

URL: http://llvm.org/viewvc/llvm-project?rev=46962&view=rev
Log:
>From Chris' review: use cast instead of dyn_cast with an assert.

Modified:
llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=46962&r1=46961&r2=46962&view=diff

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Mon Feb 11 12:58:42 2008
@@ -1321,8 +1321,7 @@
   MVT::ValueType PtrVT = TLI.getPointerTy();
   SDOperand StackPtr = DAG.CreateStackTemporary(VT);
 
-  FrameIndexSDNode *StackPtrFI = dyn_cast(StackPtr.Val);
-  assert(StackPtrFI);
+  FrameIndexSDNode *StackPtrFI = cast(StackPtr.Val);
   int SPFI = StackPtrFI->getIndex();
 
   // Store the vector.
@@ -4759,8 +4758,7 @@
   // Create the stack frame object.
   SDOperand FIPtr = DAG.CreateStackTemporary(SlotVT);
 
-  FrameIndexSDNode *StackPtrFI = dyn_cast(FIPtr);
-  assert(StackPtrFI);
+  FrameIndexSDNode *StackPtrFI = cast(FIPtr);
   int SPFI = StackPtrFI->getIndex();
 
   unsigned SrcSize = MVT::getSizeInBits(SrcOp.getValueType());
@@ -4794,8 +4792,7 @@
   // then load the whole vector back out.
   SDOperand StackPtr = DAG.CreateStackTemporary(Node->getValueType(0));
 
-  FrameIndexSDNode *StackPtrFI = dyn_cast(StackPtr);
-  assert(StackPtrFI);
+  FrameIndexSDNode *StackPtrFI = cast(StackPtr);
   int SPFI = StackPtrFI->getIndex();
 
   SDOperand Ch = DAG.getStore(DAG.getEntryNode(), Node->getOperand(0), 
StackPtr,
@@ -6773,8 +6770,7 @@
   // Lower to a store/load so that it can be split.
   // FIXME: this could be improved probably.
   SDOperand Ptr = DAG.CreateStackTemporary(InOp.getValueType());
-  FrameIndexSDNode *FI = dyn_cast(Ptr.Val);
-  assert(FI && "Expecting CreateStackTemporary to return a frame 
index.\n");
+  FrameIndexSDNode *FI = cast(Ptr.Val);
 
   SDOperand St = DAG.getStore(DAG.getEntryNode(),
   InOp, Ptr,


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


[llvm-commits] [llvm] r46960 - /llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h

2008-02-11 Thread Dan Gohman
Author: djg
Date: Mon Feb 11 12:56:50 2008
New Revision: 46960

URL: http://llvm.org/viewvc/llvm-project?rev=46960&view=rev
Log:
>From Chris' review: change MemOperandSDNode's constructor to pass its
argument by reference, rather than by value. 

Modified:
llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h

Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h?rev=46960&r1=46959&r2=46960&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h (original)
+++ llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Mon Feb 11 12:56:50 2008
@@ -1425,7 +1425,7 @@
 protected:
   friend class SelectionDAG;
   /// Create a MemOperand node
-  explicit MemOperandSDNode(MemOperand mo)
+  explicit MemOperandSDNode(const MemOperand &mo)
 : SDNode(ISD::MEMOPERAND, getSDVTList(MVT::Other)), MO(mo) {}
 
 public:


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


Re: [llvm-commits] [llvm-gcc-4.2] r46966 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386.h config/rs6000/rs6000.h llvm-abi.h

2008-02-11 Thread Dale Johannesen

On Feb 11, 2008, at 12:10 PM, Duncan Sands wrote:

> Hi Dale,
>
>> Treat struct { long long: 29; }; as int sized and
>> aligned, rather than long long.  ABI issue.
>
> if you look at the DECL_SIZE of the bitfield, rather than
> the type size, I think it gives you 29.  If so, DECL_SIZE
> should simplify things for you.  In fact as far as I can
> see you should never use the type size for a record field.
> For example the struct conversion stuff uses DECL_SIZE everywhere
> (except at one point in the field indexing - I have a patch to fix
> that which I'll apply at some point).  Not using the type size
> makes all these "it's a big type shoved in a small place" problems
> magically go away.

I'm not sure what your suggestion is exactly; the issue isn't the  
size, it is
that the code in HandleArgument for general RECORD_TYPEs is looking
at getDeclaredType, not the type in the field.  (So what this patch  
does is
use the INTEGER_REGS case instead.)  The wide use of getDeclaredType
and the comments describing it make me think it would be unsafe in  
general
to change that.  It would certainly be more elegant if it works, though.

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


[llvm-commits] [llvm] r46967 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2008-02-11 Thread Duncan Sands
Author: baldrick
Date: Mon Feb 11 14:58:28 2008
New Revision: 46967

URL: http://llvm.org/viewvc/llvm-project?rev=46967&view=rev
Log:
Generalize the handling of call and return arguments,
in preparation for apint support.  These changes are
intended to have no functional effect.

Modified:
llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=46967&r1=46966&r2=46967&view=diff

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Mon Feb 11 
14:58:28 2008
@@ -620,14 +620,19 @@
 } // end namespace llvm
 
 
-/// getCopyFromParts - Create a value that contains the
-/// specified legal parts combined into the value they represent.
+/// getCopyFromParts - Create a value that contains the specified legal parts
+/// combined into the value they represent.  If the parts combine to a type
+/// larger then ValueVT then AssertOp can be used to specify whether the extra
+/// bits are known to be zero (ISD::AssertZext) or sign extended from ValueVT
+/// (ISD::AssertSext).  Likewise TruncExact is used for floating point types to
+/// indicate that the extra bits can be discarded without losing precision.
 static SDOperand getCopyFromParts(SelectionDAG &DAG,
   const SDOperand *Parts,
   unsigned NumParts,
   MVT::ValueType PartVT,
   MVT::ValueType ValueVT,
-  ISD::NodeType AssertOp = ISD::DELETED_NODE) {
+  ISD::NodeType AssertOp = ISD::DELETED_NODE,
+  bool TruncExact = false) {
   if (!MVT::isVector(ValueVT) || NumParts == 1) {
 SDOperand Val = Parts[0];
 
@@ -675,7 +680,8 @@
 }
   
 if (MVT::isFloatingPoint(PartVT) && MVT::isFloatingPoint(ValueVT))
-  return DAG.getNode(ISD::FP_ROUND, ValueVT, Val, 
DAG.getIntPtrConstant(0));
+  return DAG.getNode(ISD::FP_ROUND, ValueVT, Val,
+ DAG.getIntPtrConstant(TruncExact));
 
 if (MVT::getSizeInBits(PartVT) == MVT::getSizeInBits(ValueVT))
   return DAG.getNode(ISD::BIT_CONVERT, ValueVT, Val);
@@ -723,13 +729,15 @@
  ValueVT, &Ops[0], NumIntermediates);
 }
 
-/// getCopyToParts - Create a series of nodes that contain the
-/// specified value split into legal parts.
+/// getCopyToParts - Create a series of nodes that contain the specified value
+/// split into legal parts.  If the parts contain more bits than Val, then, for
+/// integers, ExtendKind can be used to specify how to generate the extra bits.
 static void getCopyToParts(SelectionDAG &DAG,
SDOperand Val,
SDOperand *Parts,
unsigned NumParts,
-   MVT::ValueType PartVT) {
+   MVT::ValueType PartVT,
+   ISD::NodeType ExtendKind = ISD::ANY_EXTEND) {
   TargetLowering &TLI = DAG.getTargetLoweringInfo();
   MVT::ValueType PtrVT = TLI.getPointerTy();
   MVT::ValueType ValueVT = Val.getValueType();
@@ -763,7 +771,7 @@
 if (PartVT < ValueVT)
   Val = DAG.getNode(ISD::TRUNCATE, PartVT, Val);
 else
-  Val = DAG.getNode(ISD::ANY_EXTEND, PartVT, Val);
+  Val = DAG.getNode(ExtendKind, PartVT, Val);
   } else if (MVT::isFloatingPoint(PartVT) &&
  MVT::isFloatingPoint(ValueVT)) {
 Val = DAG.getNode(ISD::FP_EXTEND, PartVT, Val);
@@ -919,38 +927,32 @@
   NewValues.push_back(getRoot());
   for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i) {
 SDOperand RetOp = getValue(I.getOperand(i));
-
-// If this is an integer return value, we need to promote it ourselves to
-// the full width of a register, since getCopyToParts and Legalize will use
-// ANY_EXTEND rather than sign/zero.
+MVT::ValueType VT = RetOp.getValueType();
+
 // FIXME: C calling convention requires the return type to be promoted to
 // at least 32-bit. But this is not necessary for non-C calling 
conventions.
-if (MVT::isInteger(RetOp.getValueType()) && 
-RetOp.getValueType() < MVT::i64) {
-  MVT::ValueType TmpVT;
-  if (TLI.getTypeAction(MVT::i32) == TargetLowering::Promote)
-TmpVT = TLI.getTypeToTransformTo(MVT::i32);
-  else
-TmpVT = MVT::i32;
-  const Function *F = I.getParent()->getParent();
-  ISD::NodeType ExtendKind = ISD::ANY_EXTEND;
-  if (F->paramHasAttr(0, ParamAttr::SExt))
-ExtendKind = ISD::SIGN_EXTEND;
-  if (F->paramHasAttr(0, ParamAttr::ZExt))
-ExtendKind = ISD::ZERO_EXTEND;
-  RetOp = DAG.getNode(ExtendKind,

[llvm-commits] [llvm] r46968 - /llvm/trunk/docs/ReleaseNotes.html

2008-02-11 Thread Scott Michel
Author: pingbak
Date: Mon Feb 11 15:05:47 2008
New Revision: 46968

URL: http://llvm.org/viewvc/llvm-project?rev=46968&view=rev
Log:
Added blurb for CellSPU progress

Modified:
llvm/trunk/docs/ReleaseNotes.html

Modified: llvm/trunk/docs/ReleaseNotes.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/ReleaseNotes.html?rev=46968&r1=46967&r2=46968&view=diff

==
--- llvm/trunk/docs/ReleaseNotes.html (original)
+++ llvm/trunk/docs/ReleaseNotes.html Mon Feb 11 15:05:47 2008
@@ -124,8 +124,13 @@
 LLVM 2.2 includes several major new capabilities:
 
 
-Scott Michel contributed an SPU backend, which generates code for the
-vector coprocessors on the Cell processor.  (Status?)
+A research team led by Scott Michel in the Computer Systems Research
+Department at The Aerospace Corporation contributed the CellSPU backend, which
+generates code for the vector coprocessors on the Sony/Toshiba/IBM Cell BE
+processor. llvm-gcc 4.2 supports CellSPU as a 'configure' target and progress
+is being made so that libgcc.a compiles cleanly. Notable pieces still in
+development include full 64-bit integer and full double precision floating
+point support.
 
 Anton and Duncan significantly improved llvm-gcc 4.2 support for the GCC 
Ada
 (GNAT) and Fortran (gfortran) front-ends.  These front-ends should still be 
considered


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


Re: [llvm-commits] [llvm-gcc-4.2] r46966 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386.h config/rs6000/rs6000.h llvm-abi.h

2008-02-11 Thread Duncan Sands
Hi Dale,

> Treat struct { long long: 29; }; as int sized and
> aligned, rather than long long.  ABI issue.

if you look at the DECL_SIZE of the bitfield, rather than
the type size, I think it gives you 29.  If so, DECL_SIZE
should simplify things for you.  In fact as far as I can
see you should never use the type size for a record field.
For example the struct conversion stuff uses DECL_SIZE everywhere
(except at one point in the field indexing - I have a patch to fix
that which I'll apply at some point).  Not using the type size
makes all these "it's a big type shoved in a small place" problems
magically go away.

Ciao,

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


[llvm-commits] [llvm] r46961 - /llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp

2008-02-11 Thread Dan Gohman
Author: djg
Date: Mon Feb 11 12:57:43 2008
New Revision: 46961

URL: http://llvm.org/viewvc/llvm-project?rev=46961&view=rev
Log:
>From Chris' review: fix 80 column violations

Modified:
llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp

Modified: llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp?rev=46961&r1=46960&r2=46961&view=diff

==
--- llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp (original)
+++ llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp Mon Feb 11 12:57:43 2008
@@ -18,11 +18,16 @@
 namespace llvm {
   static ManagedStatic PSVs;
 
-  const PseudoSourceValue *PseudoSourceValue::getFixedStack() { return 
&(*PSVs)[0]; }
-  const PseudoSourceValue *PseudoSourceValue::getStack() { return &(*PSVs)[1]; 
}
-  const PseudoSourceValue *PseudoSourceValue::getGOT() { return &(*PSVs)[2]; }
-  const PseudoSourceValue *PseudoSourceValue::getConstantPool() { return 
&(*PSVs)[3]; }
-  const PseudoSourceValue *PseudoSourceValue::getJumpTable() { return 
&(*PSVs)[4]; }
+  const PseudoSourceValue *PseudoSourceValue::getFixedStack()
+  { return &(*PSVs)[0]; }
+  const PseudoSourceValue *PseudoSourceValue::getStack()
+  { return &(*PSVs)[1]; }
+  const PseudoSourceValue *PseudoSourceValue::getGOT()
+  { return &(*PSVs)[2]; }
+  const PseudoSourceValue *PseudoSourceValue::getConstantPool()
+  { return &(*PSVs)[3]; }
+  const PseudoSourceValue *PseudoSourceValue::getJumpTable()
+  { return &(*PSVs)[4]; }
 
   static const char *PSVNames[] = {
 "FixedStack",


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


[llvm-commits] [llvm] r46964 - /llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp

2008-02-11 Thread Dan Gohman
Author: djg
Date: Mon Feb 11 13:00:34 2008
New Revision: 46964

URL: http://llvm.org/viewvc/llvm-project?rev=46964&view=rev
Log:
>From Chris' review: use isa instead of explicitly using classof.

Modified:
llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp?rev=46964&r1=46963&r2=46964&view=diff

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp Mon Feb 11 13:00:34 2008
@@ -287,7 +287,7 @@
 --N;
   if (N && Node->getOperand(N - 1).getValueType() == MVT::Other)
 --N; // Ignore chain if it exists.
-  while (N && MemOperandSDNode::classof(Node->getOperand(N - 1).Val))
+  while (N && isa(Node->getOperand(N - 1).Val))
 --N; // Ignore MemOperand nodes
   return N;
 }


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


[llvm-commits] [llvm] r46963 - /llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp

2008-02-11 Thread Dan Gohman
Author: djg
Date: Mon Feb 11 13:00:03 2008
New Revision: 46963

URL: http://llvm.org/viewvc/llvm-project?rev=46963&view=rev
Log:
>From Chris' review: minor corrections in comments.

Modified:
llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp?rev=46963&r1=46962&r2=46963&view=diff

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp Mon Feb 11 13:00:03 2008
@@ -267,7 +267,7 @@
 
 /// CountResults - The results of target nodes have register or immediate
 /// operands first, then an optional chain, and optional flag operands (which 
do
-/// not go into the machine instrs.)
+/// not go into the resulting MachineInstr).
 unsigned ScheduleDAG::CountResults(SDNode *Node) {
   unsigned N = Node->getNumValues();
   while (N && Node->getValueType(N - 1) == MVT::Flag)
@@ -279,7 +279,8 @@
 
 /// CountOperands - The inputs to target nodes have any actual inputs first,
 /// followed by optional memory operands chain operand, then flag operands.
-/// Compute the number of actual operands that  will go into the machine istr.
+/// Compute the number of actual operands that will go into the resulting
+/// MachineInstr.
 unsigned ScheduleDAG::CountOperands(SDNode *Node) {
   unsigned N = Node->getNumOperands();
   while (N && Node->getOperand(N - 1).getValueType() == MVT::Flag)


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


[llvm-commits] [llvm] r46975 - in /llvm/trunk/include/llvm/ADT: ImmutableMap.h ImmutableSet.h

2008-02-11 Thread Ted Kremenek
Author: kremenek
Date: Mon Feb 11 17:11:12 2008
New Revision: 46975

URL: http://llvm.org/viewvc/llvm-project?rev=46975&view=rev
Log:
The factories for ImutAVLTree/ImmutableSet/ImmutableMap now take an (optional)
BumpPtrAllocator argument to their constructors.  This BumpPtrAllocator
will be used to allocate trees.  If no BumpPtrAllocator is provided, one
is created (as before).

Modified:
llvm/trunk/include/llvm/ADT/ImmutableMap.h
llvm/trunk/include/llvm/ADT/ImmutableSet.h

Modified: llvm/trunk/include/llvm/ADT/ImmutableMap.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableMap.h?rev=46975&r1=46974&r2=46975&view=diff

==
--- llvm/trunk/include/llvm/ADT/ImmutableMap.h (original)
+++ llvm/trunk/include/llvm/ADT/ImmutableMap.h Mon Feb 11 17:11:12 2008
@@ -84,6 +84,9 @@
   public:
 Factory() {}
 
+Factory(BumpPtrAllocator& Alloc)
+  : F(Alloc) {}
+
 ImmutableMap GetEmptyMap() { return ImmutableMap(F.GetEmptyTree()); }
 
 ImmutableMap Add(ImmutableMap Old, key_type_ref K, data_type_ref D) {

Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?rev=46975&r1=46974&r2=46975&view=diff

==
--- llvm/trunk/include/llvm/ADT/ImmutableSet.h (original)
+++ llvm/trunk/include/llvm/ADT/ImmutableSet.h Mon Feb 11 17:11:12 2008
@@ -16,6 +16,7 @@
 
 #include "llvm/Support/Allocator.h"
 #include "llvm/ADT/FoldingSet.h"
+#include "llvm/Support/DataTypes.h"
 #include 
 
 namespace llvm {
@@ -334,15 +335,31 @@
   
   typedef FoldingSet CacheTy;
   
-  CacheTy Cache;  
-  BumpPtrAllocator Allocator;
+  CacheTy Cache;
+  uintptr_t Allocator;
+  
+  bool ownsAllocator() const {
+return Allocator & 0x1 ? false : true;
+  }
+
+  BumpPtrAllocator& getAllocator() const { 
+return *reinterpret_cast(Allocator & ~0x1);
+  }
   
   //===--===//
   // Public interface.
   //===--===//
   
 public:
-  ImutAVLFactory() {}
+  ImutAVLFactory()
+: Allocator(reinterpret_cast(new BumpPtrAllocator())) {}
+  
+  ImutAVLFactory(BumpPtrAllocator& Alloc)
+: Allocator(reinterpret_cast(&Alloc) | 0x1) {}
+  
+  ~ImutAVLFactory() {
+if (ownsAllocator()) delete &getAllocator();
+  }
   
   TreeTy* Add(TreeTy* T, value_type_ref V) {
 T = Add_internal(V,T);
@@ -358,8 +375,6 @@
   
   TreeTy* GetEmptyTree() const { return NULL; }
   
-  BumpPtrAllocator& getAllocator() { return Allocator; }
-  
   //===--===//
   // A bunch of quick helper functions used for reasoning
   // about the properties of trees and their children.
@@ -450,7 +465,8 @@
 // Create it.
 
 // Allocate the new tree node and insert it into the cache.
-TreeTy* T = (TreeTy*) Allocator.Allocate();
+BumpPtrAllocator& A = getAllocator();
+TreeTy* T = (TreeTy*) A.Allocate();
 new (T) TreeTy(L,R,V,IncrementHeight(L,R));
 
 // We do not insert 'T' into the FoldingSet here.  This is because
@@ -930,6 +946,9 @@
   public:
 Factory() {}
 
+Factory(BumpPtrAllocator& Alloc)
+  : F(Alloc) {}
+
 /// GetEmptySet - Returns an immutable set that contains no elements.
 ImmutableSet GetEmptySet() { return ImmutableSet(F.GetEmptyTree()); }
 


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


[llvm-commits] [llvm-gcc-4.2] r46971 - in /llvm-gcc-4.2/trunk/gcc: config/i386/llvm-i386-target.h llvm-types.cpp

2008-02-11 Thread Dale Johannesen
Author: johannes
Date: Mon Feb 11 15:53:29 2008
New Revision: 46971

URL: http://llvm.org/viewvc/llvm-project?rev=46971&view=rev
Log:
Revert 46958 for the moment; it broke things, and
there's a better way to solve the problem.


Modified:
llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
llvm-gcc-4.2/trunk/gcc/llvm-types.cpp

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h?rev=46971&r1=46970&r2=46971&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h Mon Feb 11 15:53:29 
2008
@@ -83,15 +83,6 @@
 }   \
   }
 
-/* Aggregates containing SSE vectors are aligned at 16 bytes as parameters;
-   while long double has GCC alignment of 16 bytes (correct for struct layout)
-   but is only 4 byte aligned as a parameter.  So if a union type contains an
-   SSE vector, use that as the basis for the constructed LLVM struct. */
-#define TARGET_LLVM_COMPARE_UNION_FIELDS(curType, newType, curAlign, newAlign) 
\
-  (newAlign==curAlign && TARGET_SSE && 
\
-   TheTarget->getTargetLowering()->getByValTypeAlignment(newType) >
\
-   TheTarget->getTargetLowering()->getByValTypeAlignment(curType))
-
 #ifdef LLVM_ABI_H
 extern bool llvm_x86_should_pass_aggregate_in_memory(tree, const Type *);
 

Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46971&r1=46970&r2=46971&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Mon Feb 11 15:53:29 2008
@@ -33,7 +33,6 @@
 #include "llvm/TypeSymbolTable.h"
 #include "llvm/Target/TargetData.h"
 #include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetLowering.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringExtras.h"
@@ -1138,7 +1137,7 @@
   // 'sret' functions cannot be 'readnone' or 'readonly'.
   if (ABIConverter.isStructReturn())
 RAttributes &= ~(ParamAttr::ReadNone|ParamAttr::ReadOnly);
-
+  
   // Compute whether the result needs to be zext or sext'd.
   RAttributes |= HandleArgumentExtension(TREE_TYPE(type));
 
@@ -2125,8 +2124,6 @@
 
 /// ConvertUNION - We know that 'type' is a UNION_TYPE or a QUAL_UNION_TYPE:
 /// convert it to an LLVM type.
-/// This involves creating a struct with the right size and alignment. In
-/// some cases this is target dependent.
 const Type *TypeConverter::ConvertUNION(tree type, tree orig_type) {
   if (const Type *Ty = GET_TYPE_LLVM(type)) {
 // If we already compiled this type, and if it was not a forward
@@ -2173,25 +2170,17 @@
 // Select TheTy as union type if it meets one of the following criteria
 // 1) UnionTy is 0
 // 2) TheTy alignment is more then UnionTy
-// 3) TheTy size is greater than UnionTy size and TheTy alignment is equal
-//to UnionTy
+// 3) TheTy size is greater than UnionTy size and TheTy alignment is equal 
to UnionTy
 // 4) TheTy size is greater then UnionTy size and TheTy is packed
-//FIXME there is no check for packed?
 bool useTheTy = false;
 if (UnionTy == 0)
   useTheTy = true;
 else if (Align > MaxAlign)
   useTheTy = true;
-#ifdef TARGET_LLVM_COMPARE_UNION_FIELDS
-else
-  useTheTy = TARGET_LLVM_COMPARE_UNION_FIELDS(UnionTy, TheTy,
-   Align, MaxAlign);
-#else
 else if (MaxAlign == Align && Size > MaxSize)
   useTheTy = true;
-else if (Size > MaxSize)// FIXME really?  Seems wrong to lower 
alignment
+else if (Size > MaxSize)
   useTheTy = true;
-#endif
 
 if (useTheTy) {
   UnionTy = TheTy;


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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/CommandGuide/index.html

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/CommandGuide:

index.html updated: 1.2 -> 1.3
---
Log message:

Fix broken links.


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

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


Index: llvm-www/releases/2.2/docs/CommandGuide/index.html
diff -u llvm-www/releases/2.2/docs/CommandGuide/index.html:1.2 
llvm-www/releases/2.2/docs/CommandGuide/index.html:1.3
--- llvm-www/releases/2.2/docs/CommandGuide/index.html:1.2  Tue Feb 12 
00:20:24 2008
+++ llvm-www/releases/2.2/docs/CommandGuide/index.html  Tue Feb 12 00:23:26 2008
@@ -118,7 +118,7 @@
 bugpoint -
 automatic test-case reducer
 
-llvm-extract
 -
+llvm-extract
 -
 extract a function from an LLVM bytecode file
 
 llvm-bcanalyzer
 -
@@ -153,7 +153,7 @@
   src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!">
 
   http://llvm.org";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2008/02/12 06:20:24 $
+  Last modified: $Date: 2008/02/12 06:23:26 $
 
 
 



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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/index.html

2008-02-11 Thread Tanya Lattner


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

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

Fix broken links.


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

 index.html |   40 
 1 files changed, 20 insertions(+), 20 deletions(-)


Index: llvm-www/releases/2.2/docs/index.html
diff -u llvm-www/releases/2.2/docs/index.html:1.1 
llvm-www/releases/2.2/docs/index.html:1.2
--- llvm-www/releases/2.2/docs/index.html:1.1   Tue Feb 12 00:05:03 2008
+++ llvm-www/releases/2.2/docs/index.html   Tue Feb 12 00:20:21 2008
@@ -69,27 +69,27 @@
 Developer Policy - The LLVM project's
 policy towards developers and their contributions.
 
-LLVM Command Guide - A 
reference
+LLVM Command 
Guide - A reference
 manual for the LLVM command line utilities ("man" pages for LLVM tools).
 Current tools:
- llvm-ar,
- llvm-as,
- llvm-dis,
- llvm-extract,
- llvm-ld,
- llvm-link,
- llvm-nm,
- llvm-prof,
- llvm-ranlib,
- opt,
- llc,
- lli,
- llvmc
- llvm-gcc,
- llvm-g++,
- stkrc,
- bugpoint,
- llvm-bcanalyzer,
+ llvm-ar,
+ llvm-as,
+ llvm-dis,
+ llvm-extract,
+ llvm-ld,
+ llvm-link,
+ llvm-nm,
+ llvm-prof,
+ llvm-ranlib,
+ opt,
+ llc,
+ lli,
+ llvmc
+ llvm-gcc,
+ llvm-g++,
+ stkrc,
+ bugpoint,
+ llvm-bcanalyzer,
 
 
 Frequently Asked Questions - A list of common
@@ -270,7 +270,7 @@
   src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!">
 
   http://llvm.org";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2008/02/12 06:05:03 $
+  Last modified: $Date: 2008/02/12 06:20:21 $
 
 
 



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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/CommandGuide/index.html

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/CommandGuide:

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

Fix broken links.



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

 index.html |   46 +++---
 1 files changed, 23 insertions(+), 23 deletions(-)


Index: llvm-www/releases/2.2/docs/CommandGuide/index.html
diff -u llvm-www/releases/2.2/docs/CommandGuide/index.html:1.1 
llvm-www/releases/2.2/docs/CommandGuide/index.html:1.2
--- llvm-www/releases/2.2/docs/CommandGuide/index.html:1.1  Tue Feb 12 
00:05:11 2008
+++ llvm-www/releases/2.2/docs/CommandGuide/index.html  Tue Feb 12 00:20:24 2008
@@ -32,50 +32,50 @@
 
 
 
-llvm-as - 
+llvm-as - 
 assemble a human-readable .ll file into bytecode
 
-llvm-dis -
+llvm-dis -
 disassemble a bytecode file into a human-readable .ll file
 
-llvm-upgrade -
+llvm-upgrade
 -
 upgrade LLVM assembly from previous version
 
-opt -
+opt -
 run a series of LLVM-to-LLVM optimizations on a bytecode file
 
-llc - 
+llc - 
 generate native machine code for a bytecode file
 
-lli - 
+lli - 
 directly run a program compiled to bytecode using a JIT compiler or 
 interpreter
 
-llvm-link -
+llvm-link 
-
 link several bytecode files into one
 
-llvm-ar - 
+llvm-ar - 
 archive bytecode files
 
-llvm-ranlib - 
+llvm-ranlib
 - 
 create an index for archives made with llvm-ar
 
-llvm-nm -
+llvm-nm -
 print out the names and types of symbols in a bytecode file
 
-llvm-prof -
+llvm-prof 
-
 format raw `llvmprof.out' data into a human-readable report
 
-llvmc -
+llvmc 
-
   generic and configurable compiler driver
 
-llvm-ld -
+llvm-ld -
   general purpose linker with loadable runtime optimization support
 
-llvm-config - 
+llvm-config
 - 
   print out LLVM compilation options, libraries, etc. as configured.
 
-  llvm2cpp - convert LLVM assembly
+  llvm2cpp - 
convert LLVM assembly
   into the corresponding LLVM C++ API calls to produce it
 
 
@@ -90,13 +90,13 @@
 
 
 
-llvmgcc -
+llvmgcc -
 GCC-based C front-end for LLVM
 
-llvmg++ -
+llvmg++ -
 GCC-based C++ front-end for LLVM
 
-stkrc -
+stkrc 
-
 front-end compiler for the Stacker 
 language
 
@@ -115,13 +115,13 @@
 
 
 
-bugpoint -
+bugpoint -
 automatic test-case reducer
 
-llvm-extract -
+llvm-extract
 -
 extract a function from an LLVM bytecode file
 
-llvm-bcanalyzer -
+llvm-bcanalyzer
 -
 bytecode analyzer (analyzes the binary encoding itself, not the program it
 represents)
 
@@ -137,7 +137,7 @@
 
 
 
-tblgen -
+tblgen -
 target description reader and generator
 
 
@@ -153,7 +153,7 @@
   src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!">
 
   http://llvm.org";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2008/02/12 06:05:11 $
+  Last modified: $Date: 2008/02/12 06:20:24 $
 
 
 



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


[llvm-commits] CVS: llvm-www/releases/2.2/LICENSE.TXT index.html llvm-2.2.tar.gz llvm-gcc4.0-2.2-ppc-darwin8.11.0.tar.gz llvm-gcc4.0-2.2-x86-darwin8.tar.gz llvm-gcc4.0-2.2-x86-linux-RHEL4.tar.gz llvm-

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2:

LICENSE.TXT added (r1.1)
index.html added (r1.1)
llvm-2.2.tar.gz added (r1.1)
llvm-gcc4.0-2.2-ppc-darwin8.11.0.tar.gz added (r1.1)
llvm-gcc4.0-2.2-x86-darwin8.tar.gz added (r1.1)
llvm-gcc4.0-2.2-x86-linux-RHEL4.tar.gz added (r1.1)
llvm-gcc4.0-2.2.source.tar.gz added (r1.1)
llvm-gcc4.2-2.2-ppc-darwin8.11.0.tar.gz added (r1.1)
llvm-gcc4.2-2.2-x86-darwin8.tar.gz added (r1.1)
llvm-gcc4.2-2.2-x86-linux-RHEL4.tar.gz added (r1.1)
llvm-gcc4.2-2.2.source.tar.gz added (r1.1)
llvm-test-2.2.tar.gz added (r1.1)
---
Log message:

Release 2.2


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

 LICENSE.TXT |   72 
 index.html  |7 +++
 llvm-2.2.tar.gz |0 
 llvm-gcc4.0-2.2-ppc-darwin8.11.0.tar.gz |0 
 llvm-gcc4.0-2.2-x86-darwin8.tar.gz  |0 
 llvm-gcc4.0-2.2-x86-linux-RHEL4.tar.gz  |0 
 llvm-gcc4.0-2.2.source.tar.gz   |0 
 llvm-gcc4.2-2.2-ppc-darwin8.11.0.tar.gz |0 
 llvm-gcc4.2-2.2-x86-darwin8.tar.gz  |0 
 llvm-gcc4.2-2.2-x86-linux-RHEL4.tar.gz  |0 
 llvm-gcc4.2-2.2.source.tar.gz   |0 
 llvm-test-2.2.tar.gz|0 
 12 files changed, 79 insertions(+)


Index: llvm-www/releases/2.2/LICENSE.TXT
diff -c /dev/null llvm-www/releases/2.2/LICENSE.TXT:1.1
*** /dev/null   Tue Feb 12 00:05:45 2008
--- llvm-www/releases/2.2/LICENSE.TXT   Tue Feb 12 00:03:54 2008
***
*** 0 
--- 1,72 
+ ==
+ LLVM Release License
+ ==
+ University of Illinois/NCSA
+ Open Source License
+ 
+ Copyright (c) 2003-2008 University of Illinois at Urbana-Champaign.
+ All rights reserved.
+ 
+ Developed by:
+ 
+ LLVM Team
+ 
+ University of Illinois at Urbana-Champaign
+ 
+ http://llvm.org
+ 
+ Permission is hereby granted, free of charge, to any person obtaining a copy 
of
+ this software and associated documentation files (the "Software"), to deal 
with
+ the Software without restriction, including without limitation the rights to
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is furnished to do
+ so, subject to the following conditions:
+ 
+ * Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimers.
+ 
+ * Redistributions in binary form must reproduce the above copyright 
notice,
+   this list of conditions and the following disclaimers in the
+   documentation and/or other materials provided with the distribution.
+ 
+ * Neither the names of the LLVM Team, University of Illinois at
+   Urbana-Champaign, nor the names of its contributors may be used to
+   endorse or promote products derived from this Software without specific
+   prior written permission.
+ 
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+ CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH 
THE
+ SOFTWARE.
+ 
+ ==
+ Copyrights and Licenses for Third Party Software Distributed with LLVM:
+ ==
+ The LLVM software contains code written by third parties.  Such software will
+ have its own individual LICENSE.TXT file in the directory in which it appears.
+ This file will describe the copyrights, license, and restrictions which apply
+ to that code.
+ 
+ The disclaimer of warranty in the University of Illinois Open Source License
+ applies to all code in the LLVM Distribution, and nothing in any of the
+ other licenses gives permission to use the names of the LLVM Team or the
+ University of Illinois to endorse or promote products derived from this
+ Software.
+ 
+ The following pieces of software have additional or alternate copyrights,
+ licenses, and/or restrictions:
+ 
+ Program Directory
+ --- -
+ System Library  llvm/lib/System
+ Compiler Driver llvm/tools/llvmc
+ Autoconfllvm/autoconf
+ llvm/projects/ModuleMaker/autoconf
+ llvm/projects/sample/autoconf
+ Boost C++ Libraries llvm/include : docs/BOOST_LICENSE_1_0.txt
+ CellSPU backend llvm/lib/Target/CellSPU/README.txt
+ 
+ 


Index: llvm-www/releases/2.2/index.html
diff -c /dev/null llvm-www/releases/2.2/index.html:1.1
*** /dev/

[llvm-commits] CVS: llvm-www/releases/2.2/docs/img/Debugging.gif libdeps.gif lines.gif objdeps.gif venusflytrap.jpg

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/img:

Debugging.gif added (r1.1)
libdeps.gif added (r1.1)
lines.gif added (r1.1)
objdeps.gif added (r1.1)
venusflytrap.jpg added (r1.1)
---
Log message:

Release 2.2









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

 Debugging.gif|0 
 libdeps.gif  |0 
 lines.gif|0 
 objdeps.gif  |0 
 venusflytrap.jpg |0 
 5 files changed


Index: llvm-www/releases/2.2/docs/img/Debugging.gif


Index: llvm-www/releases/2.2/docs/img/libdeps.gif


Index: llvm-www/releases/2.2/docs/img/lines.gif


Index: llvm-www/releases/2.2/docs/img/objdeps.gif


Index: llvm-www/releases/2.2/docs/img/venusflytrap.jpg



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


[llvm-commits] [llvm] r46994 - /llvm/tags/RELEASE_22/docs/ReleaseNotes.html

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Tue Feb 12 00:50:19 2008
New Revision: 46994

URL: http://llvm.org/viewvc/llvm-project?rev=46994&view=rev
Log:
Merge from branch to fix bug.

Modified:
llvm/tags/RELEASE_22/docs/ReleaseNotes.html

Modified: llvm/tags/RELEASE_22/docs/ReleaseNotes.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/tags/RELEASE_22/docs/ReleaseNotes.html?rev=46994&r1=46993&r2=46994&view=diff

==
--- llvm/tags/RELEASE_22/docs/ReleaseNotes.html (original)
+++ llvm/tags/RELEASE_22/docs/ReleaseNotes.html Tue Feb 12 00:50:19 2008
@@ -545,52 +545,6 @@
   Known problems with the C front-end
 
 
-
-
-  Known problems with the Ada front-end
-
-
-
-The llvm-gcc 4.2 Ada compiler works fairly well, however this is not a mature
-technology and problems should be expected.
-
-The Ada front-end currently only builds on x86-32.  This is mainly due
-to lack of trampoline support (pointers to nested functions) on other 
platforms,
-however it http://llvm.org/PR2006";>also fails to build on x86-64
-which does support trampolines.
-The Ada front-end http://llvm.org/PR2007";>fails to bootstrap.
-Workaround: configure with --disable-bootstrap.
-The c380004 and http://llvm.org/PR2010";>c393010 ACATS tests
-fail (c380004 also fails with gcc-4.2 mainline).
-Many gcc specific Ada tests continue to crash the compiler.
-The -E binder option (exception backtraces)
-http://llvm.org/PR1982";>does not work and will result in programs
-crashing if an exception is raised.  Workaround: do not use -E.
-Only discrete types http://llvm.org/PR1981";>are allowed to start
-or finish at a non-byte offset in a record.  Workaround: do not pack 
records
-or use representation clauses that result in a field of a non-discrete type
-starting or finishing in the middle of a byte.
-The lli interpreter http://llvm.org/PR2009";>considers 'main'
-as generated by the Ada binder to be invalid.
-Workaround: hand edit the file to use pointers for argv and envp rather than
-integers.
-The -fstack-check option http://llvm.org/PR2008";>is 
ignored.
-
-
-
-
-
-  Known problems with the Fortran front-end
-
-
-
-
-
-The llvm-gcc 4.2 gfortran front-end supports a broad range of Fortran 
code, but does
-http://llvm.org/PR1971";>not support EQUIVALENCE yet.
-
-
-
 
 Bugs
 
@@ -722,6 +676,53 @@
 
 
 
+
+
+  Known problems with the Ada front-end
+
+
+
+The llvm-gcc 4.2 Ada compiler works fairly well, however this is not a mature
+technology and problems should be expected.
+
+The Ada front-end currently only builds on x86-32.  This is mainly due
+to lack of trampoline support (pointers to nested functions) on other 
platforms,
+however it http://llvm.org/PR2006";>also fails to build on x86-64
+which does support trampolines.
+The Ada front-end http://llvm.org/PR2007";>fails to bootstrap.
+Workaround: configure with --disable-bootstrap.
+The c380004 and http://llvm.org/PR2010";>c393010 ACATS tests
+fail (c380004 also fails with gcc-4.2 mainline).
+Many gcc specific Ada tests continue to crash the compiler.
+The -E binder option (exception backtraces)
+http://llvm.org/PR1982";>does not work and will result in programs
+crashing if an exception is raised.  Workaround: do not use -E.
+Only discrete types http://llvm.org/PR1981";>are allowed to start
+or finish at a non-byte offset in a record.  Workaround: do not pack 
records
+or use representation clauses that result in a field of a non-discrete type
+starting or finishing in the middle of a byte.
+The lli interpreter http://llvm.org/PR2009";>considers 'main'
+as generated by the Ada binder to be invalid.
+Workaround: hand edit the file to use pointers for argv and envp rather than
+integers.
+The -fstack-check option http://llvm.org/PR2008";>is 
ignored.
+
+
+
+
+
+  Known problems with the Fortran front-end
+
+
+
+
+
+The llvm-gcc 4.2 gfortran front-end supports a broad range of Fortran 
code, but does
+http://llvm.org/PR1971";>not support EQUIVALENCE yet.
+
+
+
+
 
 
   Additional Information


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


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

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2:

llvm-2.2.tar.gz updated: 1.1 -> 1.2
---
Log message:

New source tar ball due to updated release notes.


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

 llvm-2.2.tar.gz |0 
 1 files changed


Index: llvm-www/releases/2.2/llvm-2.2.tar.gz



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


[llvm-commits] [llvm] r46992 - /llvm/branches/release_22/docs/ReleaseNotes.html

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Tue Feb 12 00:28:54 2008
New Revision: 46992

URL: http://llvm.org/viewvc/llvm-project?rev=46992&view=rev
Log:
Fix bugs section.

Modified:
llvm/branches/release_22/docs/ReleaseNotes.html

Modified: llvm/branches/release_22/docs/ReleaseNotes.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/docs/ReleaseNotes.html?rev=46992&r1=46991&r2=46992&view=diff

==
--- llvm/branches/release_22/docs/ReleaseNotes.html (original)
+++ llvm/branches/release_22/docs/ReleaseNotes.html Tue Feb 12 00:28:54 2008
@@ -545,52 +545,6 @@
   Known problems with the C front-end
 
 
-
-
-  Known problems with the Ada front-end
-
-
-
-The llvm-gcc 4.2 Ada compiler works fairly well, however this is not a mature
-technology and problems should be expected.
-
-The Ada front-end currently only builds on x86-32.  This is mainly due
-to lack of trampoline support (pointers to nested functions) on other 
platforms,
-however it http://llvm.org/PR2006";>also fails to build on x86-64
-which does support trampolines.
-The Ada front-end http://llvm.org/PR2007";>fails to bootstrap.
-Workaround: configure with --disable-bootstrap.
-The c380004 and http://llvm.org/PR2010";>c393010 ACATS tests
-fail (c380004 also fails with gcc-4.2 mainline).
-Many gcc specific Ada tests continue to crash the compiler.
-The -E binder option (exception backtraces)
-http://llvm.org/PR1982";>does not work and will result in programs
-crashing if an exception is raised.  Workaround: do not use -E.
-Only discrete types http://llvm.org/PR1981";>are allowed to start
-or finish at a non-byte offset in a record.  Workaround: do not pack 
records
-or use representation clauses that result in a field of a non-discrete type
-starting or finishing in the middle of a byte.
-The lli interpreter http://llvm.org/PR2009";>considers 'main'
-as generated by the Ada binder to be invalid.
-Workaround: hand edit the file to use pointers for argv and envp rather than
-integers.
-The -fstack-check option http://llvm.org/PR2008";>is 
ignored.
-
-
-
-
-
-  Known problems with the Fortran front-end
-
-
-
-
-
-The llvm-gcc 4.2 gfortran front-end supports a broad range of Fortran 
code, but does
-http://llvm.org/PR1971";>not support EQUIVALENCE yet.
-
-
-
 
 Bugs
 
@@ -722,6 +676,53 @@
 
 
 
+
+
+  Known problems with the Ada front-end
+
+
+
+The llvm-gcc 4.2 Ada compiler works fairly well, however this is not a mature
+technology and problems should be expected.
+
+The Ada front-end currently only builds on x86-32.  This is mainly due
+to lack of trampoline support (pointers to nested functions) on other 
platforms,
+however it http://llvm.org/PR2006";>also fails to build on x86-64
+which does support trampolines.
+The Ada front-end http://llvm.org/PR2007";>fails to bootstrap.
+Workaround: configure with --disable-bootstrap.
+The c380004 and http://llvm.org/PR2010";>c393010 ACATS tests
+fail (c380004 also fails with gcc-4.2 mainline).
+Many gcc specific Ada tests continue to crash the compiler.
+The -E binder option (exception backtraces)
+http://llvm.org/PR1982";>does not work and will result in programs
+crashing if an exception is raised.  Workaround: do not use -E.
+Only discrete types http://llvm.org/PR1981";>are allowed to start
+or finish at a non-byte offset in a record.  Workaround: do not pack 
records
+or use representation clauses that result in a field of a non-discrete type
+starting or finishing in the middle of a byte.
+The lli interpreter http://llvm.org/PR2009";>considers 'main'
+as generated by the Ada binder to be invalid.
+Workaround: hand edit the file to use pointers for argv and envp rather than
+integers.
+The -fstack-check option http://llvm.org/PR2008";>is 
ignored.
+
+
+
+
+
+  Known problems with the Fortran front-end
+
+
+
+
+
+The llvm-gcc 4.2 gfortran front-end supports a broad range of Fortran 
code, but does
+http://llvm.org/PR1971";>not support EQUIVALENCE yet.
+
+
+
+
 
 
   Additional Information


___
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

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases:

download.html updated: 1.47 -> 1.48
---
Log message:

2.2 release


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

 download.html |   23 +++
 1 files changed, 23 insertions(+)


Index: llvm-www/releases/download.html
diff -u llvm-www/releases/download.html:1.47 
llvm-www/releases/download.html:1.48
--- llvm-www/releases/download.html:1.47Tue Oct 16 11:28:11 2007
+++ llvm-www/releases/download.html Tue Feb 12 00:59:04 2008
@@ -30,6 +30,29 @@
 
 
 
+Download LLVM 2.2
+
+
+
+
+Please read the Release Notes 
before
+downloading:
+
+
+  LLVM source code (5.4M)
+  LLVM Test Suite (53M)
+  LLVM-GCC 4.2 Front End 
Binaries for MacOS X/x86 (50M)
+  LLVM-GCC 4.2 Front 
End Binaries for MacOS X/PowerPC (49M)
+  LLVM-GCC 4.2 Front 
End Binaries for Red Hat Enterprise Linux4/x86 (42M)
+  LLVM-GCC 4.0 Front End 
Binaries for MacOS X/x86 (41M)
+  LLVM-GCC 4.0 Front 
End Binaries for MacOS X/PowerPC (39M)
+  LLVM-GCC 4.0 Front 
End Binaries for Red Hat Enterprise Linux4/x86 (31M)
+  LLVM-GCC 4.2 Front End 
Source Code (49M)
+  LLVM-GCC 4.0 Front End 
Source Code (36M)
+
+
+
+
 Download LLVM 2.1
 
 



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


[llvm-commits] [llvm] r46993 - /llvm/trunk/docs/ReleaseNotes.html

2008-02-11 Thread Chris Lattner
Author: lattner
Date: Tue Feb 12 00:29:45 2008
New Revision: 46993

URL: http://llvm.org/viewvc/llvm-project?rev=46993&view=rev
Log:
rip out llvm 2.2 stuff in preparation for llvm 2.3

Modified:
llvm/trunk/docs/ReleaseNotes.html

Modified: llvm/trunk/docs/ReleaseNotes.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/ReleaseNotes.html?rev=46993&r1=46992&r2=46993&view=diff

==
--- llvm/trunk/docs/ReleaseNotes.html (original)
+++ llvm/trunk/docs/ReleaseNotes.html Tue Feb 12 00:29:45 2008
@@ -4,11 +4,11 @@
 
   
   
-  LLVM 2.2 Release Notes
+  LLVM 2.3 Release Notes
 
 
 
-LLVM 2.2 Release Notes
+LLVM 2.3 Release Notes
  
 
   Introduction
@@ -23,6 +23,8 @@
   Written by the http://llvm.org";>LLVM Team
 
 
+THIS IS A WORK IN PROGRESS FOR LLVM 2.3 (currently in
+progress on SVN HEAD)
 
 
 
@@ -33,7 +35,7 @@
 
 
 This document contains the release notes for the LLVM compiler
-infrastructure, release 2.2.  Here we describe the status of LLVM, including
+infrastructure, release 2.3.  Here we describe the status of LLVM, including
 major improvements from the previous release and any known problems.  All LLVM
 releases may be downloaded from the http://llvm.org/releases/";>LLVM
 releases web site.
@@ -59,12 +61,12 @@
 
 
 
-This is the thirteenth public release of the LLVM Compiler Infrastructure. 
-It includes many features and refinements from LLVM 2.1.
+This is the fourteenth public release of the LLVM Compiler Infrastructure. 
+It includes many features and refinements from LLVM 2.2.
 
 
 
-
 
-Deprecated features in LLVM 2.2
+Removed features in LLVM 2.3
 
 
 
 
-This is the last LLVM release to support llvm-gcc 4.0, llvm-upgrade, and
-llvmc in its current form.  llvm-gcc 4.0 has been replaced with llvm-gcc 4.2.
-llvm-upgrade is useful for upgrading llvm 1.9 files to llvm 2.x syntax, but you
-can always use an old release to do this.  llvmc is currently mostly useless in
-llvm 2.2, and will be redesigned or removed in llvm 2.3.
+LLVM 2.2 was the last LLVM release to support llvm-gcc 4.0 and llvm-upgrade.
+llvm-gcc 4.0 has been replaced with llvm-gcc 4.2.  llvm-upgrade was useful for
+upgrading llvm 1.9 files to llvm 2.x syntax, but you can always use a previous
+llvm release to do this.
 
 
 
 

 
-llvm-gcc 4.0, llvm-gcc 4.2, and clang
+llvm-gcc 4.2 and clang
 
 
 
 
-LLVM 2.2 fully supports both the llvm-gcc 4.0 and llvm-gcc 4.2 front-ends 
(in
-LLVM 2.1, llvm-gcc 4.2 was beta).  Since LLVM 2.1, the llvm-gcc 4.2 front-end
-has made leaps and bounds and is now at least as good as 4.0 in virtually every
-area, and is better in several areas (for example, exception handling
-correctness, support for Ada and Fortran, better ABI compatibility, etc).  We 
-strongly recommend that you
-migrate from llvm-gcc 4.0 to llvm-gcc 4.2 in this release cycle because
-LLVM 2.2 is the last release that will support llvm-gcc 4.0:  LLVM 2.3
-will only support the llvm-gcc 4.2 front-end.
+LLVM 2.3 fully supports llvm-gcc 4.2 front-end. 
 
 The http://clang.llvm.org/";>clang project is an effort to build
 a set of new 'llvm native' front-end technologies for the LLVM optimizer
@@ -109,7 +102,7 @@
 nicely, and it has advanced source-to-source analysis and transformation
 capabilities.  If you are interested in building source-level tools for C and
 Objective-C (and eventually C++), you should take a look.  However, note that
-clang is not an official part of the LLVM 2.2 release.  If you are interested 
in
+clang is not an official part of the LLVM 2.3 release.  If you are interested 
in
 this project, please see its http://clang.llvm.org/";>web site.
 
 
@@ -121,41 +114,9 @@
 
 
 
-LLVM 2.2 includes several major new capabilities:
+LLVM 2.3 includes several major new capabilities:
 
 
-A research team led by Scott Michel in the Computer Systems Research
-Department at The Aerospace Corporation contributed the CellSPU backend, which
-generates code for the vector coprocessors on the Sony/Toshiba/IBM Cell BE
-processor. llvm-gcc 4.2 supports CellSPU as a 'configure' target and progress
-is being made so that libgcc.a compiles cleanly. Notable pieces still in
-development include full 64-bit integer and full double precision floating
-point support.
-
-Anton and Duncan significantly improved llvm-gcc 4.2 support for the GCC 
Ada
-(GNAT) and Fortran (gfortran) front-ends.  These front-ends should still be 
considered
-experimental however: see the list of known 
problems.
-The release binaries do not contain either front-end: they need to be built 
from
-source (the Ada front-end only builds on x86-32 linux).
-
-Dale contributed full support for long double on x86/x86-64 (where it is 80
-bits) and on Darwin PPC/PPC64 (where it is 128 bits).  In previous LLVM
-releases, llvm-gcc silently mapped long double to double.
-
-Gordon Henriksen rewrote most of the Accurate Garbage Collection code in the code generator, making the
-generated code more 

[llvm-commits] CVS: llvm-www/releases/2.2/docs/CommandGuide/man/man1/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/CommandGuide/man/man1:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs/CommandGuide/man/man1 added 
to the repository


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

 0 files changed



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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/CommandGuide/html/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/CommandGuide/html:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs/CommandGuide/html added to 
the repository


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

 0 files changed



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


[llvm-commits] [test-suite] r46990 - /test-suite/tags/RELEASE_22/

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Mon Feb 11 23:20:47 2008
New Revision: 46990

URL: http://llvm.org/viewvc/llvm-project?rev=46990&view=rev
Log:
Tag release 2.2

Added:
test-suite/tags/RELEASE_22/
  - copied from r46989, test-suite/branches/release_22/

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


[llvm-commits] [llvm] r46987 - /llvm/tags/RELEASE_22/

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Mon Feb 11 23:19:29 2008
New Revision: 46987

URL: http://llvm.org/viewvc/llvm-project?rev=46987&view=rev
Log:
Tagging release 2.2.

Added:
llvm/tags/RELEASE_22/
  - copied from r46986, llvm/branches/release_22/

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


[llvm-commits] [llvm] r46986 - /llvm/branches/release_22/docs/ReleaseNotes.html

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Mon Feb 11 23:16:42 2008
New Revision: 46986

URL: http://llvm.org/viewvc/llvm-project?rev=46986&view=rev
Log:
Merge release notes from mainline.

Modified:
llvm/branches/release_22/docs/ReleaseNotes.html

Modified: llvm/branches/release_22/docs/ReleaseNotes.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/docs/ReleaseNotes.html?rev=46986&r1=46985&r2=46986&view=diff

==
--- llvm/branches/release_22/docs/ReleaseNotes.html (original)
+++ llvm/branches/release_22/docs/ReleaseNotes.html Mon Feb 11 23:16:42 2008
@@ -4,11 +4,11 @@
 
   
   
-  LLVM 2.1 Release Notes
+  LLVM 2.2 Release Notes
 
 
 
-LLVM 2.1 Release Notes
+LLVM 2.2 Release Notes
  
 
   Introduction
@@ -23,6 +23,7 @@
   Written by the http://llvm.org";>LLVM Team
 
 
+
 
 
   Introduction
@@ -32,7 +33,7 @@
 
 
 This document contains the release notes for the LLVM compiler
-infrastructure, release 2.1.  Here we describe the status of LLVM, including
+infrastructure, release 2.2.  Here we describe the status of LLVM, including
 major improvements from the previous release and any known problems.  All LLVM
 releases may be downloaded from the http://llvm.org/releases/";>LLVM
 releases web site.
@@ -58,122 +59,110 @@
 
 
 
-This is the twelfth public release of the LLVM Compiler Infrastructure. 
-It includes many features and refinements from LLVM 2.0.
+This is the thirteenth public release of the LLVM Compiler Infrastructure. 
+It includes many features and refinements from LLVM 2.1.
 
 
 
+
+
 

 
-New Frontends
+Deprecated features in LLVM 2.2
 
 
 
 
-LLVM 2.1 brings two new beta C front-ends.  First, a new version of llvm-gcc
-based on GCC 4.2, innovatively called "llvm-gcc-4.2".  This promises to bring
-FORTRAN and Ada support to LLVM as well as features like atomic builtins and
-OpenMP.  None of these actually work yet, but don't let that stop you checking
-it out!
-
-Second, LLVM now includes its own native C and Objective-C front-end (C++ is
-in progress, but is not very far along) code named "http://clang.llvm.org/";>clang".  This front-end has a number of great
-features, primarily aimed at source-level analysis and speeding up 
compile-time.
-At this point though, the LLVM Code Generator component is still very early in
-development, so it's mostly useful for people looking to build source-level
-analysis tools or source-to-source translators.
+This is the last LLVM release to support llvm-gcc 4.0, llvm-upgrade, and
+llvmc in its current form.  llvm-gcc 4.0 has been replaced with llvm-gcc 4.2.
+llvm-upgrade is useful for upgrading llvm 1.9 files to llvm 2.x syntax, but you
+can always use an old release to do this.  llvmc is currently mostly useless in
+llvm 2.2, and will be redesigned or removed in llvm 2.3.
 
 
 
 

 
-Optimizer Improvements
+llvm-gcc 4.0, llvm-gcc 4.2, and clang
 
 
 
 
-Some of the most noticable feature improvements this release have been in 
the
-optimizer, speeding it up and making it more aggressive.  For example:
-
-
-
-Owen Anderson wrote the new MemoryDependenceAnalysis pass, which provides 
-a lazy, caching layer on top of AliasAnalysis.  He then used it to rewrite
-DeadStoreElimination which resulted in significantly better compile time 
in 
-common cases, 
-Owen implemented the new GVN pass, which is also based on 
-MemoryDependenceAnalysis.  This pass replaces GCSE/LoadVN in the standard
-set of passes, providing more aggressive optimization at a some-what 
-improved compile-time cost.
-Owen implemented GVN-PRE, a partial redundancy elimination algorithm that
-shares some details with the new GVN pass.  It is still in need of compile
-time tuning, and is not turned on by default.
-Devang merged ETForest and DomTree into a single easier to use data
-structure.  This makes it more obvious which datastructure to choose
-(because there is only one) and makes the compiler more memory and time
-efficient (less stuff to keep up-to-date).
-Nick Lewycky improved loop trip count analysis to handle many more common
-cases.
-
-
+LLVM 2.2 fully supports both the llvm-gcc 4.0 and llvm-gcc 4.2 front-ends 
(in
+LLVM 2.1, llvm-gcc 4.2 was beta).  Since LLVM 2.1, the llvm-gcc 4.2 front-end
+has made leaps and bounds and is now at least as good as 4.0 in virtually every
+area, and is better in several areas (for example, exception handling
+correctness, support for Ada and Fortran, better ABI compatibility, etc).  We 
+strongly recommend that you
+migrate from llvm-gcc 4.0 to llvm-gcc 4.2 in this release cycle because
+LLVM 2.2 is the last release that will support llvm-gcc 4.0:  LLVM 2.3
+will only support the llvm-gcc 4.2 front-end.
+
+The http://clang.llvm.org/";>clang project is an effort to build
+a set of new 'llvm native' front-end technologies for the LLVM optimizer
+and code generator.  Currently, its C and Objective-C support is maturing 
+nicel

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

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases:

index.html updated: 1.41 -> 1.42
---
Log message:

2.2 release


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

 index.html |5 -
 1 files changed, 4 insertions(+), 1 deletion(-)


Index: llvm-www/releases/index.html
diff -u llvm-www/releases/index.html:1.41 llvm-www/releases/index.html:1.42
--- llvm-www/releases/index.html:1.41   Fri Sep 28 10:42:04 2007
+++ llvm-www/releases/index.htmlTue Feb 12 01:01:28 2008
@@ -15,7 +15,7 @@
 
 
 
-LLVM is distributed under the University of
+LLVM is distributed under the University of
 Illinois Open Source License, an http://www.opensource.org/licenses/UoI-NCSA.php";>OSI-approved
 license.
@@ -39,6 +39,8 @@
 
 Always - Anonymous SVN access; release notes.
+11 Feb 2008 - 2.2 release download; release notes.
 26 Sep 2007 - 2.1 release download; release notes.
 23 May 2007 - 2.0 release download; 
 http://llvm.org/docs/";>Current LLVM SVN HEAD 
documentation
+Documentation for LLVM 2.2
 Documentation for LLVM 2.1
 Documentation for LLVM 2.0
 Documentation for LLVM 1.9



___
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

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases:

download.html updated: 1.48 -> 1.49
---
Log message:

Fix typo.


---
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.48 
llvm-www/releases/download.html:1.49
--- llvm-www/releases/download.html:1.48Tue Feb 12 00:59:04 2008
+++ llvm-www/releases/download.html Tue Feb 12 01:01:14 2008
@@ -45,7 +45,7 @@
   LLVM-GCC 4.2 Front 
End Binaries for MacOS X/PowerPC (49M)
   LLVM-GCC 4.2 Front 
End Binaries for Red Hat Enterprise Linux4/x86 (42M)
   LLVM-GCC 4.0 Front End 
Binaries for MacOS X/x86 (41M)
-  LLVM-GCC 4.0 Front 
End Binaries for MacOS X/PowerPC (39M)
+  LLVM-GCC 4.0 Front 
End Binaries for MacOS X/PowerPC (39M)
   LLVM-GCC 4.0 Front 
End Binaries for Red Hat Enterprise Linux4/x86 (31M)
   LLVM-GCC 4.2 Front End 
Source Code (49M)
   LLVM-GCC 4.0 Front End 
Source Code (36M)



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


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

2008-02-11 Thread Tanya Lattner


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

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

Update release notes.


---
Diffs of the changes:  (+48 -47)

 ReleaseNotes.html |   95 +++---
 1 files changed, 48 insertions(+), 47 deletions(-)


Index: llvm-www/releases/2.2/docs/ReleaseNotes.html
diff -u llvm-www/releases/2.2/docs/ReleaseNotes.html:1.1 
llvm-www/releases/2.2/docs/ReleaseNotes.html:1.2
--- llvm-www/releases/2.2/docs/ReleaseNotes.html:1.1Tue Feb 12 00:05:03 2008
+++ llvm-www/releases/2.2/docs/ReleaseNotes.htmlTue Feb 12 01:02:12 2008
@@ -545,52 +545,6 @@
   Known problems with the C front-end
 
 
-
-
-  Known problems with the Ada front-end
-
-
-
-The llvm-gcc 4.2 Ada compiler works fairly well, however this is not a mature
-technology and problems should be expected.
-
-The Ada front-end currently only builds on x86-32.  This is mainly due
-to lack of trampoline support (pointers to nested functions) on other 
platforms,
-however it http://llvm.org/PR2006";>also fails to build on x86-64
-which does support trampolines.
-The Ada front-end http://llvm.org/PR2007";>fails to bootstrap.
-Workaround: configure with --disable-bootstrap.
-The c380004 and http://llvm.org/PR2010";>c393010 ACATS tests
-fail (c380004 also fails with gcc-4.2 mainline).
-Many gcc specific Ada tests continue to crash the compiler.
-The -E binder option (exception backtraces)
-http://llvm.org/PR1982";>does not work and will result in programs
-crashing if an exception is raised.  Workaround: do not use -E.
-Only discrete types http://llvm.org/PR1981";>are allowed to start
-or finish at a non-byte offset in a record.  Workaround: do not pack 
records
-or use representation clauses that result in a field of a non-discrete type
-starting or finishing in the middle of a byte.
-The lli interpreter http://llvm.org/PR2009";>considers 'main'
-as generated by the Ada binder to be invalid.
-Workaround: hand edit the file to use pointers for argv and envp rather than
-integers.
-The -fstack-check option http://llvm.org/PR2008";>is 
ignored.
-
-
-
-
-
-  Known problems with the Fortran front-end
-
-
-
-
-
-The llvm-gcc 4.2 gfortran front-end supports a broad range of Fortran 
code, but does
-http://llvm.org/PR1971";>not support EQUIVALENCE yet.
-
-
-
 
 Bugs
 
@@ -722,6 +676,53 @@
 
 
 
+
+
+  Known problems with the Ada front-end
+
+
+
+The llvm-gcc 4.2 Ada compiler works fairly well, however this is not a mature
+technology and problems should be expected.
+
+The Ada front-end currently only builds on x86-32.  This is mainly due
+to lack of trampoline support (pointers to nested functions) on other 
platforms,
+however it http://llvm.org/PR2006";>also fails to build on x86-64
+which does support trampolines.
+The Ada front-end http://llvm.org/PR2007";>fails to bootstrap.
+Workaround: configure with --disable-bootstrap.
+The c380004 and http://llvm.org/PR2010";>c393010 ACATS tests
+fail (c380004 also fails with gcc-4.2 mainline).
+Many gcc specific Ada tests continue to crash the compiler.
+The -E binder option (exception backtraces)
+http://llvm.org/PR1982";>does not work and will result in programs
+crashing if an exception is raised.  Workaround: do not use -E.
+Only discrete types http://llvm.org/PR1981";>are allowed to start
+or finish at a non-byte offset in a record.  Workaround: do not pack 
records
+or use representation clauses that result in a field of a non-discrete type
+starting or finishing in the middle of a byte.
+The lli interpreter http://llvm.org/PR2009";>considers 'main'
+as generated by the Ada binder to be invalid.
+Workaround: hand edit the file to use pointers for argv and envp rather than
+integers.
+The -fstack-check option http://llvm.org/PR2008";>is 
ignored.
+
+
+
+
+
+  Known problems with the Fortran front-end
+
+
+
+
+
+The llvm-gcc 4.2 gfortran front-end supports a broad range of Fortran 
code, but does
+http://llvm.org/PR1971";>not support EQUIVALENCE yet.
+
+
+
+
 
 
   Additional Information
@@ -754,7 +755,7 @@
   src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!">
 
   http://llvm.org/";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2008/02/12 06:05:03 $
+  Last modified: $Date: 2008/02/12 07:02:12 $
 
 
 



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


[llvm-commits] [llvm-gcc-4.2] r46966 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386.h config/rs6000/rs6000.h llvm-abi.h

2008-02-11 Thread Dale Johannesen
Author: johannes
Date: Mon Feb 11 13:45:46 2008
New Revision: 46966

URL: http://llvm.org/viewvc/llvm-project?rev=46966&view=rev
Log:
Treat struct { long long: 29; }; as int sized and
aligned, rather than long long.  ABI issue.
Remove nonfunctional target-specific versions of
LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS.


Modified:
llvm-gcc-4.2/trunk/gcc/config/i386/i386.h
llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h
llvm-gcc-4.2/trunk/gcc/llvm-abi.h

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/i386.h?rev=46966&r1=46965&r2=46966&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/config/i386/i386.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/i386.h Mon Feb 11 13:45:46 2008
@@ -3744,13 +3744,6 @@
 
 /* LLVM ABI definition macros. */
 
-/* LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS - Return true if we should
- * "bitconvert" the specified aggregate tree type info a sequence of integer
- * values.
- */
-#define LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type) \
-  !isSingleElementStructOrArray(type)
-
 /* When -m64 is specified, set the architecture to x86_64-os-blah even if the
  * compiler was configured for i[3456]86-os-blah.
  */

Modified: llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h?rev=46966&r1=46965&r2=46966&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h Mon Feb 11 13:45:46 2008
@@ -3458,13 +3458,6 @@
 F.AddFeature("64bit", TARGET_POWERPC64); \
   }
 
-/* GCC passes single-element structs and arrays in registers.  Other structs
- * are forced into integer registers, e.g. complex float is passed in two 
- * 32-bit GPR's.
- */
-#define LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type) \
-  !isSingleElementStructOrArray(type)
-
 /* When -m64 is specified, set the architecture to powerpc64-os-blah even if 
the
  * compiler was configured for powerpc-os-blah.
  */

Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-abi.h?rev=46966&r1=46965&r2=46966&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/llvm-abi.h (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-abi.h Mon Feb 11 13:45:46 2008
@@ -87,8 +87,9 @@
 
 /// isSingleElementStructOrArray - If this is (recursively) a structure with 
one
 /// field or an array with one element, return the field type, otherwise return
-/// null.
-static tree isSingleElementStructOrArray(tree type) {
+/// null.  If rejectFatBitField, and the single element is a bitfield of a type
+/// that's bigger than the struct, return null anyway.
+static tree isSingleElementStructOrArray(tree type, bool rejectFatBitfield) {
   // Scalars are good.
   if (!isAggregateTreeType(type)) return type;
   
@@ -106,17 +107,22 @@
 
 for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field))
   if (TREE_CODE(Field) == FIELD_DECL) {
-if (!FoundField)
+if (!FoundField) {
+  if (rejectFatBitfield &&
+  TREE_CODE(TYPE_SIZE(type)) == INTEGER_CST &&
+  TREE_INT_CST_LOW(TYPE_SIZE(getDeclaredType(Field))) > 
+  TREE_INT_CST_LOW(TYPE_SIZE(type)))
+return 0;
   FoundField = getDeclaredType(Field);
-else
+} else
   return 0;   // More than one field.
   }
-return FoundField ? isSingleElementStructOrArray(FoundField) : 0;
+return FoundField ? isSingleElementStructOrArray(FoundField, false) : 0;
   case ARRAY_TYPE:
 const ArrayType *Ty = dyn_cast(ConvertType(type));
 if (!Ty || Ty->getNumElements() != 1)
   return 0;
-return isSingleElementStructOrArray(TREE_TYPE(type));
+return isSingleElementStructOrArray(TREE_TYPE(type), false);
   }
 }
 
@@ -151,10 +157,12 @@
 // value should be passed in integer registers.  By default, we do this for all
 // values that are not single-element structs.  This ensures that things like
 // {short,short} are passed in one 32-bit chunk, not as two arguments (which
-// would often be 64-bits).
+// would often be 64-bits).  We also do it for single-element structs when the
+// single element is a bitfield of a type bigger than the struct; the code
+// for field-by-field struct passing does not handle this one right.
 #ifndef LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS
 #define LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(X) \
-   !isSingleElementStructOrArray(X)
+   !isSingleElementStructOrArray(X, true)
 #endif
 
 /// DefaultABI - This class implements the default LLVM ABI where structures 
are
@@ -184,7 +192,7 @@
// FIXME: this is a hack around returning 'complex double' 
by-val
 

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

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www:

www-index.html updated: 1.152 -> 1.153
---
Log message:

2.2 release.


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

 www-index.html |   12 +++-
 1 files changed, 3 insertions(+), 9 deletions(-)


Index: llvm-www/www-index.html
diff -u llvm-www/www-index.html:1.152 llvm-www/www-index.html:1.153
--- llvm-www/www-index.html:1.152   Sun Feb 10 12:10:42 2008
+++ llvm-www/www-index.html Tue Feb 12 01:06:32 2008
@@ -102,9 +102,9 @@
 Latest LLVM Release!
 
 
-  Sep 26, 2007: LLVM 2.1 is now available
+  Feb 11, 2008: LLVM 2.2 is now available
   for download!  LLVM is publicly available under an open source License.  Also, you might want to
+  href="releases/2.2/LICENSE.TXT">License.  Also, you might want to
   check out the new 
   features in SVN that will appear in the next LLVM release.  If
   you want them early, download LLVM through 
@@ -116,14 +116,8 @@
 Upcoming Releases
 
 
-  LLVM 2.2 release schedule:
+  LLVM 2.3 release schedule (coming soon)
 
-Jan 16, 2008: Branch creation/Code Freeze (9PM PST).
-Jan 24, 2008: First round of pre-release testing begins.
-Feb  1, 2008: Pre-release testing ends. 
-Feb  3, 2008: Second round of pre-release testing begins.
-Feb  10, 2008: Pre-release testing ends.
-Feb  11, 2008: 2.2 released.
 
 
 



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


[llvm-commits] [llvm-gcc-4.2] r46983 - in /llvm-gcc-4.2/trunk/gcc: builtin-types.def builtins.def llvm-convert.cpp

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Mon Feb 11 20:50:24 2008
New Revision: 46983

URL: http://llvm.org/viewvc/llvm-project?rev=46983&view=rev
Log:
Port __builtin_annotation from llvm-gcc4.0. This is similar to 
llvm.var.annotation but is applied to expressions.

Modified:
llvm-gcc-4.2/trunk/gcc/builtin-types.def
llvm-gcc-4.2/trunk/gcc/builtins.def
llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

Modified: llvm-gcc-4.2/trunk/gcc/builtin-types.def
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/builtin-types.def?rev=46983&r1=46982&r2=46983&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/builtin-types.def (original)
+++ llvm-gcc-4.2/trunk/gcc/builtin-types.def Mon Feb 11 20:50:24 2008
@@ -303,6 +303,10 @@
 DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
 DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
 BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
+/* APPLE LOCAL begin LLVM */
+DEF_FUNCTION_TYPE_2 (BT_FN_UINT_UINT_CONST_STRING,
+ BT_UINT, BT_UINT, BT_CONST_STRING)
+/* APPLE LOCAL end LLVM */   
 
 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)

Modified: llvm-gcc-4.2/trunk/gcc/builtins.def
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/builtins.def?rev=46983&r1=46982&r2=46983&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/builtins.def (original)
+++ llvm-gcc-4.2/trunk/gcc/builtins.def Mon Feb 11 20:50:24 2008
@@ -691,6 +691,10 @@
 DEF_EXT_LIB_BUILTIN(BUILT_IN__EXIT, "_exit", BT_FN_VOID_INT, 
ATTR_NORETURN_NOTHROW_LIST)
 DEF_C99_BUILTIN(BUILT_IN__EXIT2, "_Exit", BT_FN_VOID_INT, 
ATTR_NORETURN_NOTHROW_LIST)
 
+/* APPLE LOCAL begin LLVM */
+DEF_GCC_BUILTIN(BUILT_IN_ANNOTATION, "annotation", 
BT_FN_UINT_UINT_CONST_STRING, ATTR_NULL)
+/* APPLE LOCAL end LLVM */
+
 /* Implementing nested functions.  */
 DEF_BUILTIN_STUB (BUILT_IN_INIT_TRAMPOLINE, "__builtin_init_trampoline")
 /* LLVM local deleted 1 line */

Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=46983&r1=46982&r2=46983&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Mon Feb 11 20:50:24 2008
@@ -4259,7 +4259,38 @@
 Builder.CreateUnreachable();
 EmitBlock(new BasicBlock(""));
 return true;
-  
+   
+  // Convert annotation built-in to llvm.annotation intrinsic.
+  case BUILT_IN_ANNOTATION: {
+
+// Get file and line number
+location_t locus = EXPR_LOCATION (exp);
+Constant *lineNo = ConstantInt::get(Type::Int32Ty, locus.line);
+Constant *file = ConvertMetadataStringToGV(locus.file);
+const Type *SBP= PointerType::getUnqual(Type::Int8Ty);
+file = ConstantExpr::getBitCast(file, SBP);
+
+// Get arguments.
+tree arglist = TREE_OPERAND(exp, 1);
+Value *ExprVal = Emit(TREE_VALUE(arglist), 0);
+const Type *Ty = ExprVal->getType();
+Value *StrVal = Emit(TREE_VALUE(TREE_CHAIN(arglist)), 0);
+
+SmallVector Args;
+Args.push_back(ExprVal);
+Args.push_back(StrVal);
+Args.push_back(file);
+Args.push_back(lineNo);
+
+assert(Ty && "llvm.annotation arg type may not be null");
+Result = Builder.CreateCall(Intrinsic::getDeclaration(TheModule, 
+  
Intrinsic::annotation, 
+  &Ty, 
+  1),
+Args.begin(), Args.end());
+return true;
+  }
+
 #if 1  // FIXME: Should handle these GCC extensions eventually.
 case BUILT_IN_APPLY_ARGS:
 case BUILT_IN_APPLY:


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


[llvm-commits] [llvm] r46982 - /llvm/branches/release_22/docs/GettingStarted.html

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Mon Feb 11 20:43:50 2008
New Revision: 46982

URL: http://llvm.org/viewvc/llvm-project?rev=46982&view=rev
Log:
release tag.

Modified:
llvm/branches/release_22/docs/GettingStarted.html

Modified: llvm/branches/release_22/docs/GettingStarted.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/docs/GettingStarted.html?rev=46982&r1=46981&r2=46982&view=diff

==
--- llvm/branches/release_22/docs/GettingStarted.html (original)
+++ llvm/branches/release_22/docs/GettingStarted.html Mon Feb 11 20:43:50 2008
@@ -710,6 +710,7 @@
   subdirectories of the 'tags' directory:
 
 
+Release 2.2: RELEASE_22
 Release 2.1: RELEASE_21
 Release 2.0: RELEASE_20
 Release 1.9: RELEASE_19


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


[llvm-commits] [llvm] r46996 - /llvm/trunk/docs/TableGenFundamentals.html

2008-02-11 Thread Bill Wendling
Author: void
Date: Tue Feb 12 01:09:05 2008
New Revision: 46996

URL: http://llvm.org/viewvc/llvm-project?rev=46996&view=rev
Log:
Fix validation errors: di -> dt.

Modified:
llvm/trunk/docs/TableGenFundamentals.html

Modified: llvm/trunk/docs/TableGenFundamentals.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/TableGenFundamentals.html?rev=46996&r1=46995&r2=46996&view=diff

==
--- llvm/trunk/docs/TableGenFundamentals.html (original)
+++ llvm/trunk/docs/TableGenFundamentals.html Tue Feb 12 01:09:05 2008
@@ -304,36 +304,36 @@
 
 
 
-bit
+bit
   A 'bit' is a boolean value that can hold either 0 or 1.
 
-int
+int
   The 'int' type represents a simple 32-bit integer value, such as 5.
 
-string
+string
   The 'string' type represents an ordered sequence of characters of
   arbitrary length.
 
-bits
+bits
   A 'bits' type is an arbitrary, but fixed, size integer that is broken up
   into individual bits.  This type is useful because it can handle some bits
   being defined while others are undefined.
 
-list
+list
   This type represents a list whose elements are some other type.  The
   contained type is arbitrary: it can even be another list type.
 
-Class type
+Class type
   Specifying a class name in a type context means that the defined value
   must be a subclass of the specified class.  This is useful in conjunction 
with
   the list type, for example, to constrain the elements of the
   list to a common base class (e.g., a list can
   only contain definitions derived from the "Register" class).
 
-dag
+dag
   This type represents a nestable directed graph of elements.
 
-code
+code
   This represents a big hunk of text. NOTE: I don't remember why this is
   distinct from string!
 
@@ -359,45 +359,45 @@
 
 
 
-?
+?
   uninitialized field
-0b1001011
+0b1001011
   binary integer value
-07654321
+07654321
   octal integer value (indicated by a leading 0)
-7
+7
   decimal integer value
-0x7F
+0x7F
   hexadecimal integer value
-"foo"
+"foo"
   string value
-[{ ... }]
+[{ ... }]
   code fragment
-[ X, Y, Z ]
+[ X, Y, Z ]
   list value.
-{ a, b, c }
+{ a, b, c }
   initializer for a "bits<3>" value
-value
+value
   value reference
-value{17}
+value{17}
   access to one bit of a value
-value{15-17}
+value{15-17}
   access to multiple bits of a value
-DEF
+DEF
   reference to a record definition
-CLASS
+CLASS
   reference to a new anonymous definition of CLASS with the specified
   template arguments.
-X.Y
+X.Y
   reference to the subfield of a value
-list[4-7,17,2-3]
+list[4-7,17,2-3]
   A slice of the 'list' list, including elements 4,5,6,7,17,2, and 3 from
   it.  Elements may be included multiple times.
-(DEF a, b)
+(DEF a, b)
   a dag value.  The first element is required to be a record definition, 
the
   remaining elements in the list may be arbitrary other values, including 
nested
   `dag' values.
-!strconcat(a, b)
+!strconcat(a, b)
   A string value that is the result of concatenating the 'a' and 'b'
   strings.
 
@@ -747,7 +747,7 @@
   http://jigsaw.w3.org/css-validator/check/referer";>http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!">
   http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!" />
+  src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!">
 
   mailto:[EMAIL PROTECTED]">Chris Lattner
   http://llvm.org";>LLVM Compiler Infrastructure


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


[llvm-commits] [llvm] r46979 - /llvm/trunk/lib/Target/IA64/README

2008-02-11 Thread Nate Begeman
Author: sampo
Date: Mon Feb 11 17:47:56 2008
New Revision: 46979

URL: http://llvm.org/viewvc/llvm-project?rev=46979&view=rev
Log:
Stuff noticed while grepping code


Modified:
llvm/trunk/lib/Target/IA64/README

Modified: llvm/trunk/lib/Target/IA64/README
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/IA64/README?rev=46979&r1=46978&r2=46979&view=diff

==
--- llvm/trunk/lib/Target/IA64/README (original)
+++ llvm/trunk/lib/Target/IA64/README Mon Feb 11 17:47:56 2008
@@ -1,59 +1,11 @@
-*** README for the LLVM IA64 Backend "Version 0.01" - March 18, 2005
-*** Quote for this version:
-
-  "Kaori and Hitomi are naughty!!"
-
-
-Congratulations, you have found:
-
- 
-* @@@   @@@   @@@  @@@  @@ *
-* @@@   @@@   @@@  @@@  @@@*
-* @@!   @@!   @@!  @@@  @@! @@! @@!*
-* [EMAIL PROTECTED]   [EMAIL PROTECTED]   [EMAIL PROTECTED]  @!@  
[EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED]*
-* @!!   @!!   @!@  [EMAIL PROTECTED]  @!! !!@ @!@*
-* !!!   !!!   [EMAIL PROTECTED]  !!!  [EMAIL PROTECTED]   ! [EMAIL 
PROTECTED]*
-* !!:   !!:   :!:  !!:  !!: !!:*
-*  :!:   :!:   ::!!:!   :!: :!:*
-*  ::    :: ::: :: *
-* : :: : :  : :: : : :   :  :  *
-*  *
-*  *
-*  @@   @@@  @@@   @@@   @@ @@   @@@   *
-*    @@@   @@@     @@@     *
-* @@!  @@@  @@[EMAIL PROTECTED]@@@   @@!  @@!  @@@  !@@  @@[EMAIL 
PROTECTED]   *
-* [EMAIL PROTECTED]  @!@  [EMAIL PROTECTED]@[EMAIL PROTECTED]   [EMAIL 
PROTECTED]  [EMAIL PROTECTED]  @!@  [EMAIL PROTECTED] [EMAIL 
PROTECTED]@!   *
-* @!@  [EMAIL PROTECTED]  @!@ [EMAIL PROTECTED]   !!@  @[EMAIL 
PROTECTED]@[EMAIL PROTECTED]  !!@@[EMAIL PROTECTED]@!! @!!   *
-* [EMAIL PROTECTED]  !!!  [EMAIL PROTECTED]  !!!   !!!  [EMAIL PROTECTED]  
@[EMAIL PROTECTED]  !!!  [EMAIL PROTECTED]   *
-* !!:  !!!  !!:  !!!   !!:  !!:  !!!  !:!  !:!  :!!:!:!!:  *
-* :!:  !:!  :!:  !:!   :!:  :!:  !:!  :!:  !:!  !:::!!:::  *
-* : ::   ::   ::::  ::   :::   :::   :::   *
-*  : :  :   :::: :   : :   :: : ::::   *
-*  *
-
-* Bow down, bow down, before the power of IA64! Or be crushed, *
-* be crushed, by its jolly registers of doom!! *
-
-
-DEVELOPMENT PLAN:
-
-   _  you are   2005   maybe 2005   20062006 and
-  /   here|   |  |   beyond 
- vv   v  v|
-  v
-CLEAN UPADD INSTRUCTION  ADD  PLAY WITH
-INSTRUCTION --> SCHEDULING AND  -->  JIT-->DYNAMIC --> FUTURE WORK
-SELECTION   BUNDLINGSUPPORT REOPTIMIZATION
-
-DISCLAIMER AND PROMISE:
-
-As of the time of this release, you are probably better off using Intel C/C++
-or GCC. The performance of the code emitted right now is, in a word,
-terrible. Check back in a few months - the story will be different then,
-I guarantee it.
-
 TODO:
-
+  - Un-bitrot ISel
+  - Hook up If-Conversion a la ARM target
+  - Hook up all branch analysis functions
+  - Instruction scheduling
+  - Bundling
+  - Dynamic Optimization
+  - Testing and bugfixing
   - stop passing FP args in both FP *and* integer regs when not required
   - allocate low (nonstacked) registers more aggressively
   - clean up and thoroughly test the isel patterns.
@@ -65,14 +17,11 @@
 (we will avoid the mess that is:
  http://gcc.gnu.org/ml/gcc/2003-12/msg00832.html )
   - instruction scheduling (h! ;)
-  - write truly inspirational documentation
-  - if-conversion (predicate database/knowledge? etc etc)
   - counted loop support
   - make integer + FP mul/div more clever (we have fixed pseudocode atm)
   - track and use comparison complements
 
 INFO:
-
   - we are strictly LP64 here, no support for ILP32 on HP-UX. Linux users
 don't need to worry about this.
   - i have instruction scheduling/bundling pseudocode, that really works
@@ -80,7 +29,6 @@
 so, before you go write your own, send me an email!
 
 KNOWN DEFECTS AT THE CURRENT TIME:
-
   - C++ vtables contain naked function pointers, not function descriptors,

[llvm-commits] [llvm] r46998 - in /llvm/trunk/test/CodeGen/X86: fold-mul-lohi.ll stride-nine-with-base-reg.ll stride-reuse.ll

2008-02-11 Thread Evan Cheng
Author: evancheng
Date: Tue Feb 12 01:22:46 2008
New Revision: 46998

URL: http://llvm.org/viewvc/llvm-project?rev=46998&view=rev
Log:
Fix some test cases.

Modified:
llvm/trunk/test/CodeGen/X86/fold-mul-lohi.ll
llvm/trunk/test/CodeGen/X86/stride-nine-with-base-reg.ll
llvm/trunk/test/CodeGen/X86/stride-reuse.ll

Modified: llvm/trunk/test/CodeGen/X86/fold-mul-lohi.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fold-mul-lohi.ll?rev=46998&r1=46997&r2=46998&view=diff

==
--- llvm/trunk/test/CodeGen/X86/fold-mul-lohi.ll (original)
+++ llvm/trunk/test/CodeGen/X86/fold-mul-lohi.ll Tue Feb 12 01:22:46 2008
@@ -1,5 +1,5 @@
 ; RUN: llvm-as < %s | llc -march=x86 | not grep lea
-; RUN: llvm-as < %s | llc -march=x86-64 | not grep lea
+; RUN: llvm-as < %s | llc -march=x86-64 -relocation-model=pic | not grep lea
 
 @B = external global [1000 x i8], align 32
 @A = external global [1000 x i8], align 32

Modified: llvm/trunk/test/CodeGen/X86/stride-nine-with-base-reg.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/stride-nine-with-base-reg.ll?rev=46998&r1=46997&r2=46998&view=diff

==
--- llvm/trunk/test/CodeGen/X86/stride-nine-with-base-reg.ll (original)
+++ llvm/trunk/test/CodeGen/X86/stride-nine-with-base-reg.ll Tue Feb 12 
01:22:46 2008
@@ -1,5 +1,5 @@
 ; RUN: llvm-as < %s | llc -march=x86 -relocation-model=static | grep lea | 
count 1
-; RUN: llvm-as < %s | llc -march=x86-64 | not grep lea
+; RUN: llvm-as < %s | llc -march=x86-64 -relocation-model=pic | not grep lea
 
 ; For x86 there's an lea above the loop. In both cases, there shouldn't
 ; be any lea instructions inside the loop.

Modified: llvm/trunk/test/CodeGen/X86/stride-reuse.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/stride-reuse.ll?rev=46998&r1=46997&r2=46998&view=diff

==
--- llvm/trunk/test/CodeGen/X86/stride-reuse.ll (original)
+++ llvm/trunk/test/CodeGen/X86/stride-reuse.ll Tue Feb 12 01:22:46 2008
@@ -1,5 +1,5 @@
 ; RUN: llvm-as < %s | llc -march=x86 | not grep lea
-; RUN: llvm-as < %s | llc -march=x86-64 | not grep lea
+; RUN: llvm-as < %s | llc -march=x86-64 -relocation-model=pic | not grep lea
 
 @B = external global [1000 x float], align 32
 @A = external global [1000 x float], align 32


___
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

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/demo:

index.cgi updated: 1.81 -> 1.82
---
Log message:

2.2 release.


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

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


Index: llvm-www/demo/index.cgi
diff -u llvm-www/demo/index.cgi:1.81 llvm-www/demo/index.cgi:1.82
--- llvm-www/demo/index.cgi:1.81Mon Oct  1 17:52:08 2007
+++ llvm-www/demo/index.cgi Tue Feb 12 01:25:41 2008
@@ -26,8 +26,8 @@
 
 my @PREPENDPATHDIRS =
   (  
-'/home/vadve/shared/llvm-gcc4.0-2.1/bin/',
-'/home/vadve/shared/llvm-2.1/Release/bin');
+'/home/vadve/shared/llvm-gcc4.2/bin/',
+'/home/vadve/shared/llvm-2.2/Release/bin');
 
 my $defaultsrc = "#include \n#include \n\n" .
  "int power(int X) {\n  if (X == 0) return 1;\n" .



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


Re: [llvm-commits] Fix for PR1798 (ScalarEvolution)

2008-02-11 Thread Wojciech Matyjewicz
Nick Lewycky wrote:
>> After your question, I have realized that 32 bits for the divisor may be
>> too much... Using "only" 16 bits would allow us to handle AddRecs up to
>> length 8. If you agree 16 is a safe bitwidth, I'll change it. However,
>> the maximum operation you ask about will still be necessary.
> 
> Optimally, we'd use APInt and get the right length up front, but there's 
> no need for that to hold up this patch.

Ok. I've added a comment for that.

I've also lifted the restriction that the dividend should be at least 32
bits wide. Currently, the dividend is computed with the minimum
necessary bitwidth and extended, if needed, just before the division.

The patch is here:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080211/058097.html

I think it's a good idea to keep the PR open. It will prevent us from
forgetting to turn off the hack in future...

Wojtek

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


[llvm-commits] [llvm] r46956 - /llvm/trunk/include/llvm/Target/TargetLowering.h

2008-02-11 Thread Duncan Sands
Author: baldrick
Date: Mon Feb 11 05:09:23 2008
New Revision: 46956

URL: http://llvm.org/viewvc/llvm-project?rev=46956&view=rev
Log:
Add arbitrary integer support to getRegisterType and
getNumRegisters.  This is needed for calling functions
with apint parameters or return values.

Modified:
llvm/trunk/include/llvm/Target/TargetLowering.h

Modified: llvm/trunk/include/llvm/Target/TargetLowering.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLowering.h?rev=46956&r1=46955&r2=46956&view=diff

==
--- llvm/trunk/include/llvm/Target/TargetLowering.h (original)
+++ llvm/trunk/include/llvm/Target/TargetLowering.h Mon Feb 11 05:09:23 2008
@@ -434,13 +434,18 @@
   (void)getVectorTypeBreakdown(VT, VT1, NumIntermediates, RegisterVT);
   return RegisterVT;
 }
+if (MVT::isInteger(VT)) {
+  return getRegisterType(getTypeToTransformTo(VT));
+}
 assert(0 && "Unsupported extended type!");
   }
 
   /// getNumRegisters - Return the number of registers that this ValueType will
   /// eventually require.  This is one for any types promoted to live in larger
   /// registers, but may be more than one for types (like i64) that are split
-  /// into pieces.
+  /// into pieces.  For types like i140, which are first promoted then 
expanded,
+  /// it is the number of registers needed to hold all the bits of the original
+  /// type.  For an i140 on a 32 bit machine this means 5 registers.
   unsigned getNumRegisters(MVT::ValueType VT) const {
 if (!MVT::isExtendedVT(VT)) {
   assert(VT < array_lengthof(NumRegistersForVT));
@@ -451,6 +456,11 @@
   unsigned NumIntermediates;
   return getVectorTypeBreakdown(VT, VT1, NumIntermediates, VT2);
 }
+if (MVT::isInteger(VT)) {
+  unsigned BitWidth = MVT::getSizeInBits(VT);
+  unsigned RegWidth = MVT::getSizeInBits(getRegisterType(VT));
+  return (BitWidth + RegWidth - 1) / RegWidth;
+}
 assert(0 && "Unsupported extended type!");
   }
 


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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/HistoricalNotes/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/HistoricalNotes:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs/HistoricalNotes added to the 
repository


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

 0 files changed



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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/img/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/img:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs/img added to the repository


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

 0 files changed



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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/CommandGuide/ps/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/CommandGuide/ps:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs/CommandGuide/ps added to the 
repository


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

 0 files changed



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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/

2008-02-11 Thread Tanya Lattner


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

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs added to the repository


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

 0 files changed



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


[llvm-commits] [llvm] r46953 - in /llvm/trunk: lib/CodeGen/RegAllocLocal.cpp test/CodeGen/PowerPC/2008-02-09-LocalRegAllocAssert.ll

2008-02-11 Thread Evan Cheng
Author: evancheng
Date: Mon Feb 11 02:30:52 2008
New Revision: 46953

URL: http://llvm.org/viewvc/llvm-project?rev=46953&view=rev
Log:
Determine whether a spill kills the register it's spilling before insertion 
rather than trying to undo the kill marker afterwards.

Added:
llvm/trunk/test/CodeGen/PowerPC/2008-02-09-LocalRegAllocAssert.ll
Modified:
llvm/trunk/lib/CodeGen/RegAllocLocal.cpp

Modified: llvm/trunk/lib/CodeGen/RegAllocLocal.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocLocal.cpp?rev=46953&r1=46952&r2=46953&view=diff

==
--- llvm/trunk/lib/CodeGen/RegAllocLocal.cpp (original)
+++ llvm/trunk/lib/CodeGen/RegAllocLocal.cpp Mon Feb 11 02:30:52 2008
@@ -303,17 +303,12 @@
 const TargetRegisterClass *RC = MF->getRegInfo().getRegClass(VirtReg);
 int FrameIndex = getStackSpaceFor(VirtReg, RC);
 DOUT << " to stack slot #" << FrameIndex;
-TII->storeRegToStackSlot(MBB, I, PhysReg, true, FrameIndex, RC);
-
 // If the instruction reads the register that's spilled, (e.g. this can
 // happen if it is a move to a physical register), then the spill
 // instruction is not a kill.
-if (I != MBB.end() && I->findRegisterUseOperandIdx(PhysReg) != -1) {
-  MachineBasicBlock::iterator StoreMI = prior(I);
-  int Idx = StoreMI->findRegisterUseOperandIdx(PhysReg, true);
-  assert(Idx != -1 && "Unrecognized spill instruction!");
-  StoreMI->getOperand(Idx).setIsKill(false);
-}
+bool isKill = !(I != MBB.end() &&
+I->findRegisterUseOperandIdx(PhysReg) != -1);
+TII->storeRegToStackSlot(MBB, I, PhysReg, isKill, FrameIndex, RC);
 ++NumStores;   // Update statistics
   }
 

Added: llvm/trunk/test/CodeGen/PowerPC/2008-02-09-LocalRegAllocAssert.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/2008-02-09-LocalRegAllocAssert.ll?rev=46953&view=auto

==
--- llvm/trunk/test/CodeGen/PowerPC/2008-02-09-LocalRegAllocAssert.ll (added)
+++ llvm/trunk/test/CodeGen/PowerPC/2008-02-09-LocalRegAllocAssert.ll Mon Feb 
11 02:30:52 2008
@@ -0,0 +1,10 @@
+; RUN: llvm-as < %s | llc -mtriple=powerpc-apple-darwin -regalloc=local
+
+define i32 @bork(i64 %foo, i64 %bar) {
+entry:
+%tmp = load i64* null, align 8  ;  [#uses=2]
+%tmp2 = icmp ule i64 %tmp, 0;  [#uses=1]
+%min = select i1 %tmp2, i64 %tmp, i64 0   ;  [#uses=1]
+store i64 %min, i64* null, align 8
+ret i32 0
+}


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


Re: [llvm-commits] [llvm-gcc-4.2] r46726 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

2008-02-11 Thread Duncan Sands
> > the current LLVM implementation means that anyone using threading  
> > needs
> > to not do bitfield accesses, since the compiler generated code could
> > cause trouble.
> 
> This is not handled by LLVM, this is handled by FE that is translating  
> source code into LLVM IR. Unless all front-ends enforce this, we can  
> not claim that LLVM guarantees bit-field thread safety (I do think, it  
> is convenient if tools support bit-field thread safety). If you are  
> suggesting to handle this some how inside LLVM itself then I mis- 
> understood your comment.

I was talking about how llvm-gcc handles bitfields.  Sorry for the confusion.

Ciao,

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


[llvm-commits] [llvm-gcc-4.2] r46989 - /llvm-gcc-4.2/tags/RELEASE_22/

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Mon Feb 11 23:20:15 2008
New Revision: 46989

URL: http://llvm.org/viewvc/llvm-project?rev=46989&view=rev
Log:
Tag release 2.2.

Added:
llvm-gcc-4.2/tags/RELEASE_22/
  - copied from r46988, llvm-gcc-4.2/branches/release_22/

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


[llvm-commits] CVS: llvm-www/header.incl

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www:

header.incl updated: 1.65 -> 1.66
---
Log message:

Release announcement.


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

 header.incl |1 +
 1 files changed, 1 insertion(+)


Index: llvm-www/header.incl
diff -u llvm-www/header.incl:1.65 llvm-www/header.incl:1.66
--- llvm-www/header.incl:1.65   Tue Feb 12 01:07:40 2008
+++ llvm-www/header.inclTue Feb 12 01:29:47 2008
@@ -69,6 +69,7 @@
 Status Updates
 
   
+  http://lists.cs.uiuc.edu/pipermail/llvm-announce/2008-February/25.html";>Feb
 11, 2008
   http://lists.cs.uiuc.edu/pipermail/llvm-announce/2007-September/24.html";>Sep
 26, 2007
   http://lists.cs.uiuc.edu/pipermail/llvm-announce/2007-May/23.html";>May
 23, 2007
   http://lists.cs.uiuc.edu/pipermail/llvm-announce/2007-February/21.html";>Feb
 21, 2007



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


[llvm-commits] [llvm] r46995 - /llvm/trunk/docs/TableGenFundamentals.html

2008-02-11 Thread Bill Wendling
Author: void
Date: Tue Feb 12 01:06:19 2008
New Revision: 46995

URL: http://llvm.org/viewvc/llvm-project?rev=46995&view=rev
Log:
Reformatting. Adding "doc_code" divisions for code examples. Updated some
of the examples to reflect the current .TD files.

Modified:
llvm/trunk/docs/TableGenFundamentals.html

Modified: llvm/trunk/docs/TableGenFundamentals.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/TableGenFundamentals.html?rev=46995&r1=46994&r2=46995&view=diff

==
--- llvm/trunk/docs/TableGenFundamentals.html (original)
+++ llvm/trunk/docs/TableGenFundamentals.html Tue Feb 12 01:06:19 2008
@@ -68,8 +68,8 @@
 of TableGen is the LLVM code generator.
 
 Note that if you work on TableGen much, and use emacs or vim, that you can
-find an emacs "TableGen mode" and a vim language file in
-llvm/utils/emacs and llvm/utils/vim directory of your LLVM
+find an emacs "TableGen mode" and a vim language file in the
+llvm/utils/emacs and llvm/utils/vim directories of your LLVM
 distribution, respectively.
 
 
@@ -83,11 +83,11 @@
 of which are considered 'records'.
 
 TableGen records have a unique name, a list of values, and a list of
-superclasses.  The list of values is main data that TableGen builds for each
-record, it is this that holds the domain specific information for the
+superclasses.  The list of values is the main data that TableGen builds for 
each
+record; it is this that holds the domain specific information for the
 application.  The interpretation of this data is left to a specific TableGen backend, but the structure and format rules are
-taken care of and fixed by TableGen.
+taken care of and are fixed by TableGen.
 
 TableGen definitions are the concrete form of 'records'.  These
 generally do not have any undefined values, and are marked with the
@@ -95,7 +95,7 @@
 
 TableGen classes are abstract records that are used to build and
 describe other records.  These 'classes' allow the end-user to build
-abstractions for either the domain they are targetting (such as "Register",
+abstractions for either the domain they are targeting (such as "Register",
 "RegisterClass", and "Instruction" in the LLVM code generator) or for the
 implementor to help factor out common properties of records (such as "FPInst",
 which is used to represent floating point instructions in the X86 backend).
@@ -119,42 +119,71 @@
 the various definitions expand to fully.  Running this on the X86.td
 file prints this (at the time of this writing):
 
+
 
 ...
-def ADDrr8 {// Instruction X86Inst I2A8 Pattern
-  string Name = "add";
+def ADD32rr {   // Instruction X86Inst I
   string Namespace = "X86";
+  dag OutOperandList = (outs GR32:$dst);
+  dag InOperandList = (ins GR32:$src1, GR32:$src2);
+  string AsmString = "add{l}\t{$src2, $dst|$dst, $src2}";
+  list Pattern = [(set GR32:$dst, (add GR32:$src1, 
GR32:$src2))];
   list Uses = [];
-  list Defs = [];
+  list Defs = [EFLAGS];
+  list Predicates = [];
+  int CodeSize = 3;
+  int AddedComplexity = 0;
   bit isReturn = 0;
   bit isBranch = 0;
+  bit isIndirectBranch = 0;
+  bit isBarrier = 0;
   bit isCall = 0;
+  bit isSimpleLoad = 0;
+  bit mayLoad = 0;
+  bit mayStore = 0;
+  bit isImplicitDef = 0;
   bit isTwoAddress = 1;
+  bit isConvertibleToThreeAddress = 1;
+  bit isCommutable = 1;
   bit isTerminator = 0;
-  dag Pattern = (set R8, (plus R8, R8));
-  bits<8> Opcode = { 0, 0, 0, 0, 0, 0, 0, 0 };
+  bit isReMaterializable = 0;
+  bit isPredicable = 0;
+  bit hasDelaySlot = 0;
+  bit usesCustomDAGSchedInserter = 0;
+  bit hasCtrlDep = 0;
+  bit isNotDuplicable = 0;
+  bit hasSideEffects = 0;
+  bit mayHaveSideEffects = 0;
+  bit neverHasSideEffects = 0;
+  InstrItinClass Itinerary = NoItinerary;
+  string Constraints = "";
+  string DisableEncoding = "";
+  bits<8> Opcode = { 0, 0, 0, 0, 0, 0, 0, 1 };
   Format Form = MRMDestReg;
-  bits<5> FormBits = { 0, 0, 0, 1, 1 };
-  ArgType Type = Arg8;
-  bits<3> TypeBits = { 0, 0, 1 };
+  bits<6> FormBits = { 0, 0, 0, 0, 1, 1 };
+  ImmType ImmT = NoImm;
+  bits<3> ImmTypeBits = { 0, 0, 0 };
   bit hasOpSizePrefix = 0;
-  bit printImplicitUses = 0;
+  bit hasAdSizePrefix = 0;
   bits<4> Prefix = { 0, 0, 0, 0 };
+  bit hasREX_WPrefix = 0;
   FPFormat FPForm = ?;
   bits<3> FPFormBits = { 0, 0, 0 };
 }
 ...
 
+
 
-This definition corresponds to an 8-bit register-register add instruction in
+This definition corresponds to a 32-bit register-register add instruction in
 the X86.  The string after the 'def' string indicates the name of the
-record ("ADDrr8" in this case), and the comment at the end of the line
-indicates the superclasses of the definition.  The body of the record contains
-all of the data that TableGen assembled for the record, indicating that the
-instruction is part of the "X86" namespace, should be printed as "add"
-in the assembly file, it is a two-address instruction, has a par

[llvm-commits] [llvm] r46959 - in /llvm/trunk: lib/Analysis/ScalarEvolution.cpp test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll

2008-02-11 Thread Wojciech Matyjewicz
Author: wmat
Date: Mon Feb 11 12:37:34 2008
New Revision: 46959

URL: http://llvm.org/viewvc/llvm-project?rev=46959&view=rev
Log:
If the LHS of the comparison is a loop-invariant we also want to move it 
to the RHS. This simple change allows to compute loop iteration count 
for loops with condition similar to the one in the testcase (which seems 
to be quite common).

Added:
llvm/trunk/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll
Modified:
llvm/trunk/lib/Analysis/ScalarEvolution.cpp

Modified: llvm/trunk/lib/Analysis/ScalarEvolution.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ScalarEvolution.cpp?rev=46959&r1=46958&r2=46959&view=diff

==
--- llvm/trunk/lib/Analysis/ScalarEvolution.cpp (original)
+++ llvm/trunk/lib/Analysis/ScalarEvolution.cpp Mon Feb 11 12:37:34 2008
@@ -1819,8 +1819,8 @@
 
   // At this point, we would like to compute how many iterations of the 
   // loop the predicate will return true for these inputs.
-  if (isa(LHS) && !isa(RHS)) {
-// If there is a constant, force it into the RHS.
+  if (LHS->isLoopInvariant(L) && !RHS->isLoopInvariant(L)) {
+// If there is a loop-invariant, force it into the RHS.
 std::swap(LHS, RHS);
 Cond = ICmpInst::getSwappedPredicate(Cond);
   }

Added: llvm/trunk/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll?rev=46959&view=auto

==
--- llvm/trunk/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll 
(added)
+++ llvm/trunk/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll 
Mon Feb 11 12:37:34 2008
@@ -0,0 +1,15 @@
+; RUN: llvm-as < %s | opt -scalar-evolution -analyze | not grep Unpredictable
+
+define void @foo(i32 %n) {
+entry:
+   br label %header
+header:
+   %i = phi i32 [ 0, %entry ], [ %i.inc, %next ]
+   %cond = icmp sgt i32 %n, %i
+   br i1 %cond, label %next, label %return
+next:
+%i.inc = add i32 %i, 1
+   br label %header
+return:
+   ret void
+}


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


[llvm-commits] [llvm] r46981 - /llvm/trunk/docs/GettingStarted.html

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Mon Feb 11 20:42:55 2008
New Revision: 46981

URL: http://llvm.org/viewvc/llvm-project?rev=46981&view=rev
Log:
Add 2.2 release tag.

Modified:
llvm/trunk/docs/GettingStarted.html

Modified: llvm/trunk/docs/GettingStarted.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/GettingStarted.html?rev=46981&r1=46980&r2=46981&view=diff

==
--- llvm/trunk/docs/GettingStarted.html (original)
+++ llvm/trunk/docs/GettingStarted.html Mon Feb 11 20:42:55 2008
@@ -710,6 +710,7 @@
   subdirectories of the 'tags' directory:
 
 
+Release 2.2: RELEASE_22
 Release 2.1: RELEASE_21
 Release 2.0: RELEASE_20
 Release 1.9: RELEASE_19


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


[llvm-commits] CVS: llvm-www/header.incl

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www:

header.incl updated: 1.64 -> 1.65
---
Log message:

2.2 release.


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

 header.incl |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm-www/header.incl
diff -u llvm-www/header.incl:1.64 llvm-www/header.incl:1.65
--- llvm-www/header.incl:1.64   Wed Jan  9 12:37:54 2008
+++ llvm-www/header.inclTue Feb 12 01:07:40 2008
@@ -39,7 +39,7 @@
 Download!
 
 Download now:
-LLVM 2.1
+LLVM 2.2
 
 
 Try the
@@ -47,7 +47,7 @@
 
 
 View the open-source
-license
+license
 
 
 



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


[llvm-commits] [llvm-gcc-4.2] r46958 - in /llvm-gcc-4.2/trunk/gcc: config/i386/llvm-i386-target.h llvm-types.cpp

2008-02-11 Thread Dale Johannesen
Author: johannes
Date: Mon Feb 11 12:03:06 2008
New Revision: 46958

URL: http://llvm.org/viewvc/llvm-project?rev=46958&view=rev
Log:
Choose an SSE vector-containing type for the constructed
type that represents a union, if the union contains such
a type.


Modified:
llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
llvm-gcc-4.2/trunk/gcc/llvm-types.cpp

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h?rev=46958&r1=46957&r2=46958&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h Mon Feb 11 12:03:06 
2008
@@ -83,6 +83,15 @@
 }   \
   }
 
+/* Aggregates containing SSE vectors are aligned at 16 bytes as parameters;
+   while long double has GCC alignment of 16 bytes (correct for struct layout)
+   but is only 4 byte aligned as a parameter.  So if a union type contains an
+   SSE vector, use that as the basis for the constructed LLVM struct. */
+#define TARGET_LLVM_COMPARE_UNION_FIELDS(curType, newType, curAlign, newAlign) 
\
+  (newAlign==curAlign && TARGET_SSE && 
\
+   TheTarget->getTargetLowering()->getByValTypeAlignment(newType) >
\
+   TheTarget->getTargetLowering()->getByValTypeAlignment(curType))
+
 #ifdef LLVM_ABI_H
 extern bool llvm_x86_should_pass_aggregate_in_memory(tree, const Type *);
 

Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46958&r1=46957&r2=46958&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Mon Feb 11 12:03:06 2008
@@ -33,6 +33,7 @@
 #include "llvm/TypeSymbolTable.h"
 #include "llvm/Target/TargetData.h"
 #include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetLowering.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringExtras.h"
@@ -1137,7 +1138,7 @@
   // 'sret' functions cannot be 'readnone' or 'readonly'.
   if (ABIConverter.isStructReturn())
 RAttributes &= ~(ParamAttr::ReadNone|ParamAttr::ReadOnly);
-  
+
   // Compute whether the result needs to be zext or sext'd.
   RAttributes |= HandleArgumentExtension(TREE_TYPE(type));
 
@@ -2124,6 +2125,8 @@
 
 /// ConvertUNION - We know that 'type' is a UNION_TYPE or a QUAL_UNION_TYPE:
 /// convert it to an LLVM type.
+/// This involves creating a struct with the right size and alignment. In
+/// some cases this is target dependent.
 const Type *TypeConverter::ConvertUNION(tree type, tree orig_type) {
   if (const Type *Ty = GET_TYPE_LLVM(type)) {
 // If we already compiled this type, and if it was not a forward
@@ -2170,17 +2173,25 @@
 // Select TheTy as union type if it meets one of the following criteria
 // 1) UnionTy is 0
 // 2) TheTy alignment is more then UnionTy
-// 3) TheTy size is greater than UnionTy size and TheTy alignment is equal 
to UnionTy
+// 3) TheTy size is greater than UnionTy size and TheTy alignment is equal
+//to UnionTy
 // 4) TheTy size is greater then UnionTy size and TheTy is packed
+//FIXME there is no check for packed?
 bool useTheTy = false;
 if (UnionTy == 0)
   useTheTy = true;
 else if (Align > MaxAlign)
   useTheTy = true;
+#ifdef TARGET_LLVM_COMPARE_UNION_FIELDS
+else
+  useTheTy = TARGET_LLVM_COMPARE_UNION_FIELDS(UnionTy, TheTy,
+   Align, MaxAlign);
+#else
 else if (MaxAlign == Align && Size > MaxSize)
   useTheTy = true;
-else if (Size > MaxSize)
+else if (Size > MaxSize)// FIXME really?  Seems wrong to lower 
alignment
   useTheTy = true;
+#endif
 
 if (useTheTy) {
   UnionTy = TheTy;


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


[llvm-commits] [llvm] r46999 - /llvm/trunk/test/CFrontend/2008-02-11-AnnotateBuiltin.c

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Tue Feb 12 01:46:33 2008
New Revision: 46999

URL: http://llvm.org/viewvc/llvm-project?rev=46999&view=rev
Log:
Test case for annotate builtin.

Added:
llvm/trunk/test/CFrontend/2008-02-11-AnnotateBuiltin.c

Added: llvm/trunk/test/CFrontend/2008-02-11-AnnotateBuiltin.c
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-02-11-AnnotateBuiltin.c?rev=46999&view=auto

==
--- llvm/trunk/test/CFrontend/2008-02-11-AnnotateBuiltin.c (added)
+++ llvm/trunk/test/CFrontend/2008-02-11-AnnotateBuiltin.c Tue Feb 12 01:46:33 
2008
@@ -0,0 +1,7 @@
+// RUN: %llvmgcc %s -S -o - | llvm-as | llvm-dis | grep llvm.annotation
+
+int main() {
+  int x = 0;
+  return __builtin_annotation(x, "annotate");
+}
+


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


[llvm-commits] [llvm] r46957 - in /llvm/trunk: include/llvm/ADT/APFloat.h include/llvm/ADT/FoldingSet.h include/llvm/Support/AlignOf.h lib/CodeGen/SelectionDAG/SelectionDAG.cpp lib/Support/APFloat.cpp

2008-02-11 Thread Ted Kremenek
Author: kremenek
Date: Mon Feb 11 11:24:50 2008
New Revision: 46957

URL: http://llvm.org/viewvc/llvm-project?rev=46957&view=rev
Log:
Added "Profile" method to APFloat for use with FoldingSet.

Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary
objects to a profile via dispatch to FoldingSetTrait::Profile().

Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their
functionality is now replaced using the above mentioned member template.

Modified:
llvm/trunk/include/llvm/ADT/APFloat.h
llvm/trunk/include/llvm/ADT/FoldingSet.h
llvm/trunk/include/llvm/Support/AlignOf.h
llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
llvm/trunk/lib/Support/APFloat.cpp
llvm/trunk/lib/Support/FoldingSet.cpp

Modified: llvm/trunk/include/llvm/ADT/APFloat.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/APFloat.h?rev=46957&r1=46956&r2=46957&view=diff

==
--- llvm/trunk/include/llvm/ADT/APFloat.h (original)
+++ llvm/trunk/include/llvm/ADT/APFloat.h Mon Feb 11 11:24:50 2008
@@ -181,6 +181,10 @@
 APFloat(const APFloat &);
 ~APFloat();
 
+/// Profile - Used to insert APFloat objects, or objects that contain
+///  APFloat objects, into FoldingSets.
+void Profile(FoldingSetNodeID& NID) const;
+
 /// @brief Used by the Bitcode serializer to emit APInts to Bitcode.
 void Emit(Serializer& S) const;
 

Modified: llvm/trunk/include/llvm/ADT/FoldingSet.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/FoldingSet.h?rev=46957&r1=46956&r2=46957&view=diff

==
--- llvm/trunk/include/llvm/ADT/FoldingSet.h (original)
+++ llvm/trunk/include/llvm/ADT/FoldingSet.h Mon Feb 11 11:24:50 2008
@@ -178,6 +178,19 @@
   virtual void GetNodeProfile(FoldingSetNodeID &ID, Node *N) const = 0;
 };
 
+//===--===//
+/// FoldingSetTrait - This trait class is used to define behavior of how
+///  to "profile" (in the FoldingSet parlance) an object of a given type.
+///  The default behavior is to invoke a 'Profile' method on an object, but
+///  through template specialization the behavior can be tailored for specific
+///  types.  Combined with the FoldingSetNodeWrapper classs, one can add 
objects
+///  to FoldingSets that were not originally designed to have that behavior.
+///
+template struct FoldingSetTrait {
+  static inline void Profile(const T& X, FoldingSetNodeID& ID) { 
X.Profile(ID);}
+  static inline void Profile(T& X, FoldingSetNodeID& ID) { X.Profile(ID); }
+};
+  
 //======//
 /// FoldingSetNodeID - This class is used to gather all the unique data bits of
 /// a node.  When all the bits are gathered this class is used to produce a
@@ -206,10 +219,11 @@
   void AddInteger(uint64_t I);
   void AddFloat(float F);
   void AddDouble(double D);
-  void AddAPFloat(const APFloat& apf);
-  void AddAPInt(const APInt& api);
   void AddString(const std::string &String);
   
+  template 
+  inline void Add(const T& x) { FoldingSetTrait::Profile(x, *this); }
+  
   /// clear - Clear the accumulated profile, allowing this FoldingSetNodeID
   ///  object to be used to compute a new profile.
   inline void clear() { Bits.clear(); }
@@ -227,19 +241,6 @@
 typedef FoldingSetImpl::Node FoldingSetNode;
 template class FoldingSetIterator;
 template class FoldingSetBucketIterator;
-
-//===--===//
-/// FoldingSetTrait - This trait class is used to define behavior of how
-///  to "profile" (in the FoldingSet parlance) an object of a given type.
-///  The default behavior is to invoke a 'Profile' method on an object, but
-///  through template specialization the behavior can be tailored for specific
-///  types.  Combined with the FoldingSetNodeWrapper classs, one can add 
objects
-///  to FoldingSets that were not originally designed to have that behavior.
-///
-template struct FoldingSetTrait {
-  static inline void Profile(const T& X, FoldingSetNodeID& ID) { 
X.Profile(ID);}
-  static inline void Profile(T& X, FoldingSetNodeID& ID) { X.Profile(ID); }
-};
   
 
//===--===//
 /// FoldingSet - This template class is used to instantiate a specialized

Modified: llvm/trunk/include/llvm/Support/AlignOf.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/AlignOf.h?rev=46957&r1=46956&r2=46957&view=diff

==
--- llvm/trunk/include/llvm/Support/AlignOf.h (original)
+++ llvm/trunk/include/llvm/Support/AlignOf.h Mon Feb 11 11:24:50 2008
@@ -35,6 +35,10 @@
 template 
 struct AlignOf {
   enum { Alignment = sizeof(Alignme

[llvm-commits] [llvm-gcc-4.0] r47000 - /llvm-gcc-4.0/trunk/gcc/builtins.def

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Tue Feb 12 01:47:45 2008
New Revision: 47000

URL: http://llvm.org/viewvc/llvm-project?rev=47000&view=rev
Log:
Remove extra underscore.

Modified:
llvm-gcc-4.0/trunk/gcc/builtins.def

Modified: llvm-gcc-4.0/trunk/gcc/builtins.def
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/builtins.def?rev=47000&r1=46999&r2=47000&view=diff

==
--- llvm-gcc-4.0/trunk/gcc/builtins.def (original)
+++ llvm-gcc-4.0/trunk/gcc/builtins.def Tue Feb 12 01:47:45 2008
@@ -634,7 +634,7 @@
 DEF_C99_BUILTIN(BUILT_IN__EXIT2, "_Exit", BT_FN_VOID_INT, 
ATTR_NORETURN_NOTHROW_LIST)
 
 /* APPLE LOCAL begin LLVM */
-DEF_GCC_BUILTIN(BUILT_IN_ANNOTATION, "_annotation", 
BT_FN_UINT_UINT_CONST_STRING, ATTR_NULL)
+DEF_GCC_BUILTIN(BUILT_IN_ANNOTATION, "annotation", 
BT_FN_UINT_UINT_CONST_STRING, ATTR_NULL)
 /* APPLE LOCAL end LLVM */
 
 /* Implementing nested functions.  */


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


Re: [llvm-commits] [llvm-gcc-4.2] r46958 - in /llvm-gcc-4.2/trunk/gcc: config/i386/llvm-i386-target.h llvm-types.cpp

2008-02-11 Thread Dale Johannesen
This fixes an ABI issue with unions on i386 (Darwin for sure, and I  
hope Linux as well).
I believe the FIXMEs I added indicate a latent bug, but I'm not sure  
what the intent was, so could whoever wrote this code originally take  
a look?
(As an aside, assuming that there is a struct type that gets passed  
the same way as any union type strikes me as dangerous.  I don't think  
there's any reason such a struct needs to exist.)

On Feb 11, 2008, at 10:03 AM, Dale Johannesen wrote:

> Author: johannes
> Date: Mon Feb 11 12:03:06 2008
> New Revision: 46958
>
> URL: http://llvm.org/viewvc/llvm-project?rev=46958&view=rev
> Log:
> Choose an SSE vector-containing type for the constructed
> type that represents a union, if the union contains such
> a type.
>
>
> Modified:
>llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
>llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
>
> Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h
> URL: 
> http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h?rev=46958&r1=46957&r2=46958&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ==
> --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h (original)
> +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h Mon Feb 11  
> 12:03:06 2008
> @@ -83,6 +83,15 @@
> }   \
>   }
>
> +/* Aggregates containing SSE vectors are aligned at 16 bytes as  
> parameters;
> +   while long double has GCC alignment of 16 bytes (correct for  
> struct layout)
> +   but is only 4 byte aligned as a parameter.  So if a union type  
> contains an
> +   SSE vector, use that as the basis for the constructed LLVM  
> struct. */
> +#define TARGET_LLVM_COMPARE_UNION_FIELDS(curType, newType,  
> curAlign, newAlign) \
> +  (newAlign==curAlign && TARGET_SSE  
> && \
> +   TheTarget->getTargetLowering()->getByValTypeAlignment(newType)  
> >\
> +   TheTarget->getTargetLowering()->getByValTypeAlignment(curType))
> +
> #ifdef LLVM_ABI_H
> extern bool llvm_x86_should_pass_aggregate_in_memory(tree, const  
> Type *);
>
>
> Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46958&r1=46957&r2=46958&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ==
> --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original)
> +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Mon Feb 11 12:03:06 2008
> @@ -33,6 +33,7 @@
> #include "llvm/TypeSymbolTable.h"
> #include "llvm/Target/TargetData.h"
> #include "llvm/Target/TargetMachine.h"
> +#include "llvm/Target/TargetLowering.h"
> #include "llvm/Assembly/Writer.h"
> #include "llvm/ADT/DenseMap.h"
> #include "llvm/ADT/StringExtras.h"
> @@ -1137,7 +1138,7 @@
>   // 'sret' functions cannot be 'readnone' or 'readonly'.
>   if (ABIConverter.isStructReturn())
> RAttributes &= ~(ParamAttr::ReadNone|ParamAttr::ReadOnly);
> -
> +
>   // Compute whether the result needs to be zext or sext'd.
>   RAttributes |= HandleArgumentExtension(TREE_TYPE(type));
>
> @@ -2124,6 +2125,8 @@
>
> /// ConvertUNION - We know that 'type' is a UNION_TYPE or a  
> QUAL_UNION_TYPE:
> /// convert it to an LLVM type.
> +/// This involves creating a struct with the right size and  
> alignment. In
> +/// some cases this is target dependent.
> const Type *TypeConverter::ConvertUNION(tree type, tree orig_type) {
>   if (const Type *Ty = GET_TYPE_LLVM(type)) {
> // If we already compiled this type, and if it was not a forward
> @@ -2170,17 +2173,25 @@
> // Select TheTy as union type if it meets one of the following  
> criteria
> // 1) UnionTy is 0
> // 2) TheTy alignment is more then UnionTy
> -// 3) TheTy size is greater than UnionTy size and TheTy  
> alignment is equal to UnionTy
> +// 3) TheTy size is greater than UnionTy size and TheTy  
> alignment is equal
> +//to UnionTy
> // 4) TheTy size is greater then UnionTy size and TheTy is packed
> +//FIXME there is no check for packed?
> bool useTheTy = false;
> if (UnionTy == 0)
>   useTheTy = true;
> else if (Align > MaxAlign)
>   useTheTy = true;
> +#ifdef TARGET_LLVM_COMPARE_UNION_FIELDS
> +else
> +  useTheTy = TARGET_LLVM_COMPARE_UNION_FIELDS(UnionTy, TheTy,
> +   Align, MaxAlign);
> +#else
> else if (MaxAlign == Align && Size > MaxSize)
>   useTheTy = true;
> -else if (Size > MaxSize)
> +else if (Size > MaxSize)// FIXME really?  Seems wrong to  
> lower alignment
>   useTheTy = true;
> +#endif
>
> if (useTheTy) {
>   UnionTy = TheTy;
>
>
> ___
> llvm-commits mailing list
> llvm-commits@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-

[llvm-commits] [llvm-gcc-4.0] r46988 - /llvm-gcc-4.0/tags/RELEASE_22/

2008-02-11 Thread Tanya Lattner
Author: tbrethou
Date: Mon Feb 11 23:19:58 2008
New Revision: 46988

URL: http://llvm.org/viewvc/llvm-project?rev=46988&view=rev
Log:
Tag release 2.2

Added:
llvm-gcc-4.0/tags/RELEASE_22/
  - copied from r46987, llvm-gcc-4.0/branches/release_22/

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


[llvm-commits] [llvm] r46985 - /llvm/trunk/docs/ReleaseNotes.html

2008-02-11 Thread Chris Lattner
Author: lattner
Date: Mon Feb 11 23:07:12 2008
New Revision: 46985

URL: http://llvm.org/viewvc/llvm-project?rev=46985&view=rev
Log:
remove unknown details

Modified:
llvm/trunk/docs/ReleaseNotes.html

Modified: llvm/trunk/docs/ReleaseNotes.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/ReleaseNotes.html?rev=46985&r1=46984&r2=46985&view=diff

==
--- llvm/trunk/docs/ReleaseNotes.html (original)
+++ llvm/trunk/docs/ReleaseNotes.html Mon Feb 11 23:07:12 2008
@@ -303,10 +303,8 @@
 advantage of its predication features.
 Bruno added PIC support to the MIPS backend, fixed many bugs and improved
 support for architecture variants.
-Arnold Schwaighofer added support for X86 tail calls (limitations?
-details?).
-Evan contributed several enhancements to Darwin/x86 debug information,
-and improvements at -O0 (details?).
+Arnold Schwaighofer added initial support for X86 tail calls.
+Evan contributed several enhancements to Darwin/x86 debug information.
 Duncan added x86-64 support for trampolines (pointers to nested 
functions).
 
   


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


[llvm-commits] [llvm] r46978 - /llvm/trunk/include/llvm/ADT/APInt.h

2008-02-11 Thread Dan Gohman
Author: djg
Date: Mon Feb 11 17:45:14 2008
New Revision: 46978

URL: http://llvm.org/viewvc/llvm-project?rev=46978&view=rev
Log:
Correct the order of the arguments in the examples in the comments
for APInt::getBitsSet. And fix an off-by-one bug in "wrapping" mode.

Modified:
llvm/trunk/include/llvm/ADT/APInt.h

Modified: llvm/trunk/include/llvm/ADT/APInt.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/APInt.h?rev=46978&r1=46977&r2=46978&view=diff

==
--- llvm/trunk/include/llvm/ADT/APInt.h (original)
+++ llvm/trunk/include/llvm/ADT/APInt.h Mon Feb 11 17:45:14 2008
@@ -371,9 +371,9 @@
 
   /// Constructs an APInt value that has a contiguous range of bits set. The
   /// bits from loBit to hiBit will be set. All other bits will be zero. For
-  /// example, with parameters(32, 15, 0) you would get 0x. If hiBit is
+  /// example, with parameters(32, 0, 15) you would get 0x. If hiBit is
   /// less than loBit then the set bits "wrap". For example, with 
-  /// parameters (32, 3, 28), you would get 0xF00F. 
+  /// parameters (32, 28, 3), you would get 0xF00F. 
   /// @param numBits the intended bit width of the result
   /// @param loBit the index of the lowest bit set.
   /// @param hiBit the index of the highest bit set.
@@ -384,7 +384,7 @@
 assert(loBit < numBits && "loBit out of range");
 if (hiBit < loBit)
   return getLowBitsSet(numBits, hiBit+1) |
- getHighBitsSet(numBits, numBits-loBit+1);
+ getHighBitsSet(numBits, numBits-loBit);
 return getLowBitsSet(numBits, hiBit-loBit+1).shl(loBit);
   }
 


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


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

2008-02-11 Thread Jonathan Johnson


Changes in directory llvm-www/devmtg/current:

index.html updated: 1.5 -> 1.6
---
Log message:

Updated unconfirmed attendees list


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

 index.html |8 +++-
 1 files changed, 7 insertions(+), 1 deletion(-)


Index: llvm-www/devmtg/current/index.html
diff -u llvm-www/devmtg/current/index.html:1.5 
llvm-www/devmtg/current/index.html:1.6
--- llvm-www/devmtg/current/index.html:1.5  Thu Jan 10 20:27:44 2008
+++ llvm-www/devmtg/current/index.html  Mon Feb 11 17:24:15 2008
@@ -39,6 +39,9 @@
Owen AndersonApple, Inc.
Chandler Carruth
Evan ChengApple, Inc.
+   Eric ChristopherApple, Inc.
+   Samuel Crow
+   Kurt HarrimanGreenplum
Robert HundtGoogle
Dale JohannesenApple, Inc.
Jonathan JohnsonAlacatia Labs, Inc.
@@ -51,10 +54,13 @@
Devang PatelApple, Inc.
Joseph RanieriAlacatia Labs, Inc.
Chuck RoseAdobe Systems Incorporated
+   Robert StaudingerUniversity of Salzburg, 
Austria
Mike StumpApple, Inc.
Bill WendlingApple, Inc.
+   Robert Zeh
+   Chuck (Chengyan) ZhaoUniversity of 
Toronto

-   Total unconfirmed: 17
+   Total unconfirmed: 23
If your name is misspelled, or organization affiliation isn't 
correct, please mailto:[EMAIL PROTECTED]">email us, and we'll 
correct it.
 
 



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


[llvm-commits] [llvm] r46955 - in /llvm/trunk: include/llvm/Analysis/ScalarEvolution.h include/llvm/Analysis/ScalarEvolutionExpander.h include/llvm/Analysis/ScalarEvolutionExpressions.h lib/Analysis/S

2008-02-11 Thread Wojciech Matyjewicz
Author: wmat
Date: Mon Feb 11 05:03:14 2008
New Revision: 46955

URL: http://llvm.org/viewvc/llvm-project?rev=46955&view=rev
Log:
Fix PR1798 - an error in the evaluation of SCEVAddRecExpr at an 
arbitrary iteration.

The patch:
1) changes SCEVSDivExpr into SCEVUDivExpr,
2) replaces PartialFact() function with BinomialCoefficient(); the 
computations (essentially, the division) in BinomialCoefficient() are 
performed with the apprioprate bitwidth necessary to avoid overflow; 
unsigned division is used instead of the signed one.

Computations in BinomialCoefficient() require support from the code 
generator for APInts. Currently, we use a hack rounding up the 
neccessary bitwidth to the nearest power of 2. The hack is easy to turn 
off in future.

One remaining issue: we assume the divisor of the binomial coefficient 
formula can be computed accurately using 16 bits. It means we can handle 
AddRecs of length up to 9. In future, we should use APInts to evaluate 
the divisor.

Thanks to Nicholas for cooperation!

Modified:
llvm/trunk/include/llvm/Analysis/ScalarEvolution.h
llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h
llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h
llvm/trunk/lib/Analysis/ScalarEvolution.cpp
llvm/trunk/test/Analysis/ScalarEvolution/2007-11-14-SignedAddRec.ll

Modified: llvm/trunk/include/llvm/Analysis/ScalarEvolution.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/ScalarEvolution.h?rev=46955&r1=46954&r2=46955&view=diff

==
--- llvm/trunk/include/llvm/Analysis/ScalarEvolution.h (original)
+++ llvm/trunk/include/llvm/Analysis/ScalarEvolution.h Mon Feb 11 05:03:14 2008
@@ -225,7 +225,7 @@
   Ops.push_back(RHS);
   return getMulExpr(Ops);
 }
-SCEVHandle getSDivExpr(const SCEVHandle &LHS, const SCEVHandle &RHS);
+SCEVHandle getUDivExpr(const SCEVHandle &LHS, const SCEVHandle &RHS);
 SCEVHandle getAddRecExpr(const SCEVHandle &Start, const SCEVHandle &Step,
  const Loop *L);
 SCEVHandle getAddRecExpr(std::vector &Operands,

Modified: llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h?rev=46955&r1=46954&r2=46955&view=diff

==
--- llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h (original)
+++ llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h Mon Feb 11 
05:03:14 2008
@@ -126,10 +126,10 @@
 
 Value *visitMulExpr(SCEVMulExpr *S);
 
-Value *visitSDivExpr(SCEVSDivExpr *S) {
+Value *visitUDivExpr(SCEVUDivExpr *S) {
   Value *LHS = expand(S->getLHS());
   Value *RHS = expand(S->getRHS());
-  return InsertBinop(Instruction::SDiv, LHS, RHS, InsertPt);
+  return InsertBinop(Instruction::UDiv, LHS, RHS, InsertPt);
 }
 
 Value *visitAddRecExpr(SCEVAddRecExpr *S);

Modified: llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h?rev=46955&r1=46954&r2=46955&view=diff

==
--- llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h (original)
+++ llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h Mon Feb 11 
05:03:14 2008
@@ -25,7 +25,7 @@
 // These should be ordered in terms of increasing complexity to make the
 // folders simpler.
 scConstant, scTruncate, scZeroExtend, scSignExtend, scAddExpr, scMulExpr,
-scSDivExpr, scAddRecExpr, scSMaxExpr, scUnknown, scCouldNotCompute
+scUDivExpr, scAddRecExpr, scSMaxExpr, scUnknown, scCouldNotCompute
   };
 
   
//======//
@@ -322,16 +322,16 @@
 
 
   
//======//
-  /// SCEVSDivExpr - This class represents a binary signed division operation.
+  /// SCEVUDivExpr - This class represents a binary unsigned division 
operation.
   ///
-  class SCEVSDivExpr : public SCEV {
+  class SCEVUDivExpr : public SCEV {
 friend class ScalarEvolution;
 
 SCEVHandle LHS, RHS;
-SCEVSDivExpr(const SCEVHandle &lhs, const SCEVHandle &rhs)
-  : SCEV(scSDivExpr), LHS(lhs), RHS(rhs) {}
+SCEVUDivExpr(const SCEVHandle &lhs, const SCEVHandle &rhs)
+  : SCEV(scUDivExpr), LHS(lhs), RHS(rhs) {}
 
-virtual ~SCEVSDivExpr();
+virtual ~SCEVUDivExpr();
   public:
 const SCEVHandle &getLHS() const { return LHS; }
 const SCEVHandle &getRHS() const { return RHS; }
@@ -353,7 +353,7 @@
   if (L == LHS && R == RHS)
 return this;
   else
-return SE.getSDivExpr(L, R);
+return SE.getUDivExpr(L, R);
 }
 
 
@@ -363,9 +363,9 @@
 void print(std::ostream 

[llvm-commits] [llvm] r46997 - /llvm/trunk/docs/TableGenFundamentals.html

2008-02-11 Thread Bill Wendling
Author: void
Date: Tue Feb 12 01:12:46 2008
New Revision: 46997

URL: http://llvm.org/viewvc/llvm-project?rev=46997&view=rev
Log:
More violation fixes.

Modified:
llvm/trunk/docs/TableGenFundamentals.html

Modified: llvm/trunk/docs/TableGenFundamentals.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/TableGenFundamentals.html?rev=46997&r1=46996&r2=46997&view=diff

==
--- llvm/trunk/docs/TableGenFundamentals.html (original)
+++ llvm/trunk/docs/TableGenFundamentals.html Tue Feb 12 01:12:46 2008
@@ -301,9 +301,7 @@
 allows it to describe a wide range of information conveniently and compactly.
 The TableGen types are:
 
-
 
-
 bit
   A 'bit' is a boolean value that can hold either 0 or 1.
 
@@ -337,7 +335,6 @@
   This represents a big hunk of text. NOTE: I don't remember why this is
   distinct from string!
 
-
 
 To date, these types have been sufficient for describing things that
 TableGen has been used for, but it is straight-forward to extend this list if
@@ -357,7 +354,6 @@
 natural syntax and flavor for the application.  The current expression forms
 supported include:
 
-
 
 ?
   uninitialized field
@@ -401,7 +397,6 @@
   A string value that is the result of concatenating the 'a' and 'b'
   strings.
 
-
 
 Note that all of the values have rules specifying how they convert to values
 for different types.  These rules allow you to assign a value like "7"


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


[llvm-commits] [llvm] r46954 - in /llvm/trunk: include/llvm/Target/TargetLowering.h lib/CodeGen/SelectionDAG/DAGCombiner.cpp lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/LegalizeT

2008-02-11 Thread Duncan Sands
Author: baldrick
Date: Mon Feb 11 04:37:04 2008
New Revision: 46954

URL: http://llvm.org/viewvc/llvm-project?rev=46954&view=rev
Log:
Add a isBigEndian method to complement isLittleEndian.

Modified:
llvm/trunk/include/llvm/Target/TargetLowering.h
llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp

Modified: llvm/trunk/include/llvm/Target/TargetLowering.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLowering.h?rev=46954&r1=46953&r2=46954&view=diff

==
--- llvm/trunk/include/llvm/Target/TargetLowering.h (original)
+++ llvm/trunk/include/llvm/Target/TargetLowering.h Mon Feb 11 04:37:04 2008
@@ -85,6 +85,7 @@
   TargetMachine &getTargetMachine() const { return TM; }
   const TargetData *getTargetData() const { return TD; }
 
+  bool isBigEndian() const { return !IsLittleEndian; }
   bool isLittleEndian() const { return IsLittleEndian; }
   MVT::ValueType getPointerTy() const { return PointerTy; }
   MVT::ValueType getShiftAmountTy() const { return ShiftAmountTy; }

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46954&r1=46953&r2=46954&view=diff

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Mon Feb 11 04:37:04 2008
@@ -1739,7 +1739,7 @@
 unsigned PtrOff = LVTStoreBytes - EVTStoreBytes;
 unsigned Alignment = LN0->getAlignment();
 SDOperand NewPtr = LN0->getBasePtr();
-if (!TLI.isLittleEndian()) {
+if (TLI.isBigEndian()) {
   NewPtr = DAG.getNode(ISD::ADD, PtrType, NewPtr,
DAG.getConstant(PtrOff, PtrType));
   Alignment = MinAlign(Alignment, PtrOff);
@@ -3086,7 +3086,7 @@
 MVT::ValueType PtrType = N0.getOperand(1).getValueType();
 // For big endian targets, we need to adjust the offset to the pointer to
 // load the correct bytes.
-if (!TLI.isLittleEndian()) {
+if (TLI.isBigEndian()) {
   unsigned LVTStoreBits = MVT::getStoreSizeInBits(N0.getValueType());
   unsigned EVTStoreBits = MVT::getStoreSizeInBits(EVT);
   ShAmt = LVTStoreBits - EVTStoreBits - ShAmt;
@@ -3460,7 +3460,7 @@
 }
 
 // For big endian targets, swap the order of the pieces of each element.
-if (!TLI.isLittleEndian())
+if (TLI.isBigEndian())
   std::reverse(Ops.end()-NumOutputsPerInput, Ops.end());
   }
   MVT::ValueType VT = MVT::getVectorType(DstEltVT, Ops.size());
@@ -4386,7 +4386,7 @@
   uint64_t Val = CFP->getValueAPF().convertToAPInt().getZExtValue();
   SDOperand Lo = DAG.getConstant(Val & 0x, MVT::i32);
   SDOperand Hi = DAG.getConstant(Val >> 32, MVT::i32);
-  if (!TLI.isLittleEndian()) std::swap(Lo, Hi);
+  if (TLI.isBigEndian()) std::swap(Lo, Hi);
 
   int SVOffset = ST->getSrcValueOffset();
   unsigned Alignment = ST->getAlignment();

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=46954&r1=46953&r2=46954&view=diff

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Mon Feb 11 04:37:04 2008
@@ -2117,7 +2117,7 @@
   ExpandOp(Tmp2, Lo, Hi);
 
   // Big endian systems want the hi reg first.
-  if (!TLI.isLittleEndian())
+  if (TLI.isBigEndian())
 std::swap(Lo, Hi);
   
   if (Hi.Val)
@@ -2256,7 +2256,7 @@
 uint64_t IntVal 
=CFP->getValueAPF().convertToAPInt().getZExtValue();
 SDOperand Lo = DAG.getConstant(uint32_t(IntVal), MVT::i32);
 SDOperand Hi = DAG.getConstant(uint32_t(IntVal >>32), MVT::i32);
-if (!TLI.isLittleEndian()) std::swap(Lo, Hi);
+if (TLI.isBigEndian()) std::swap(Lo, Hi);
 
 Lo = DAG.getStore(Tmp1, Lo, Tmp2, ST->getSrcValue(),
   SVOffset, isVolatile, Alignment);
@@ -2356,7 +2356,7 @@
   ExpandOp(Node->getOperand(1), Lo, Hi);
   IncrementSize = Hi.Val ? MVT::getSizeInBits(Hi.getValueType())/8 : 0;
 
-  if (!TLI.isLittleEndian())
+  if (TLI.isBigEndian())
 std::swap(Lo, Hi);
 }
 
@@ -5766,7 +5766,7 @@
 // Remember that we legalized the chain.
 Hi = LegalizeOp(Hi);
 AddLegalizedOperand(Op.getValue(1), Hi.getValue(1));
-if (!TLI.isLittleEndian())
+if (TLI.isBigEndian())
   std::swap(Lo, Hi);
 break;
   }
@@ -5809,7 +5809,7 @@
 
   

Re: [llvm-commits] [llvm] r46850 - in /llvm/trunk: lib/Target/X86/X86ISelDAGToDAG.cpp lib/Target/X86/X86Instr64bit.td lib/Target/X86/X86InstrInfo.td lib/Target/X86/X86Subtarget.cpp lib/Target/X86/X86S

2008-02-11 Thread Dan Gohman
Hi Evan,

This breaks these:

test/CodeGen/X86/fold-mul-lohi.ll
test/CodeGen/X86/stride-nine-with-base-reg.ll
test/CodeGen/X86/stride-reuse.ll

on Linux. These tests should probably explicitly set the relocation  
model to
static so that they always test what they're intended to test.

Dan

On Feb 7, 2008, at 12:53 AM, Evan Cheng wrote:

> Author: evancheng
> Date: Thu Feb  7 02:53:49 2008
> New Revision: 46850
>
> URL: http://llvm.org/viewvc/llvm-project?rev=46850&view=rev
> Log:
> Fix a x86-64 codegen deficiency. Allow gv + offset when using rip  
> addressing mode.
> Before:
> _main:
>subq$8, %rsp
>leaq_X(%rip), %rax
>movsd   8(%rax), %xmm1
>movss   _X(%rip), %xmm0
>call_t
>xorl%ecx, %ecx
>movl%ecx, %eax
>addq$8, %rsp
>ret
> Now:
> _main:
>subq$8, %rsp
>movsd   _X+8(%rip), %xmm1
>movss   _X(%rip), %xmm0
>call_t
>xorl%ecx, %ecx
>movl%ecx, %eax
>addq$8, %rsp
>ret
>
> Notice there is another idiotic codegen issue that needs to be fixed  
> asap:
> xorl%ecx, %ecx
> movl%ecx, %eax
>
> Added:
>llvm/trunk/test/CodeGen/X86/x86-64-gv-offset.ll
> Modified:
>llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
>llvm/trunk/lib/Target/X86/X86Instr64bit.td
>llvm/trunk/lib/Target/X86/X86InstrInfo.td
>llvm/trunk/lib/Target/X86/X86Subtarget.cpp
>llvm/trunk/lib/Target/X86/X86Subtarget.h
>llvm/trunk/test/CodeGen/X86/pic_jumptable.ll
>
> Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp?rev=46850&r1=46849&r2=46850&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ==
> --- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Feb  7  
> 02:53:49 2008
> @@ -63,7 +63,7 @@
>   int FrameIndex;
> } Base;
>
> -bool isRIPRel; // RIP relative?
> +bool isRIPRel; // RIP as base?
> unsigned Scale;
> SDOperand IndexReg;
> unsigned Disp;
> @@ -664,7 +664,9 @@
>   case X86ISD::Wrapper: {
> bool is64Bit = Subtarget->is64Bit();
> // Under X86-64 non-small code model, GV (and friends) are 64- 
> bits.
> -if (is64Bit && TM.getCodeModel() != CodeModel::Small)
> +// Also, base and index reg must be 0 in order to use rip as  
> base.
> +if (is64Bit && (TM.getCodeModel() != CodeModel::Small ||
> +AM.Base.Reg.Val || AM.IndexReg.Val))
>   break;
> if (AM.GV != 0 || AM.CP != 0 || AM.ES != 0 || AM.JT != -1)
>   break;
> @@ -672,39 +674,27 @@
> // been picked, we can't fit the result available in the  
> register in the
> // addressing mode. Duplicate GlobalAddress or ConstantPool as  
> displacement.
> if (!AlreadySelected || (AM.Base.Reg.Val && AM.IndexReg.Val)) {
> -  bool isStatic = TM.getRelocationModel() == Reloc::Static;
>   SDOperand N0 = N.getOperand(0);
> -  // Mac OS X X86-64 lower 4G address is not available.
> -  bool isAbs32 = !is64Bit ||
> -(isStatic && Subtarget->hasLow4GUserSpaceAddress());
>   if (GlobalAddressSDNode *G =  
> dyn_cast(N0)) {
> GlobalValue *GV = G->getGlobal();
> -if (isAbs32 || isRoot) {
> -  AM.GV = GV;
> -  AM.Disp += G->getOffset();
> -  AM.isRIPRel = !isAbs32;
> -  return false;
> -}
> +AM.GV = GV;
> +AM.Disp += G->getOffset();
> +AM.isRIPRel = is64Bit;
> +return false;
>   } else if (ConstantPoolSDNode *CP =  
> dyn_cast(N0)) {
> -if (isAbs32 || isRoot) {
> -  AM.CP = CP->getConstVal();
> -  AM.Align = CP->getAlignment();
> -  AM.Disp += CP->getOffset();
> -  AM.isRIPRel = !isAbs32;
> -  return false;
> -}
> +AM.CP = CP->getConstVal();
> +AM.Align = CP->getAlignment();
> +AM.Disp += CP->getOffset();
> +AM.isRIPRel = is64Bit;
> +return false;
>   } else if (ExternalSymbolSDNode *S  
> =dyn_cast(N0)) {
> -if (isAbs32 || isRoot) {
> -  AM.ES = S->getSymbol();
> -  AM.isRIPRel = !isAbs32;
> -  return false;
> -}
> +AM.ES = S->getSymbol();
> +AM.isRIPRel = is64Bit;
> +return false;
>   } else if (JumpTableSDNode *J = dyn_cast(N0)) {
> -if (isAbs32 || isRoot) {
> -  AM.JT = J->getIndex();
> -  AM.isRIPRel = !isAbs32;
> -  return false;
> -}
> +AM.JT = J->getIndex();
> +AM.isRIPRel = is64Bit;
> +return false;
>   }
> }
> break;
> @@ -719,7 +709,7 @@
> break;
>
>   case ISD::SHL:
> -if (AlreadySelected || AM.IndexReg.Val != 0 || AM.Scale != 1)
> +if (AlreadySelected || AM.IndexReg.Val != 0 || AM.Scale != 1 ||  
> AM.isRIPR

[llvm-commits] [llvm] r46991 - /llvm/trunk/docs/CommandGuide/Makefile

2008-02-11 Thread Chris Lattner
Author: lattner
Date: Tue Feb 12 00:07:47 2008
New Revision: 46991

URL: http://llvm.org/viewvc/llvm-project?rev=46991&view=rev
Log:
heavily  refactor this to have less duplication between BUILD_FOR_WEBSITE mode 
and not.

Modified:
llvm/trunk/docs/CommandGuide/Makefile

Modified: llvm/trunk/docs/CommandGuide/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/CommandGuide/Makefile?rev=46991&r1=46990&r2=46991&view=diff

==
--- llvm/trunk/docs/CommandGuide/Makefile (original)
+++ llvm/trunk/docs/CommandGuide/Makefile Tue Feb 12 00:07:47 2008
@@ -8,67 +8,59 @@
 
##===--===##
 
 ifdef BUILD_FOR_WEBSITE
-
 # This special case is for keeping the CommandGuide on the LLVM web site
 # up to date automatically as the documents are checked in. It must build
 # the POD files to HTML only and keep them in the src directories. It must also
 # build in an unconfigured tree, hence the ifdef. To use this, run
 # make -s BUILD_FOR_WEBSITE=1 inside the cvs commit script.
+SRC_DOC_DIR=
+DST_HTML_DIR=html/
+DST_MAN_DIR=man/man1/
+DST_PS_DIR=ps/
 
-POD  := $(wildcard *.pod)
-HTML := $(patsubst %.pod, html/%.html, $(POD))
-MAN  := $(patsubst %.pod, man/man1/%.1, $(POD))
-PS   := $(patsubst %.pod, ps/%.ps, $(POD))
-
-all: $(HTML) $(MAN) $(PS)
-
-.SUFFIXES:
-.SUFFIXES: .html .pod .1 .ps
-
-html/%.html: %.pod
-   pod2html --css=manpage.css --htmlroot=. \
- --podpath=. --noindex --infile=$< --outfile=$@ --title=$*
-
-man/man1/%.1: %.pod
-   pod2man --release=CVS --center="LLVM Command Guide" $< $@
-
-ps/%.ps: man/man1/%.1
-   groff -Tps -man $< > $@
+# If we are in BUILD_FOR_WEBSITE mode, default to the all target.
+all:: html man ps
 
 clean:
rm -f pod2htm*.*~~ $(HTML) $(MAN) $(PS)
+else
 
-else 
-
+# Otherwise, if not in BUILD_FOR_WEBSITE mode, use the project info.
 LEVEL := ../..
-
 include $(LEVEL)/Makefile.common
 
-POD := $(wildcard $(PROJ_SRC_DIR)/*.pod)
+SRC_DOC_DIR=$(PROJ_SRC_DIR)/
+DST_HTML_DIR=$(PROJ_OBJ_DIR)/
+DST_MAN_DIR=$(PROJ_OBJ_DIR)/
+DST_PS_DIR=$(PROJ_OBJ_DIR)/
 
-EXTRA_DIST := $(POD) index.html
+endif
 
-HTML = $(patsubst $(PROJ_SRC_DIR)/%.pod, $(PROJ_OBJ_DIR)/%.html, $(POD))
-MAN = $(patsubst $(PROJ_SRC_DIR)/%.pod, $(PROJ_OBJ_DIR)/%.1, $(POD))
-PS = $(patsubst $(PROJ_SRC_DIR)/%.pod, $(PROJ_OBJ_DIR)/%.ps, $(POD))
+
+POD  := $(wildcard $(SRC_DOC_DIR)*.pod)
+HTML := $(patsubst $(SRC_DOC_DIR)%.pod, $(DST_HTML_DIR)%.html, $(POD))
+MAN  := $(patsubst $(SRC_DOC_DIR)%.pod, $(DST_MAN_DIR)%.1, $(POD))
+PS   := $(patsubst $(SRC_DOC_DIR)%.pod, $(DST_PS_DIR)%.ps, $(POD))
 
 .SUFFIXES:
 .SUFFIXES: .html .pod .1 .ps
 
-$(HTML) : html/.dir man/.dir man/man1/.dir ps/.dir
+$(DST_HTML_DIR)%.html: %.pod $(DST_HTML_DIR)/.dir
+   pod2html --css=manpage.css --htmlroot=. \
+ --podpath=. --noindex --infile=$< --outfile=$@ --title=$*
 
-html: $(HTML)
+$(DST_MAN_DIR)%.1: %.pod $(DST_MAN_DIR)/.dir
+   pod2man --release=CVS --center="LLVM Command Guide" $< $@
+
+$(DST_PS_DIR)%.ps: $(DST_MAN_DIR)%.1 $(DST_PS_DIR)/.dir
+   groff -Tps -man $< > $@
 
-$(PROJ_OBJ_DIR)/%.html: %.pod
-   $(POD2HTML) --css=manpage.css --htmlroot=. --podpath=. \
- --noindex --infile=$< --outfile=$@ --title=$*
-
-$(PROJ_OBJ_DIR)/%.1: %.pod
-   $(POD2MAN) --release=$(LLVMVersion) \
- --center="LLVM Command Guide" $< $@
 
-$(PROJ_OBJ_DIR)/%.ps: $(PROJ_OBJ_DIR)/%.1
-   $(GROFF) -Tps -man $< > $@
+html: $(HTML)
+man: $(MAN)
+ps: $(PS)
+
+EXTRA_DIST := $(POD) index.html
 
 clean-local::
$(Verb) $(RM) -f pod2htm*.*~~ $(HTML) $(MAN) $(PS)
@@ -97,5 +89,3 @@
 printvars::
$(Echo) "POD: " '$(POD)'
$(Echo) "HTML   : " '$(HTML)'
-
-endif


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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/tutorial/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/tutorial:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs/tutorial added to the 
repository


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

 0 files changed



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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/CommandGuide/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/CommandGuide:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs/CommandGuide added to the 
repository


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

 0 files changed



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


[llvm-commits] CVS: llvm-www/releases/2.2/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2 added to the repository


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

 0 files changed



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


[llvm-commits] CVS: llvm-www/releases/2.2/docs/CommandGuide/man/

2008-02-11 Thread Tanya Lattner


Changes in directory llvm-www/releases/2.2/docs/CommandGuide/man:

---
Log message:

Directory /var/cvs/llvm/llvm-www/releases/2.2/docs/CommandGuide/man added to 
the repository


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

 0 files changed



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