[llvm-commits] [llvm] r45403 - in /llvm/trunk/lib/Transforms/Scalar: InstructionCombining.cpp SCCP.cpp

2007-12-29 Thread Christopher Lamb
Author: clamb
Date: Sat Dec 29 01:56:53 2007
New Revision: 45403

URL: http://llvm.org/viewvc/llvm-project?rev=45403&view=rev
Log:
Disable null pointer folding transforms for non-generic address spaces. This 
should probably be a target-specific predicate based on address space. That way 
for targets where this isn't applicable the predicate can be optimized away.

Modified:
llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
llvm/trunk/lib/Transforms/Scalar/SCCP.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=45403&r1=45402&r2=45403&view=diff

==
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Sat Dec 29 
01:56:53 2007
@@ -9338,8 +9338,11 @@
 return ReplaceInstUsesWith(LI, LIB);
   }
 
-  if (GetElementPtrInst *GEPI = dyn_cast(Op))
-if (isa(GEPI->getOperand(0))) {
+  if (GetElementPtrInst *GEPI = dyn_cast(Op)) {
+const Value *GEPI0 = GEPI->getOperand(0);
+// TODO: Consider a target hook for valid address spaces for this xform.
+if (isa(GEPI0) &&
+cast(GEPI0->getType())->getAddressSpace() == 0) {
   // Insert a new store to null instruction before the load to indicate
   // that this code is not reachable.  We do this instead of inserting
   // an unreachable instruction directly because we cannot modify the
@@ -9348,10 +9351,13 @@
 Constant::getNullValue(Op->getType()), &LI);
   return ReplaceInstUsesWith(LI, UndefValue::get(LI.getType()));
 }
+  } 
 
   if (Constant *C = dyn_cast(Op)) {
 // load null/undef -> undef
-if ((C->isNullValue() || isa(C))) {
+// TODO: Consider a target hook for valid address spaces for this xform.
+if (isa(C) || (C->isNullValue() && 
+cast(Op->getType())->getAddressSpace() == 0)) {
   // Insert a new store to null instruction before the load to indicate 
that
   // this code is not reachable.  We do this instead of inserting an
   // unreachable instruction directly because we cannot modify the CFG.

Modified: llvm/trunk/lib/Transforms/Scalar/SCCP.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SCCP.cpp?rev=45403&r1=45402&r2=45403&view=diff

==
--- llvm/trunk/lib/Transforms/Scalar/SCCP.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/SCCP.cpp Sat Dec 29 01:56:53 2007
@@ -1015,7 +1015,9 @@
   if (PtrVal.isUndefined()) return;   // The pointer is not resolved yet!
   if (PtrVal.isConstant() && !I.isVolatile()) {
 Value *Ptr = PtrVal.getConstant();
-if (isa(Ptr)) {
+// TODO: Consider a target hook for valid address spaces for this xform.
+if (isa(Ptr) && 
+cast(Ptr->getType())->getAddressSpace() == 0) {
   // load null -> null
   markConstant(IV, &I, Constant::getNullValue(I.getType()));
   return;


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


[llvm-commits] [llvm] r45404 - in /llvm/trunk: lib/Target/X86/README.txt test/CodeGen/X86/sext-load.ll

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 02:19:39 2007
New Revision: 45404

URL: http://llvm.org/viewvc/llvm-project?rev=45404&view=rev
Log:
this xform is implemented.

Added:
llvm/trunk/test/CodeGen/X86/sext-load.ll
Modified:
llvm/trunk/lib/Target/X86/README.txt

Modified: llvm/trunk/lib/Target/X86/README.txt
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/README.txt?rev=45404&r1=45403&r2=45404&view=diff

==
--- llvm/trunk/lib/Target/X86/README.txt (original)
+++ llvm/trunk/lib/Target/X86/README.txt Sat Dec 29 02:19:39 2007
@@ -702,28 +702,6 @@
 
 //===-===//
 
-We currently compile sign_extend_inreg into two shifts:
-
-long foo(long X) {
-  return (long)(signed char)X;
-}
-
-becomes:
-
-_foo:
-movl 4(%esp), %eax
-shll $24, %eax
-sarl $24, %eax
-ret
-
-This could be:
-
-_foo:
-movsbl  4(%esp),%eax
-ret
-
-//===-===//
-
 Consider the expansion of:
 
 uint %test3(uint %X) {

Added: llvm/trunk/test/CodeGen/X86/sext-load.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sext-load.ll?rev=45404&view=auto

==
--- llvm/trunk/test/CodeGen/X86/sext-load.ll (added)
+++ llvm/trunk/test/CodeGen/X86/sext-load.ll Sat Dec 29 02:19:39 2007
@@ -0,0 +1,9 @@
+; RUN: llvm-as < %s | llc -march=x86 | grep movsbl
+
+define i32 @foo(i32 %X) nounwind  {
+entry:
+   %tmp12 = trunc i32 %X to i8 ;  [#uses=1]
+   %tmp123 = sext i8 %tmp12 to i32 ;  [#uses=1]
+   ret i32 %tmp123
+}
+


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


[llvm-commits] [llvm] r45405 - in /llvm/trunk: lib/CodeGen/SelectionDAG/TargetLowering.cpp lib/Target/X86/README.txt test/CodeGen/X86/isnan.ll

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 02:37:08 2007
New Revision: 45405

URL: http://llvm.org/viewvc/llvm-project?rev=45405&view=rev
Log:
Fold comparisons against a constant nan, and optimize ORD/UNORD 
comparisons with a constant.  This allows us to compile isnan to:

_foo:
fcmpu cr7, f1, f1
mfcr r2
rlwinm r3, r2, 0, 31, 31
blr 

instead of:

LCPI1_0:;  float
.space  4
_foo:
lis r2, ha16(LCPI1_0)
lfs f0, lo16(LCPI1_0)(r2)
fcmpu cr7, f1, f0
mfcr r2
rlwinm r3, r2, 0, 31, 31
blr 


Added:
llvm/trunk/test/CodeGen/X86/isnan.ll
Modified:
llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp
llvm/trunk/lib/Target/X86/README.txt

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

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp Sat Dec 29 02:37:08 
2007
@@ -1280,6 +1280,28 @@
 // Constant fold or commute setcc.
 SDOperand O = DAG.FoldSetCC(VT, N0, N1, Cond);
 if (O.Val) return O;
+  } else if (ConstantFPSDNode *CFP = dyn_cast(N1.Val)) {
+// If the RHS of an FP comparison is a constant, simplify it away in
+// some cases.
+if (CFP->getValueAPF().isNaN()) {
+  // If an operand is known to be a nan, we can fold it.
+  switch (ISD::getUnorderedFlavor(Cond)) {
+  default: assert(0 && "Unknown flavor!");
+  case 0:  // Known false.
+return DAG.getConstant(0, VT);
+  case 1:  // Known true.
+return DAG.getConstant(1, VT);
+  case 2:  // undefind.
+return DAG.getNode(ISD::UNDEF, VT);
+  }
+}
+
+// Otherwise, we know the RHS is not a NaN.  Simplify the node to drop the
+// constant if knowing that the operand is non-nan is enough.  We prefer to
+// have SETO(x,x) instead of SETO(x, 0.0) because this avoids having to
+// materialize 0.0.
+if (Cond == ISD::SETO || Cond == ISD::SETUO)
+  return DAG.getSetCC(VT, N0, N0, Cond);
   }
 
   if (N0 == N1) {

Modified: llvm/trunk/lib/Target/X86/README.txt
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/README.txt?rev=45405&r1=45404&r2=45405&view=diff

==
--- llvm/trunk/lib/Target/X86/README.txt (original)
+++ llvm/trunk/lib/Target/X86/README.txt Sat Dec 29 02:37:08 2007
@@ -816,23 +816,6 @@
 
 //===-===//
 
-This:
-#include 
-int foo(double X) { return isnan(X); }
-
-compiles to (-m64):
-
-_foo:
-pxor %xmm1, %xmm1
-ucomisd %xmm1, %xmm0
-setp %al
-movzbl %al, %eax
-ret
-
-the pxor is not needed, we could compare the value against itself.
-
-//===-===//
-
 These two functions have identical effects:
 
 unsigned int f(unsigned int i, unsigned int n) {++i; if (i == n) ++i; return 
i;}

Added: llvm/trunk/test/CodeGen/X86/isnan.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/isnan.ll?rev=45405&view=auto

==
--- llvm/trunk/test/CodeGen/X86/isnan.ll (added)
+++ llvm/trunk/test/CodeGen/X86/isnan.ll Sat Dec 29 02:37:08 2007
@@ -0,0 +1,11 @@
+; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah | not grep pxor
+
+; This should not need to materialize 0.0 to evaluate the condition.
+
+define i32 @test(double %X) nounwind  {
+entry:
+   %tmp6 = fcmp uno double %X, 0.00e+00;  [#uses=1]
+   %tmp67 = zext i1 %tmp6 to i32   ;  [#uses=1]
+   ret i32 %tmp67
+}
+


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


Re: [llvm-commits] [llvm] r45405 - in /llvm/tr unk: lib/CodeGen/SelectionDAG/TargetLow ering.cpp lib/Target/X86/README.txt

2007-12-29 Thread Anton Korobeynikov
Hello, Chris

> _foo:
>   fcmpu cr7, f1, f1
>   mfcr r2
>   rlwinm r3, r2, 0, 31, 31
>   blr 
How this is connected with X86 changes? :)

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


Re: [llvm-commits] [llvm] r45405 - in /llvm/trunk: lib/CodeGen/SelectionDAG/TargetLowering.cpp lib/Target/X86/README.txt

2007-12-29 Thread Chris Lattner

On Dec 29, 2007, at 2:27 AM, Anton Korobeynikov wrote:

> Hello, Chris
>
>> _foo:
>>  fcmpu cr7, f1, f1
>>  mfcr r2
>>  rlwinm r3, r2, 0, 31, 31
>>  blr
> How this is connected with X86 changes? :)

It's a target independent improvement :)

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


[llvm-commits] [llvm] r45406 - /llvm/trunk/test/CodeGen/X86/vec_set-7.ll

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 13:24:06 2007
New Revision: 45406

URL: http://llvm.org/viewvc/llvm-project?rev=45406&view=rev
Log:
upgrade this test

Modified:
llvm/trunk/test/CodeGen/X86/vec_set-7.ll

Modified: llvm/trunk/test/CodeGen/X86/vec_set-7.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_set-7.ll?rev=45406&r1=45405&r2=45406&view=diff

==
--- llvm/trunk/test/CodeGen/X86/vec_set-7.ll (original)
+++ llvm/trunk/test/CodeGen/X86/vec_set-7.ll Sat Dec 29 13:24:06 2007
@@ -1,10 +1,11 @@
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=+sse2 | grep movsd 
| count 1
+; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movsd | count 1
 
-<2 x long> %test(<2 x long>* %p) {
-   %tmp = cast <2 x long>* %p to double*
-   %tmp = load double* %tmp
-   %tmp = insertelement <2 x double> undef, double %tmp, uint 0
-   %tmp5 = insertelement <2 x double> %tmp, double 0.00e+00, uint 1
-   %tmp = cast <2 x double> %tmp5 to <2 x long>
-   ret <2 x long> %tmp
+define <2 x i64> @test(<2 x i64>* %p) {
+   %tmp = bitcast <2 x i64>* %p to double* 
+   %tmp.upgrd.1 = load double* %tmp
+   %tmp.upgrd.2 = insertelement <2 x double> undef, double %tmp.upgrd.1, 
i32 0
+   %tmp5 = insertelement <2 x double> %tmp.upgrd.2, double 0.0, i32 1
+   %tmp.upgrd.3 = bitcast <2 x double> %tmp5 to <2 x i64>
+   ret <2 x i64> %tmp.upgrd.3
 }
+


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


[llvm-commits] [llvm] r45407 - in /llvm/trunk: lib/Target/X86/README-SSE.txt test/CodeGen/X86/vec_set-8.ll

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 13:31:47 2007
New Revision: 45407

URL: http://llvm.org/viewvc/llvm-project?rev=45407&view=rev
Log:
One readme entry is done, one is really easy (Evan, want to investigate
eliminating the llvm.x86.sse2.loadl.pd intrinsic?), one shuffle optzn
may be done (if shufps is better than pinsw, Evan, please review), and
we already know about LICM of simple instructions.

Added:
llvm/trunk/test/CodeGen/X86/vec_set-8.ll
Modified:
llvm/trunk/lib/Target/X86/README-SSE.txt

Modified: llvm/trunk/lib/Target/X86/README-SSE.txt
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/README-SSE.txt?rev=45407&r1=45406&r2=45407&view=diff

==
--- llvm/trunk/lib/Target/X86/README-SSE.txt (original)
+++ llvm/trunk/lib/Target/X86/README-SSE.txt Sat Dec 29 13:31:47 2007
@@ -456,6 +456,18 @@
 So icc is smart enough to know that B is in memory so it doesn't load it and
 store it back to stack.
 
+This should be fixed by eliminating the llvm.x86.sse2.loadl.pd intrinsic, 
+lowering it to a load+insertelement instead.  Already match the load+shuffle 
+as movlpd, so this should be easy.  We already get optimal code for:
+
+define void @test2(<2 x double>* %r, <2 x double>* %A, double %B) {
+entry:
+   %tmp2 = load <2 x double>* %A, align 16
+   %tmp8 = insertelement <2 x double> %tmp2, double %B, i32 0
+   store <2 x double> %tmp8, <2 x double>* %r, align 16
+   ret void
+}
+
 //===-===//
 
 __m128d test1( __m128d A, __m128d B) {
@@ -476,10 +488,10 @@
 
 This code generates ugly code, probably due to costs being off or something:
 
-void %test(float* %P, <4 x float>* %P2 ) {
+define void @test(float* %P, <4 x float>* %P2 ) {
 %xFloat0.688 = load float* %P
-%loadVector37.712 = load <4 x float>* %P2
-%inFloat3.713 = insertelement <4 x float> %loadVector37.712, float 
0.00e+00, uint 3
+%tmp = load <4 x float>* %P2
+%inFloat3.713 = insertelement <4 x float> %tmp, float 0.0, i32 3
 store <4 x float> %inFloat3.713, <4 x float>* %P2
 ret void
 }
@@ -487,17 +499,16 @@
 Generates:
 
 _test:
-pxor %xmm0, %xmm0
-movd %xmm0, %eax;; EAX = 0!
-movl 8(%esp), %ecx
-movaps (%ecx), %xmm0
-pinsrw $6, %eax, %xmm0
-shrl $16, %eax  ;; EAX = 0 again!
-pinsrw $7, %eax, %xmm0
-movaps %xmm0, (%ecx)
-ret
+   movl8(%esp), %eax
+   movaps  (%eax), %xmm0
+   pxor%xmm1, %xmm1
+   movaps  %xmm0, %xmm2
+   shufps  $50, %xmm1, %xmm2
+   shufps  $132, %xmm2, %xmm0
+   movaps  %xmm0, (%eax)
+   ret
 
-It would be better to generate:
+Would it be better to generate:
 
 _test:
 movl 8(%esp), %ecx
@@ -508,7 +519,7 @@
 movaps %xmm0, (%ecx)
 ret
 
-or use pxor (to make a zero vector) and shuffle (to insert it).
+?
 
 //===-===//
 
@@ -576,32 +587,6 @@
 
 //===-===//
 
-This code:
-
-#include 
-__m128i test(long long i) { return _mm_cvtsi64x_si128(i); }
-
-Should turn into a single 'movq %rdi, %xmm0' instruction.  Instead, we 
-get this (on x86-64):
-
-_test:
-   movd %rdi, %xmm1
-   xorps %xmm0, %xmm0
-   movsd %xmm1, %xmm0
-   ret
-
-The LLVM IR is:
-
-target triple = "x86_64-apple-darwin8"
-define <2 x i64> @test(i64 %i) {
-entry:
-   %tmp10 = insertelement <2 x i64> undef, i64 %i, i32 0   
-   %tmp11 = insertelement <2 x i64> %tmp10, i64 0, i32 1
-   ret <2 x i64> %tmp11
-}
-
-//===-===//
-
 These functions should produce the same code:
 
 #include 
@@ -671,43 +656,6 @@
 
 //===-===//
 
-In this loop:
-
-bb49:  ; preds = %bb49, %bb49.preheader
-   %indvar = phi i32 [ 0, %bb49.preheader ], [ %indvar.next, %bb49 ]   
;  [#uses=2]
-   %dp.089.0.rec = shl i32 %indvar, 3  ;  [#uses=2]
-   %dp.089.0 = getelementptr i32* %tmp89, i32 %dp.089.0.rec
;  [#uses=1]
-   %tmp5051 = bitcast i32* %dp.089.0 to <2 x i64>* ; <<2 x i64>*> 
[#uses=1]
-   store <2 x i64> zeroinitializer, <2 x i64>* %tmp5051, align 16
-   %dp.089.0.sum105 = or i32 %dp.089.0.rec, 4  ;  
[#uses=1]
-   %tmp56 = getelementptr i32* %tmp89, i32 %dp.089.0.sum105
;  [#uses=1]
-   %tmp5657 = bitcast i32* %tmp56 to <2 x i64>*; <<2 x i64>*> 
[#uses=1]
-   store <2 x i64> zeroinitializer, <2 x i64>* %tmp5657, align 16
-   %indvar.next = add i32 %indvar, 1   ;  [#uses=2]
-   %exitcond = icmp eq i32 %indvar.next, %tmp98;  [#uses=1]
-   br i1 %exitcond, 

[llvm-commits] [llvm] r45408 - /llvm/trunk/lib/Target/README.txt

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 13:38:02 2007
New Revision: 45408

URL: http://llvm.org/viewvc/llvm-project?rev=45408&view=rev
Log:
this is done.

Modified:
llvm/trunk/lib/Target/README.txt

Modified: llvm/trunk/lib/Target/README.txt
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/README.txt?rev=45408&r1=45407&r2=45408&view=diff

==
--- llvm/trunk/lib/Target/README.txt (original)
+++ llvm/trunk/lib/Target/README.txt Sat Dec 29 13:38:02 2007
@@ -131,13 +131,6 @@
 
 //===-===//
 
-We should constant fold vector type casts at the LLVM level, regardless of the
-cast.  Currently we cannot fold some casts because we don't have TargetData
-information in the constant folder, so we don't know the endianness of the 
-target!
-
-//===-===//
-
 Add support for conditional increments, and other related patterns.  Instead
 of:
 


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


[llvm-commits] [llvm] r45409 - in /llvm/trunk/docs: CodingStandards.html DeveloperPolicy.html

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 13:56:08 2007
New Revision: 45409

URL: http://llvm.org/viewvc/llvm-project?rev=45409&view=rev
Log:
Don't attribute in file headers anymore.  See llvmdev for the 
discussion of this change.

Modified:
llvm/trunk/docs/CodingStandards.html
llvm/trunk/docs/DeveloperPolicy.html

Modified: llvm/trunk/docs/CodingStandards.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/CodingStandards.html?rev=45409&r1=45408&r2=45409&view=diff

==
--- llvm/trunk/docs/CodingStandards.html (original)
+++ llvm/trunk/docs/CodingStandards.html Sat Dec 29 13:56:08 2007
@@ -134,8 +134,8 @@
 // 
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by  and is 
distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 // 
 
//===--===//
 //
@@ -146,9 +146,7 @@
 
 
 
-A few things to note about this particular format:  The 'developed by' line
-should be the name of the person or organization who initially contributed the 
-file.  The "-*- C++
+A few things to note about this particular format:  The "-*- C++
 -*-" string on the first line is there to tell Emacs that the source file
 is a C++ file, not a C file (Emacs assumes .h files are C files by default).
 Note that this tag is not necessary in .cpp files.  The name of the file is 
also
@@ -156,9 +154,9 @@
 file.  This is important when printing out code and flipping though lots of
 pages.
 
-The next section in the file is a concise note that defines the license that
-the file is released under.  This makes it perfectly clear what terms the 
source
-code can be distributed under.
+The next section in the file is a concise note that defines the license
+that the file is released under.  This makes it perfectly clear what terms the
+source code can be distributed under and should not be modified in any way.
 
 The main body of the description does not have to be very long in most 
cases.
 Here it's only two lines.  If an algorithm is being implemented or something

Modified: llvm/trunk/docs/DeveloperPolicy.html
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/DeveloperPolicy.html?rev=45409&r1=45408&r2=45409&view=diff

==
--- llvm/trunk/docs/DeveloperPolicy.html (original)
+++ llvm/trunk/docs/DeveloperPolicy.html Sat Dec 29 13:56:08 2007
@@ -417,28 +417,12 @@
 
   We believe in correct attribution of contributions to 
   their contributors.  However, we do not want the source code to be littered
-  with random attributions (this is noisy/distracting and revision control
-  keeps a perfect history of this anyway).  As such, we follow these rules:
-  
-Developers who originate new files in LLVM should place their name at
-the top of the file per the 
-Coding Standards.
-There should be only one name at the top of the file and it should be
-the person who created the file.
-Placing your name in the file does not imply copyright: it is only used to attribute the file to
-its original author.
-Developers should be aware that after some time has passed, the name at
-the top of a file may become meaningless as maintenance/ownership of files
-changes.  Despite this, once set, the attribution of a file never changes.
-Revision control keeps an accurate history of contributions.
-Developers should maintain their entry in the 
-http://llvm.org/svn/llvm-project/llvm/trunk/CREDITS.TXT";>CREDITS.txt 
-file to summarize their contributions.
-Commit comments should contain correct attribution of the person who
-submitted the patch if that person is not the committer (i.e. when a 
-developer with commit privileges commits a patch for someone else).
-  
+  with random attributions "this code written by J Random Guy" (this is noisy
+  and distracting.  In practice, the revision control system keeps a perfect
+  history of who change what, and the CREDITS.txt file describes higher-level
+  contributions.
+
+  Overall, please do not add contributor names to the source base.
 
 
 


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


[llvm-commits] [llvm] r45414 - in /llvm/trunk: tools/ tools/bugpoint/ tools/gccas/ tools/gccld/ tools/llc/ tools/lli/ tools/llvm-ar/ tools/llvm-as/ tools/llvm-bcanalyzer/ tools/llvm-config/ tools/llvm

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 14:07:17 2007
New Revision: 45414

URL: http://llvm.org/viewvc/llvm-project?rev=45414&view=rev
Log:
remove attributions from tools/utils makefiles.

Modified:
llvm/trunk/tools/Makefile
llvm/trunk/tools/bugpoint/Makefile
llvm/trunk/tools/gccas/Makefile
llvm/trunk/tools/gccld/Makefile
llvm/trunk/tools/llc/Makefile
llvm/trunk/tools/lli/Makefile
llvm/trunk/tools/llvm-ar/Makefile
llvm/trunk/tools/llvm-as/Makefile
llvm/trunk/tools/llvm-bcanalyzer/Makefile
llvm/trunk/tools/llvm-config/Makefile
llvm/trunk/tools/llvm-db/Makefile
llvm/trunk/tools/llvm-dis/Makefile
llvm/trunk/tools/llvm-extract/Makefile
llvm/trunk/tools/llvm-ld/Makefile
llvm/trunk/tools/llvm-link/Makefile
llvm/trunk/tools/llvm-nm/Makefile
llvm/trunk/tools/llvm-prof/Makefile
llvm/trunk/tools/llvm-ranlib/Makefile
llvm/trunk/tools/llvm-stub/Makefile
llvm/trunk/tools/llvm-upgrade/Makefile
llvm/trunk/tools/llvm2cpp/Makefile
llvm/trunk/tools/llvmc/Makefile
llvm/trunk/tools/lto/Makefile
llvm/trunk/tools/opt/Makefile
llvm/trunk/utils/Makefile
llvm/trunk/utils/PerfectShuffle/Makefile
llvm/trunk/utils/TableGen/Makefile
llvm/trunk/utils/fpcmp/Makefile

Modified: llvm/trunk/tools/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/Makefile?rev=45414&r1=45413&r2=45414&view=diff

==
--- llvm/trunk/tools/Makefile (original)
+++ llvm/trunk/tools/Makefile Sat Dec 29 14:07:17 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 

Modified: llvm/trunk/tools/bugpoint/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/Makefile?rev=45414&r1=45413&r2=45414&view=diff

==
--- llvm/trunk/tools/bugpoint/Makefile (original)
+++ llvm/trunk/tools/bugpoint/Makefile Sat Dec 29 14:07:17 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 LEVEL = ../..

Modified: llvm/trunk/tools/gccas/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gccas/Makefile?rev=45414&r1=45413&r2=45414&view=diff

==
--- llvm/trunk/tools/gccas/Makefile (original)
+++ llvm/trunk/tools/gccas/Makefile Sat Dec 29 14:07:17 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by Reid Spencer and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 LEVEL = ../..

Modified: llvm/trunk/tools/gccld/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gccld/Makefile?rev=45414&r1=45413&r2=45414&view=diff

==
--- llvm/trunk/tools/gccld/Makefile (original)
+++ llvm/trunk/tools/gccld/Makefile Sat Dec 29 14:07:17 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 

Modified: llvm/trunk/tools/llc/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llc/Makefile?rev=45414&r1=45413&r2=45414&view=diff

==
--- llvm/trunk/tools/llc/Makefile (original)
+++ llvm/trunk/tools/llc/Makefile Sat Dec 29 14:07:17 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed 

[llvm-commits] [llvm] r45415 - in /llvm/trunk/lib: ./ Analysis/ Analysis/IPA/ Archive/ AsmParser/ Bitcode/ Bitcode/Reader/ Bitcode/Writer/ CodeGen/ CodeGen/SelectionDAG/ Debugger/ ExecutionEngine/ Exe

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 14:09:26 2007
New Revision: 45415

URL: http://llvm.org/viewvc/llvm-project?rev=45415&view=rev
Log:
remove attribution from lib Makefiles.

Modified:
llvm/trunk/lib/Analysis/IPA/Makefile
llvm/trunk/lib/Analysis/Makefile
llvm/trunk/lib/Archive/Makefile
llvm/trunk/lib/AsmParser/Makefile
llvm/trunk/lib/Bitcode/Makefile
llvm/trunk/lib/Bitcode/Reader/Makefile
llvm/trunk/lib/Bitcode/Writer/Makefile
llvm/trunk/lib/CodeGen/Makefile
llvm/trunk/lib/CodeGen/SelectionDAG/Makefile
llvm/trunk/lib/Debugger/Makefile
llvm/trunk/lib/ExecutionEngine/Interpreter/Makefile
llvm/trunk/lib/ExecutionEngine/JIT/Makefile
llvm/trunk/lib/ExecutionEngine/Makefile
llvm/trunk/lib/Linker/Makefile
llvm/trunk/lib/Makefile
llvm/trunk/lib/Support/Makefile
llvm/trunk/lib/System/Makefile
llvm/trunk/lib/Target/ARM/Makefile
llvm/trunk/lib/Target/Alpha/Makefile
llvm/trunk/lib/Target/CBackend/Makefile
llvm/trunk/lib/Target/CellSPU/Makefile
llvm/trunk/lib/Target/IA64/Makefile
llvm/trunk/lib/Target/MSIL/Makefile
llvm/trunk/lib/Target/Makefile
llvm/trunk/lib/Target/Mips/Makefile
llvm/trunk/lib/Target/PowerPC/Makefile
llvm/trunk/lib/Target/Sparc/Makefile
llvm/trunk/lib/Target/X86/Makefile
llvm/trunk/lib/Transforms/Hello/Makefile
llvm/trunk/lib/Transforms/IPO/Makefile
llvm/trunk/lib/Transforms/Instrumentation/Makefile
llvm/trunk/lib/Transforms/Makefile
llvm/trunk/lib/Transforms/Scalar/Makefile
llvm/trunk/lib/Transforms/Utils/Makefile
llvm/trunk/lib/VMCore/Makefile

Modified: llvm/trunk/lib/Analysis/IPA/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/IPA/Makefile?rev=45415&r1=45414&r2=45415&view=diff

==
--- llvm/trunk/lib/Analysis/IPA/Makefile (original)
+++ llvm/trunk/lib/Analysis/IPA/Makefile Sat Dec 29 14:09:26 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 

Modified: llvm/trunk/lib/Analysis/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/Makefile?rev=45415&r1=45414&r2=45415&view=diff

==
--- llvm/trunk/lib/Analysis/Makefile (original)
+++ llvm/trunk/lib/Analysis/Makefile Sat Dec 29 14:09:26 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 

Modified: llvm/trunk/lib/Archive/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Archive/Makefile?rev=45415&r1=45414&r2=45415&view=diff

==
--- llvm/trunk/lib/Archive/Makefile (original)
+++ llvm/trunk/lib/Archive/Makefile Sat Dec 29 14:09:26 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by Reid Spencer and is distributed under the 
-# University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 

Modified: llvm/trunk/lib/AsmParser/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/Makefile?rev=45415&r1=45414&r2=45415&view=diff

==
--- llvm/trunk/lib/AsmParser/Makefile (original)
+++ llvm/trunk/lib/AsmParser/Makefile Sat Dec 29 14:09:26 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 

Modified: llvm/trunk/lib/Bitcode/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Makefile?rev=45415&r1=45414&r2=45415&view=diff

===

[llvm-commits] [llvm] r45416 - in /llvm/trunk: ./ bindings/ bindings/ocaml/ bindings/ocaml/analysis/ bindings/ocaml/bitreader/ bindings/ocaml/bitwriter/ bindings/ocaml/executionengine/ bindings/ocaml/

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 14:11:13 2007
New Revision: 45416

URL: http://llvm.org/viewvc/llvm-project?rev=45416&view=rev
Log:
remove attributions from the rest of the llvm makefiles.

Modified:
llvm/trunk/Makefile
llvm/trunk/Makefile.common
llvm/trunk/Makefile.config.in
llvm/trunk/Makefile.rules
llvm/trunk/bindings/Makefile
llvm/trunk/bindings/ocaml/Makefile
llvm/trunk/bindings/ocaml/Makefile.ocaml
llvm/trunk/bindings/ocaml/analysis/Makefile
llvm/trunk/bindings/ocaml/bitreader/Makefile
llvm/trunk/bindings/ocaml/bitwriter/Makefile
llvm/trunk/bindings/ocaml/executionengine/Makefile
llvm/trunk/bindings/ocaml/llvm/Makefile
llvm/trunk/docs/CommandGuide/Makefile
llvm/trunk/docs/Makefile
llvm/trunk/examples/BrainF/Makefile
llvm/trunk/examples/Fibonacci/Makefile
llvm/trunk/examples/HowToUseJIT/Makefile
llvm/trunk/examples/Makefile
llvm/trunk/examples/ModuleMaker/Makefile
llvm/trunk/examples/ParallelJIT/Makefile
llvm/trunk/projects/Makefile
llvm/trunk/runtime/GC/Makefile
llvm/trunk/runtime/GC/SemiSpace/Makefile
llvm/trunk/runtime/Makefile
llvm/trunk/runtime/libprofile/Makefile
llvm/trunk/test/Makefile

Modified: llvm/trunk/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile?rev=45416&r1=45415&r2=45416&view=diff

==
--- llvm/trunk/Makefile (original)
+++ llvm/trunk/Makefile Sat Dec 29 14:11:13 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#======#
 

Modified: llvm/trunk/Makefile.common
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.common?rev=45416&r1=45415&r2=45416&view=diff

==
--- llvm/trunk/Makefile.common (original)
+++ llvm/trunk/Makefile.common Sat Dec 29 14:11:13 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#======#
 #

Modified: llvm/trunk/Makefile.config.in
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.config.in?rev=45416&r1=45415&r2=45416&view=diff

==
--- llvm/trunk/Makefile.config.in (original)
+++ llvm/trunk/Makefile.config.in Sat Dec 29 14:11:13 2007
@@ -2,8 +2,8 @@
 #
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#======#
 #

Modified: llvm/trunk/Makefile.rules
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.rules?rev=45416&r1=45415&r2=45416&view=diff

==
--- llvm/trunk/Makefile.rules (original)
+++ llvm/trunk/Makefile.rules Sat Dec 29 14:11:13 2007
@@ -2,8 +2,8 @@
 #
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#======#
 #

Modified: llvm/trunk/bindings/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/Makefile?rev=45416&r1=45415&r2=45416&view=diff

==
--- llvm/trunk/bindings/Makefile (original)
+++ llvm/trunk/bindings/Makefile Sat Dec 29 14:11:13 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by Gordon Henriksen and is distributed under the
-# University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--

[llvm-commits] [test-suite] r45417 - in /test-suite/trunk: Makefile Makefile.FORTRAN Makefile.common Makefile.f2c Makefile.nagfortran Makefile.rules

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 14:15:18 2007
New Revision: 45417

URL: http://llvm.org/viewvc/llvm-project?rev=45417&view=rev
Log:
remove attributions from makefiles.

Modified:
test-suite/trunk/Makefile
test-suite/trunk/Makefile.FORTRAN
test-suite/trunk/Makefile.common
test-suite/trunk/Makefile.f2c
test-suite/trunk/Makefile.nagfortran
test-suite/trunk/Makefile.rules

Modified: test-suite/trunk/Makefile
URL: 
http://llvm.org/viewvc/llvm-project/test-suite/trunk/Makefile?rev=45417&r1=45416&r2=45417&view=diff

==
--- test-suite/trunk/Makefile (original)
+++ test-suite/trunk/Makefile Sat Dec 29 14:15:18 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
##===--===##
 #

Modified: test-suite/trunk/Makefile.FORTRAN
URL: 
http://llvm.org/viewvc/llvm-project/test-suite/trunk/Makefile.FORTRAN?rev=45417&r1=45416&r2=45417&view=diff

==
--- test-suite/trunk/Makefile.FORTRAN (original)
+++ test-suite/trunk/Makefile.FORTRAN Sat Dec 29 14:15:18 2007
@@ -2,8 +2,8 @@
 #
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by Chris Lattner and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#======#
 #

Modified: test-suite/trunk/Makefile.common
URL: 
http://llvm.org/viewvc/llvm-project/test-suite/trunk/Makefile.common?rev=45417&r1=45416&r2=45417&view=diff

==
--- test-suite/trunk/Makefile.common (original)
+++ test-suite/trunk/Makefile.common Sat Dec 29 14:15:18 2007
@@ -2,8 +2,8 @@
 # 
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#======#
 

Modified: test-suite/trunk/Makefile.f2c
URL: 
http://llvm.org/viewvc/llvm-project/test-suite/trunk/Makefile.f2c?rev=45417&r1=45416&r2=45417&view=diff

==
--- test-suite/trunk/Makefile.f2c (original)
+++ test-suite/trunk/Makefile.f2c Sat Dec 29 14:15:18 2007
@@ -2,8 +2,8 @@
 #
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#======#
 #

Modified: test-suite/trunk/Makefile.nagfortran
URL: 
http://llvm.org/viewvc/llvm-project/test-suite/trunk/Makefile.nagfortran?rev=45417&r1=45416&r2=45417&view=diff

==
--- test-suite/trunk/Makefile.nagfortran (original)
+++ test-suite/trunk/Makefile.nagfortran Sat Dec 29 14:15:18 2007
@@ -2,8 +2,8 @@
 #
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by Chris Lattner and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#======#
 #

Modified: test-suite/trunk/Makefile.rules
URL: 
http://llvm.org/viewvc/llvm-project/test-suite/trunk/Makefile.rules?rev=45417&r1=45416&r2=45417&view=diff

==
--- test-suite/trunk/Makefile.rules (original)
+++ test-suite/trunk/Makefile.rules Sat Dec 29 14:15:18 2007
@@ -2,8 +2,8 @@
 #
 # The LLVM Compiler Infrastructure
 #
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
 # 
 
#=

[llvm-commits] [llvm] r45419 - in /llvm/trunk/utils: ./ PerfectShuffle/ TableGen/ fpcmp/

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 14:37:13 2007
New Revision: 45419

URL: http://llvm.org/viewvc/llvm-project?rev=45419&view=rev
Log:
remove attributions from utils.

Modified:
llvm/trunk/utils/PerfectShuffle/PerfectShuffle.cpp
llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp
llvm/trunk/utils/TableGen/AsmWriterEmitter.h
llvm/trunk/utils/TableGen/CallingConvEmitter.cpp
llvm/trunk/utils/TableGen/CallingConvEmitter.h
llvm/trunk/utils/TableGen/CodeEmitterGen.cpp
llvm/trunk/utils/TableGen/CodeEmitterGen.h
llvm/trunk/utils/TableGen/CodeGenInstruction.h
llvm/trunk/utils/TableGen/CodeGenIntrinsics.h
llvm/trunk/utils/TableGen/CodeGenRegisters.h
llvm/trunk/utils/TableGen/CodeGenTarget.cpp
llvm/trunk/utils/TableGen/CodeGenTarget.h
llvm/trunk/utils/TableGen/DAGISelEmitter.cpp
llvm/trunk/utils/TableGen/DAGISelEmitter.h
llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp
llvm/trunk/utils/TableGen/InstrInfoEmitter.h
llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp
llvm/trunk/utils/TableGen/IntrinsicEmitter.h
llvm/trunk/utils/TableGen/Record.cpp
llvm/trunk/utils/TableGen/Record.h
llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp
llvm/trunk/utils/TableGen/RegisterInfoEmitter.h
llvm/trunk/utils/TableGen/SubtargetEmitter.cpp
llvm/trunk/utils/TableGen/SubtargetEmitter.h
llvm/trunk/utils/TableGen/TGLexer.cpp
llvm/trunk/utils/TableGen/TGLexer.h
llvm/trunk/utils/TableGen/TGParser.cpp
llvm/trunk/utils/TableGen/TGParser.h
llvm/trunk/utils/TableGen/TableGen.cpp
llvm/trunk/utils/TableGen/TableGenBackend.cpp
llvm/trunk/utils/TableGen/TableGenBackend.h
llvm/trunk/utils/countloc.sh
llvm/trunk/utils/fpcmp/fpcmp.cpp
llvm/trunk/utils/getsrcs.sh
llvm/trunk/utils/llvmdo
llvm/trunk/utils/llvmgrep

Modified: llvm/trunk/utils/PerfectShuffle/PerfectShuffle.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/PerfectShuffle/PerfectShuffle.cpp?rev=45419&r1=45418&r2=45419&view=diff

==
--- llvm/trunk/utils/PerfectShuffle/PerfectShuffle.cpp (original)
+++ llvm/trunk/utils/PerfectShuffle/PerfectShuffle.cpp Sat Dec 29 14:37:13 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp?rev=45419&r1=45418&r2=45419&view=diff

==
--- llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp Sat Dec 29 14:37:13 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/utils/TableGen/AsmWriterEmitter.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/AsmWriterEmitter.h?rev=45419&r1=45418&r2=45419&view=diff

==
--- llvm/trunk/utils/TableGen/AsmWriterEmitter.h (original)
+++ llvm/trunk/utils/TableGen/AsmWriterEmitter.h Sat Dec 29 14:37:13 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/utils/TableGen/CallingConvEmitter.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CallingConvEmitter.cpp?rev=45419&r1=45418&r2=45419&view=diff

==
--- llvm/trunk/utils/TableGen/CallingConvEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/CallingConvEmitter.cpp Sat Dec 29 14:37:13 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LIC

[llvm-commits] [llvm] r45420 - in /llvm/trunk/examples: BrainF/BrainF.cpp BrainF/BrainF.h BrainF/BrainFDriver.cpp Fibonacci/fibonacci.cpp HowToUseJIT/HowToUseJIT.cpp ModuleMaker/ModuleMaker.cpp Parall

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 14:37:57 2007
New Revision: 45420

URL: http://llvm.org/viewvc/llvm-project?rev=45420&view=rev
Log:
remove attributions from examples.

Modified:
llvm/trunk/examples/BrainF/BrainF.cpp
llvm/trunk/examples/BrainF/BrainF.h
llvm/trunk/examples/BrainF/BrainFDriver.cpp
llvm/trunk/examples/Fibonacci/fibonacci.cpp
llvm/trunk/examples/HowToUseJIT/HowToUseJIT.cpp
llvm/trunk/examples/ModuleMaker/ModuleMaker.cpp
llvm/trunk/examples/ParallelJIT/ParallelJIT.cpp

Modified: llvm/trunk/examples/BrainF/BrainF.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/BrainF/BrainF.cpp?rev=45420&r1=45419&r2=45420&view=diff

==
--- llvm/trunk/examples/BrainF/BrainF.cpp (original)
+++ llvm/trunk/examples/BrainF/BrainF.cpp Sat Dec 29 14:37:57 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Sterling Stein and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //======//
 //

Modified: llvm/trunk/examples/BrainF/BrainF.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/BrainF/BrainF.h?rev=45420&r1=45419&r2=45420&view=diff

==
--- llvm/trunk/examples/BrainF/BrainF.h (original)
+++ llvm/trunk/examples/BrainF/BrainF.h Sat Dec 29 14:37:57 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Sterling Stein and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //======//
 //

Modified: llvm/trunk/examples/BrainF/BrainFDriver.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/BrainF/BrainFDriver.cpp?rev=45420&r1=45419&r2=45420&view=diff

==
--- llvm/trunk/examples/BrainF/BrainFDriver.cpp (original)
+++ llvm/trunk/examples/BrainF/BrainFDriver.cpp Sat Dec 29 14:37:57 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Sterling Stein and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //======//
 //

Modified: llvm/trunk/examples/Fibonacci/fibonacci.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Fibonacci/fibonacci.cpp?rev=45420&r1=45419&r2=45420&view=diff

==
--- llvm/trunk/examples/Fibonacci/fibonacci.cpp (original)
+++ llvm/trunk/examples/Fibonacci/fibonacci.cpp Sat Dec 29 14:37:57 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Valery A. Khamenya and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/examples/HowToUseJIT/HowToUseJIT.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/HowToUseJIT/HowToUseJIT.cpp?rev=45420&r1=45419&r2=45420&view=diff

==
--- llvm/trunk/examples/HowToUseJIT/HowToUseJIT.cpp (original)
+++ llvm/trunk/examples/HowToUseJIT/HowToUseJIT.cpp Sat Dec 29 14:37:57 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Valery A. Khamenya and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/examples/ModuleMaker/ModuleMaker.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/ModuleMaker/ModuleMaker.cpp?rev=45420&r1=45419&r2=45420&view=diff

==
--- llvm/trunk/examples/ModuleMaker/ModuleMaker.cpp (original)
+++ llvm/trunk/examples/ModuleMaker/Module

[llvm-commits] [llvm] r45421 - in /llvm/trunk/tools: bugpoint/ llc/ lli/ llvm-ar/ llvm-as/ llvm-bcanalyzer/ llvm-db/ llvm-dis/ llvm-extract/ llvm-ld/ llvm-link/ llvm-nm/ llvm-prof/ llvm-ranlib/ llvm-u

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 14:44:31 2007
New Revision: 45421

URL: http://llvm.org/viewvc/llvm-project?rev=45421&view=rev
Log:
remove attributions from tools.

Modified:
llvm/trunk/tools/bugpoint/BugDriver.cpp
llvm/trunk/tools/bugpoint/BugDriver.h
llvm/trunk/tools/bugpoint/CrashDebugger.cpp
llvm/trunk/tools/bugpoint/ExecutionDriver.cpp
llvm/trunk/tools/bugpoint/ExtractFunction.cpp
llvm/trunk/tools/bugpoint/FindBugs.cpp
llvm/trunk/tools/bugpoint/ListReducer.h
llvm/trunk/tools/bugpoint/Miscompilation.cpp
llvm/trunk/tools/bugpoint/OptimizerDriver.cpp
llvm/trunk/tools/bugpoint/TestPasses.cpp
llvm/trunk/tools/bugpoint/ToolRunner.cpp
llvm/trunk/tools/bugpoint/ToolRunner.h
llvm/trunk/tools/bugpoint/bugpoint.cpp
llvm/trunk/tools/llc/llc.cpp
llvm/trunk/tools/lli/lli.cpp
llvm/trunk/tools/llvm-ar/llvm-ar.cpp
llvm/trunk/tools/llvm-as/llvm-as.cpp
llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
llvm/trunk/tools/llvm-db/CLICommand.h
llvm/trunk/tools/llvm-db/CLIDebugger.cpp
llvm/trunk/tools/llvm-db/CLIDebugger.h
llvm/trunk/tools/llvm-db/Commands.cpp
llvm/trunk/tools/llvm-db/llvm-db.cpp
llvm/trunk/tools/llvm-dis/llvm-dis.cpp
llvm/trunk/tools/llvm-extract/llvm-extract.cpp
llvm/trunk/tools/llvm-ld/Optimize.cpp
llvm/trunk/tools/llvm-ld/llvm-ld.cpp
llvm/trunk/tools/llvm-link/llvm-link.cpp
llvm/trunk/tools/llvm-nm/llvm-nm.cpp
llvm/trunk/tools/llvm-prof/llvm-prof.cpp
llvm/trunk/tools/llvm-ranlib/llvm-ranlib.cpp
llvm/trunk/tools/llvm-upgrade/UpgradeInternals.h
llvm/trunk/tools/llvm-upgrade/llvm-upgrade.cpp
llvm/trunk/tools/llvm2cpp/CppWriter.cpp
llvm/trunk/tools/llvm2cpp/CppWriter.h
llvm/trunk/tools/llvm2cpp/llvm2cpp.cpp
llvm/trunk/tools/llvmc/CompilerDriver.cpp
llvm/trunk/tools/llvmc/CompilerDriver.h
llvm/trunk/tools/llvmc/ConfigLexer.h
llvm/trunk/tools/llvmc/Configuration.cpp
llvm/trunk/tools/llvmc/Configuration.h
llvm/trunk/tools/llvmc/llvmc.cpp
llvm/trunk/tools/lto/lto-c.cpp
llvm/trunk/tools/lto/lto.cpp
llvm/trunk/tools/opt/AnalysisWrappers.cpp
llvm/trunk/tools/opt/GraphPrinters.cpp
llvm/trunk/tools/opt/PrintSCC.cpp
llvm/trunk/tools/opt/opt.cpp

Modified: llvm/trunk/tools/bugpoint/BugDriver.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/BugDriver.cpp?rev=45421&r1=45420&r2=45421&view=diff

==
--- llvm/trunk/tools/bugpoint/BugDriver.cpp (original)
+++ llvm/trunk/tools/bugpoint/BugDriver.cpp Sat Dec 29 14:44:31 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/tools/bugpoint/BugDriver.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/BugDriver.h?rev=45421&r1=45420&r2=45421&view=diff

==
--- llvm/trunk/tools/bugpoint/BugDriver.h (original)
+++ llvm/trunk/tools/bugpoint/BugDriver.h Sat Dec 29 14:44:31 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/tools/bugpoint/CrashDebugger.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/CrashDebugger.cpp?rev=45421&r1=45420&r2=45421&view=diff

==
--- llvm/trunk/tools/bugpoint/CrashDebugger.cpp (original)
+++ llvm/trunk/tools/bugpoint/CrashDebugger.cpp Sat Dec 29 14:44:31 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/tools/bugpoint/ExecutionDriver.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/ExecutionDriver.cpp?rev=45421&r1=45420&r2=45421&view=diff

===

[llvm-commits] [llvm] r45422 - in /llvm/trunk: bindings/ocaml/llvm/llvm.ml bindings/ocaml/llvm/llvm.mli bindings/ocaml/llvm/llvm_ocaml.c include/llvm-c/Core.h test/Bindings/Ocaml/vmcore.ml

2007-12-29 Thread Gordon Henriksen
Author: gordon
Date: Sat Dec 29 14:45:00 2007
New Revision: 45422

URL: http://llvm.org/viewvc/llvm-project?rev=45422&view=rev
Log:
Bindings for instruction calling conventions.

Modified:
llvm/trunk/bindings/ocaml/llvm/llvm.ml
llvm/trunk/bindings/ocaml/llvm/llvm.mli
llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c
llvm/trunk/include/llvm-c/Core.h
llvm/trunk/test/Bindings/Ocaml/vmcore.ml

Modified: llvm/trunk/bindings/ocaml/llvm/llvm.ml
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/llvm/llvm.ml?rev=45422&r1=45421&r2=45422&view=diff

==
--- llvm/trunk/bindings/ocaml/llvm/llvm.ml (original)
+++ llvm/trunk/bindings/ocaml/llvm/llvm.ml Sat Dec 29 14:45:00 2007
@@ -328,6 +328,12 @@
 external value_is_block : llvalue -> bool = "llvm_value_is_block"
 external block_of_value : llvalue -> llbasicblock = "LLVMValueAsBasicBlock"
 
+(*--... Operations on call sites 
...--*)
+external instruction_call_conv: llvalue -> int
+  = "llvm_instruction_call_conv"
+external set_instruction_call_conv: int -> llvalue -> unit
+  = "llvm_set_instruction_call_conv"
+
 (*--... Operations on phi nodes 
--*)
 external add_incoming : (llvalue * llbasicblock) -> llvalue -> unit
   = "llvm_add_incoming"

Modified: llvm/trunk/bindings/ocaml/llvm/llvm.mli
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/llvm/llvm.mli?rev=45422&r1=45421&r2=45422&view=diff

==
--- llvm/trunk/bindings/ocaml/llvm/llvm.mli (original)
+++ llvm/trunk/bindings/ocaml/llvm/llvm.mli Sat Dec 29 14:45:00 2007
@@ -854,6 +854,20 @@
 (** [block_of_value v] losslessly casts [v] to an [llbasicblock]. **)
 external block_of_value : llvalue -> llbasicblock = "LLVMValueAsBasicBlock"
 
+(*--... Operations on call sites 
...--*)
+
+(** [inst_call_conv ci] is the calling convention for the call or invoke
+instruction [ci], which may be one of the values from the module 
[CallConv].
+See the method [CallSite:: **)
+external instruction_call_conv: llvalue -> int
+  = "llvm_instruction_call_conv"
+
+(** [set_inst_call_conv cc ci] sets the calling convention for the call or
+invoke instruction [ci] to the integer [cc], which can be one of the values
+from the module [CallConv]. See the method [CallSite::]. **)
+external set_instruction_call_conv: int -> llvalue -> unit
+  = "llvm_set_instruction_call_conv"
+
 (*--... Operations on phi nodes 
--*)
 
 (** [add_incoming (v, bb) pn] adds the value [v] to the phi node [pn] for use

Modified: llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c?rev=45422&r1=45421&r2=45422&view=diff

==
--- llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c (original)
+++ llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c Sat Dec 29 14:45:00 2007
@@ -652,6 +652,19 @@
   return Val_bool(LLVMValueIsBasicBlock(Val));
 }
 
+/*--... Operations on call sites 
...--*/
+
+/* llvalue -> int */
+CAMLprim value llvm_instruction_call_conv(LLVMValueRef Inst) {
+  return Val_int(LLVMGetInstructionCallConv(Inst));
+}
+
+/* int -> llvalue -> unit */
+CAMLprim value llvm_set_instruction_call_conv(value CC, LLVMValueRef Inst) {
+  LLVMSetInstructionCallConv(Inst, Int_val(CC));
+  return Val_unit;
+}
+
 /*--... Operations on phi nodes 
--*/
 
 /* (llvalue * llbasicblock) -> llvalue -> unit */

Modified: llvm/trunk/include/llvm-c/Core.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/Core.h?rev=45422&r1=45421&r2=45422&view=diff

==
--- llvm/trunk/include/llvm-c/Core.h (original)
+++ llvm/trunk/include/llvm-c/Core.h Sat Dec 29 14:45:00 2007
@@ -378,6 +378,10 @@
const char *Name);
 void LLVMDeleteBasicBlock(LLVMBasicBlockRef BB);
 
+/* Operations on call sites */
+void LLVMSetInstructionCallConv(LLVMValueRef Instr, unsigned CC);
+unsigned LLVMGetInstructionCallConv(LLVMValueRef Instr);
+
 /* Operations on phi nodes */
 void LLVMAddIncoming(LLVMValueRef PhiNode, LLVMValueRef *IncomingValues,
  LLVMBasicBlockRef *IncomingBlocks, unsigned Count);

Modified: llvm/trunk/test/Bindings/Ocaml/vmcore.ml
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bindings/Ocaml/vmcore.ml?rev=45422&r1=45421&r2=45422&view=diff

==

[llvm-commits] [llvm] r45423 - in /llvm/trunk/tools: gccas/gccas.sh gccld/gccld.sh llvm-upgrade/UpgradeLexer.l llvm-upgrade/UpgradeParser.y llvmc/ConfigLexer.l

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 14:46:15 2007
New Revision: 45423

URL: http://llvm.org/viewvc/llvm-project?rev=45423&view=rev
Log:
remove attributions

Modified:
llvm/trunk/tools/gccas/gccas.sh
llvm/trunk/tools/gccld/gccld.sh
llvm/trunk/tools/llvm-upgrade/UpgradeLexer.l
llvm/trunk/tools/llvm-upgrade/UpgradeParser.y
llvm/trunk/tools/llvmc/ConfigLexer.l

Modified: llvm/trunk/tools/gccas/gccas.sh
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gccas/gccas.sh?rev=45423&r1=45422&r2=45423&view=diff

==
Binary files - no diff available.

Modified: llvm/trunk/tools/gccld/gccld.sh
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gccld/gccld.sh?rev=45423&r1=45422&r2=45423&view=diff

==
Binary files - no diff available.

Modified: llvm/trunk/tools/llvm-upgrade/UpgradeLexer.l
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-upgrade/UpgradeLexer.l?rev=45423&r1=45422&r2=45423&view=diff

==
--- llvm/trunk/tools/llvm-upgrade/UpgradeLexer.l (original)
+++ llvm/trunk/tools/llvm-upgrade/UpgradeLexer.l Sat Dec 29 14:46:15 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/tools/llvm-upgrade/UpgradeParser.y
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-upgrade/UpgradeParser.y?rev=45423&r1=45422&r2=45423&view=diff

==
--- llvm/trunk/tools/llvm-upgrade/UpgradeParser.y (original)
+++ llvm/trunk/tools/llvm-upgrade/UpgradeParser.y Sat Dec 29 14:46:15 2007
@@ -2,8 +2,8 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: llvm/trunk/tools/llvmc/ConfigLexer.l
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvmc/ConfigLexer.l?rev=45423&r1=45422&r2=45423&view=diff

==
--- llvm/trunk/tools/llvmc/ConfigLexer.l (original)
+++ llvm/trunk/tools/llvmc/ConfigLexer.l Sat Dec 29 14:46:15 2007
@@ -2,8 +2,8 @@
 // 
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 // 
 
//===--===//
 //


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


[llvm-commits] [llvm] r45425 - in /llvm/trunk: autoconf/ bindings/ocaml/analysis/ bindings/ocaml/bitreader/ bindings/ocaml/bitwriter/ bindings/ocaml/executionengine/ bindings/ocaml/llvm/ include/llvm/

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 16:59:10 2007
New Revision: 45425

URL: http://llvm.org/viewvc/llvm-project?rev=45425&view=rev
Log:
remove attribution from a variety of miscellaneous files.

Modified:
llvm/trunk/autoconf/configure.ac
llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c
llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml
llvm/trunk/bindings/ocaml/analysis/llvm_analysis.mli
llvm/trunk/bindings/ocaml/bitreader/bitreader_ocaml.c
llvm/trunk/bindings/ocaml/bitreader/llvm_bitreader.ml
llvm/trunk/bindings/ocaml/bitreader/llvm_bitreader.mli
llvm/trunk/bindings/ocaml/bitwriter/bitwriter_ocaml.c
llvm/trunk/bindings/ocaml/bitwriter/llvm_bitwriter.ml
llvm/trunk/bindings/ocaml/bitwriter/llvm_bitwriter.mli
llvm/trunk/bindings/ocaml/executionengine/executionengine_ocaml.c
llvm/trunk/bindings/ocaml/executionengine/llvm_executionengine.ml
llvm/trunk/bindings/ocaml/executionengine/llvm_executionengine.mli
llvm/trunk/bindings/ocaml/llvm/llvm.ml
llvm/trunk/bindings/ocaml/llvm/llvm.mli
llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c
llvm/trunk/include/llvm/ADT/hash_map.in
llvm/trunk/include/llvm/ADT/hash_set.in
llvm/trunk/include/llvm/ADT/ilist
llvm/trunk/include/llvm/ADT/iterator.in
llvm/trunk/include/llvm/CodeGen/ValueTypes.td
llvm/trunk/include/llvm/Instruction.def
llvm/trunk/include/llvm/Intrinsics.td
llvm/trunk/include/llvm/IntrinsicsARM.td
llvm/trunk/include/llvm/IntrinsicsCellSPU.td
llvm/trunk/include/llvm/IntrinsicsPowerPC.td
llvm/trunk/include/llvm/IntrinsicsX86.td
llvm/trunk/include/llvm/Support/DataTypes.h.in
llvm/trunk/runtime/GC/GCInterface.h
llvm/trunk/runtime/GC/SemiSpace/semispace.c
llvm/trunk/runtime/libprofile/BasicBlockTracing.c
llvm/trunk/runtime/libprofile/BlockProfiling.c
llvm/trunk/runtime/libprofile/CommonProfiling.c
llvm/trunk/runtime/libprofile/EdgeProfiling.c
llvm/trunk/runtime/libprofile/FunctionProfiling.c
llvm/trunk/runtime/libprofile/Profiling.h
llvm/trunk/tools/llvm-config/llvm-config.in.in

Modified: llvm/trunk/autoconf/configure.ac
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/autoconf/configure.ac?rev=45425&r1=45424&r2=45425&view=diff

==
--- llvm/trunk/autoconf/configure.ac (original)
+++ llvm/trunk/autoconf/configure.ac Sat Dec 29 16:59:10 2007
@@ -1,8 +1,8 @@
 dnl === configure.ac 
===
 dnl The LLVM Compiler Infrastructure
 dnl
-dnl This file was developed by the LLVM research group and is distributed under
-dnl the University of Illinois Open Source License. See LICENSE.TXT for 
details.
+dnl This file is distributed under the University of Illinois Open Source
+dnl License. See LICENSE.TXT for details.
 dnl
 
dnl===---===
 dnl This is the LLVM configuration script. It is processed by the autoconf

Modified: llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c?rev=45425&r1=45424&r2=45425&view=diff

==
--- llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c (original)
+++ llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c Sat Dec 29 16:59:10 2007
@@ -2,8 +2,8 @@
 |*
*|
 |* The LLVM Compiler Infrastructure   
*|
 |*
*|
-|* This file was developed by Gordon Henriksen and is distributed under the   
*|
-|* University of Illinois Open Source License. See LICENSE.TXT for details.   
*|
+|* This file is distributed under the University of Illinois Open Source  
*|
+|* License. See LICENSE.TXT for details.  
*|
 |*
*|
 
|*===--===*|
 |*
*|

Modified: llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml?rev=45425&r1=45424&r2=45425&view=diff

==
--- llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml (original)
+++ llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml Sat Dec 29 16:59:10 2007
@@ -2,8 +2,8 @@
  *
  * The LLVM Compiler Infrastructure
  *
- * This file was developed by Gordon Henriksen and is distributed under the
- * University of Illinois Open Source License. See LICENSE.TXT for details.
+ * This file is distr

[llvm-commits] [test-suite] r45426 - /test-suite/trunk/SingleSource/UnitTests/Integer/

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 17:18:34 2007
New Revision: 45426

URL: http://llvm.org/viewvc/llvm-project?rev=45426&view=rev
Log:
Remove attribution

Modified:
test-suite/trunk/SingleSource/UnitTests/Integer/SSAtest.c
test-suite/trunk/SingleSource/UnitTests/Integer/arith.c
test-suite/trunk/SingleSource/UnitTests/Integer/array.c
test-suite/trunk/SingleSource/UnitTests/Integer/big_bit_concat.c
test-suite/trunk/SingleSource/UnitTests/Integer/big_part_set.c
test-suite/trunk/SingleSource/UnitTests/Integer/bigint.c
test-suite/trunk/SingleSource/UnitTests/Integer/bit_concat.c
test-suite/trunk/SingleSource/UnitTests/Integer/bit_concat_cpp.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/bit_select.c
test-suite/trunk/SingleSource/UnitTests/Integer/bit_select_cpp.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/bit_set.c
test-suite/trunk/SingleSource/UnitTests/Integer/bit_set_cpp.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/bitbit.c
test-suite/trunk/SingleSource/UnitTests/Integer/bitlogic.c
test-suite/trunk/SingleSource/UnitTests/Integer/constval.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/convert.c
test-suite/trunk/SingleSource/UnitTests/Integer/cppfield.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/cppfield2.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/enum.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/exception.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/extern-inline-redef.c
test-suite/trunk/SingleSource/UnitTests/Integer/field.c
test-suite/trunk/SingleSource/UnitTests/Integer/folding.c
test-suite/trunk/SingleSource/UnitTests/Integer/general-test.c
test-suite/trunk/SingleSource/UnitTests/Integer/global.c
test-suite/trunk/SingleSource/UnitTests/Integer/large-array.c
test-suite/trunk/SingleSource/UnitTests/Integer/list.c
test-suite/trunk/SingleSource/UnitTests/Integer/local-array.c
test-suite/trunk/SingleSource/UnitTests/Integer/local-union.c
test-suite/trunk/SingleSource/UnitTests/Integer/matrix.c
test-suite/trunk/SingleSource/UnitTests/Integer/memory.c
test-suite/trunk/SingleSource/UnitTests/Integer/offset.c
test-suite/trunk/SingleSource/UnitTests/Integer/override.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/part_select.c
test-suite/trunk/SingleSource/UnitTests/Integer/part_select_cpp.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/pointer.c
test-suite/trunk/SingleSource/UnitTests/Integer/sign.c
test-suite/trunk/SingleSource/UnitTests/Integer/sign2.c
test-suite/trunk/SingleSource/UnitTests/Integer/static.c
test-suite/trunk/SingleSource/UnitTests/Integer/struct1.c
test-suite/trunk/SingleSource/UnitTests/Integer/struct2.c
test-suite/trunk/SingleSource/UnitTests/Integer/structInit.c
test-suite/trunk/SingleSource/UnitTests/Integer/switch.c
test-suite/trunk/SingleSource/UnitTests/Integer/template.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/template2.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/template3.cpp
test-suite/trunk/SingleSource/UnitTests/Integer/trunc.c
test-suite/trunk/SingleSource/UnitTests/Integer/union-init.c
test-suite/trunk/SingleSource/UnitTests/Integer/union-struct.c
test-suite/trunk/SingleSource/UnitTests/Integer/union2.c

Modified: test-suite/trunk/SingleSource/UnitTests/Integer/SSAtest.c
URL: 
http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/Integer/SSAtest.c?rev=45426&r1=45425&r2=45426&view=diff

==
--- test-suite/trunk/SingleSource/UnitTests/Integer/SSAtest.c (original)
+++ test-suite/trunk/SingleSource/UnitTests/Integer/SSAtest.c Sat Dec 29 
17:18:34 2007
@@ -1,7 +1,7 @@
 //===--- SSAtest.c --- Test Cases for Bit Accurate Types 
--===//
 //
-// This file was developed by Guoling Han and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 
//===--===//
 //

Modified: test-suite/trunk/SingleSource/UnitTests/Integer/arith.c
URL: 
http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/Integer/arith.c?rev=45426&r1=45425&r2=45426&view=diff

==
--- test-suite/trunk/SingleSource/UnitTests/Integer/arith.c (original)
+++ test-suite/trunk/SingleSource/UnitTests/Integer/arith.c Sat Dec 29 17:18:34 
2007
@@ -1,7 +1,7 @@
 //===--- arith.c --- Test Cases for Bit Accurate Types 
===//
 //
-// This file was developed by Guoling Han and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under t

[llvm-commits] [llvm] r45428 - in /llvm/trunk: include/llvm/CodeGen/MachineInstr.h lib/CodeGen/MachineInstr.cpp

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:12:25 2007
New Revision: 45428

URL: http://llvm.org/viewvc/llvm-project?rev=45428&view=rev
Log:
simplify some code by factoring operand construction better.

Modified:
llvm/trunk/include/llvm/CodeGen/MachineInstr.h
llvm/trunk/lib/CodeGen/MachineInstr.cpp

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=45428&r1=45427&r2=45428&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Sat Dec 29 18:12:25 2007
@@ -98,10 +98,6 @@
 MachineOperand Op;
 Op.opType = MachineOperand::MO_Immediate;
 Op.contents.immedVal = Val;
-Op.IsDef = false;
-Op.IsImp = false;
-Op.IsKill = false;
-Op.IsDead = false;
 Op.auxInfo.offset = 0;
 return Op;
   }
@@ -110,14 +106,24 @@
 MachineOperand Op;
 Op.opType = MachineOperand::MO_FrameIndex;
 Op.contents.immedVal = Idx;
-Op.IsDef = false;
-Op.IsImp = false;
-Op.IsKill = false;
-Op.IsDead = false;
 Op.auxInfo.offset = 0;
 return Op;
   }
-
+  
+  static MachineOperand CreateReg(unsigned Reg, bool isDef, bool isImp = false,
+  bool isKill = false, bool isDead = false,
+  unsigned SubReg = 0) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_Register;
+Op.IsDef = isDef;
+Op.IsImp = isImp;
+Op.IsKill = isKill;
+Op.IsDead = isDead;
+Op.contents.RegNo = Reg;
+Op.auxInfo.subReg = SubReg;
+return Op;
+  }
+  
   const MachineOperand &operator=(const MachineOperand &MO) {
 contents = MO.contents;
 IsDef= MO.IsDef;
@@ -341,7 +347,6 @@
   void operator=(const MachineInstr&); // DO NOT IMPLEMENT
 
   // Intrusive list support
-  //
   friend struct ilist_traits;
 
 public:
@@ -350,7 +355,7 @@
   MachineInstr();
 
   /// MachineInstr ctor - This constructor create a MachineInstr and add the
-  /// implicit operands. It reserves space for number of operands specified by
+  /// implicit operands.  It reserves space for number of operands specified by
   /// TargetInstrDescriptor.
   explicit MachineInstr(const TargetInstrDescriptor &TID, bool NoImp = false);
 
@@ -465,24 +470,17 @@
   void addRegOperand(unsigned Reg, bool IsDef, bool IsImp = false,
  bool IsKill = false, bool IsDead = false,
  unsigned SubReg = 0) {
-MachineOperand &Op = AddNewOperand(IsImp);
-Op.opType = MachineOperand::MO_Register;
-Op.IsDef = IsDef;
-Op.IsImp = IsImp;
-Op.IsKill = IsKill;
-Op.IsDead = IsDead;
-Op.contents.RegNo = Reg;
-Op.auxInfo.subReg = (unsigned char)SubReg;
+// FIXME: Make the AddNewOperand api sane.
+AddNewOperand(IsImp) = MachineOperand::CreateReg(Reg, IsDef, IsImp, IsKill,
+ IsDead, SubReg);
   }
 
   /// addImmOperand - Add a zero extended constant argument to the
   /// machine instruction.
   ///
   void addImmOperand(int64_t Val) {
-MachineOperand &Op = AddNewOperand();
-Op.opType = MachineOperand::MO_Immediate;
-Op.contents.immedVal = Val;
-Op.auxInfo.offset = 0;
+// FIXME: Make the AddNewOperand api sane.
+AddNewOperand() = MachineOperand::CreateImm(Val);
   }
 
   void addMachineBasicBlockOperand(MachineBasicBlock *MBB) {
@@ -495,10 +493,8 @@
   /// addFrameIndexOperand - Add an abstract frame index to the instruction
   ///
   void addFrameIndexOperand(unsigned Idx) {
-MachineOperand &Op = AddNewOperand();
-Op.opType = MachineOperand::MO_FrameIndex;
-Op.contents.immedVal = Idx;
-Op.auxInfo.offset = 0;
+// FIXME: Make the AddNewOperand api sane.
+AddNewOperand() = MachineOperand::CreateFrameIndex(Idx);
   }
 
   /// addConstantPoolndexOperand - Add a constant pool object index to the

Modified: llvm/trunk/lib/CodeGen/MachineInstr.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineInstr.cpp?rev=45428&r1=45427&r2=45428&view=diff

==
--- llvm/trunk/lib/CodeGen/MachineInstr.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineInstr.cpp Sat Dec 29 18:12:25 2007
@@ -31,29 +31,11 @@
 
 void MachineInstr::addImplicitDefUseOperands() {
   if (TID->ImplicitDefs)
-for (const unsigned *ImpDefs = TID->ImplicitDefs; *ImpDefs; ++ImpDefs) {
-  MachineOperand Op;
-  Op.opType = MachineOperand::MO_Register;
-  Op.IsDef = true;
-  Op.IsImp = true;
-  Op.IsKill = false;
-  Op.IsDead = false;
-  Op.contents.RegNo = *ImpDefs;
-  Op.auxInfo.subReg = 0;
-  Operands.push_back(Op);
-}
+for (const unsigned *ImpDefs = TID->ImplicitDefs; *ImpDefs; ++ImpDefs)
+  addRegOperand(*ImpDefs, true, true);
   if (TID->ImplicitUses)
-fo

[llvm-commits] [llvm] r45429 - /llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:25:23 2007
New Revision: 45429

URL: http://llvm.org/viewvc/llvm-project?rev=45429&view=rev
Log:
tblgen shouldn't include headers from llvm codegen.

Modified:
llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp

Modified: llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp?rev=45429&r1=45428&r2=45429&view=diff

==
--- llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp Sat Dec 29 18:25:23 2007
@@ -14,9 +14,9 @@
 
 #include "InstrInfoEmitter.h"
 #include "CodeGenTarget.h"
-#include "llvm/Target/TargetInstrInfo.h"
 #include "Record.h"
 #include 
+#include 
 using namespace llvm;
 
 // runEnums - Print out enum values for all of the instructions.
@@ -37,7 +37,7 @@
   }
   
   if (Namespace.empty()) {
-cerr << "No instructions defined!\n";
+std::cerr << "No instructions defined!\n";
 exit(1);
   }
 
@@ -365,7 +365,7 @@
 return;
   }
 
-  cerr << "Unhandled initializer: " << *Val << "\n";
+  std::cerr << "Unhandled initializer: " << *Val << "\n";
   throw "In record '" + R->getName() + "' for TSFlag emission.";
 }
 


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


[llvm-commits] [llvm] r45430 - /llvm/trunk/include/llvm/CodeGen/MachineInstr.h

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:29:19 2007
New Revision: 45430

URL: http://llvm.org/viewvc/llvm-project?rev=45430&view=rev
Log:
1. Make a static MachineOperand::create* method for every
   operand type.
2. Move these create methods below the accessors.
3. Simplify all the MachineInstr::add* methods to use these.

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

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=45430&r1=45429&r2=45430&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Sat Dec 29 18:29:19 2007
@@ -94,47 +94,6 @@
   
   ~MachineOperand() {}
   
-  static MachineOperand CreateImm(int64_t Val) {
-MachineOperand Op;
-Op.opType = MachineOperand::MO_Immediate;
-Op.contents.immedVal = Val;
-Op.auxInfo.offset = 0;
-return Op;
-  }
-  
-  static MachineOperand CreateFrameIndex(unsigned Idx) {
-MachineOperand Op;
-Op.opType = MachineOperand::MO_FrameIndex;
-Op.contents.immedVal = Idx;
-Op.auxInfo.offset = 0;
-return Op;
-  }
-  
-  static MachineOperand CreateReg(unsigned Reg, bool isDef, bool isImp = false,
-  bool isKill = false, bool isDead = false,
-  unsigned SubReg = 0) {
-MachineOperand Op;
-Op.opType = MachineOperand::MO_Register;
-Op.IsDef = isDef;
-Op.IsImp = isImp;
-Op.IsKill = isKill;
-Op.IsDead = isDead;
-Op.contents.RegNo = Reg;
-Op.auxInfo.subReg = SubReg;
-return Op;
-  }
-  
-  const MachineOperand &operator=(const MachineOperand &MO) {
-contents = MO.contents;
-IsDef= MO.IsDef;
-IsImp= MO.IsImp;
-IsKill   = MO.IsKill;
-IsDead   = MO.IsDead;
-opType   = MO.opType;
-auxInfo  = MO.auxInfo;
-return *this;
-  }
-
   /// getType - Returns the MachineOperandType for this operand.
   ///
   MachineOperandType getType() const { return opType; }
@@ -318,6 +277,79 @@
 IsKill = isKill;
 IsDead = isDead;
   }
+  
+  static MachineOperand CreateImm(int64_t Val) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_Immediate;
+Op.contents.immedVal = Val;
+Op.auxInfo.offset = 0;
+return Op;
+  }
+  static MachineOperand CreateReg(unsigned Reg, bool isDef, bool isImp = false,
+  bool isKill = false, bool isDead = false,
+  unsigned SubReg = 0) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_Register;
+Op.IsDef = isDef;
+Op.IsImp = isImp;
+Op.IsKill = isKill;
+Op.IsDead = isDead;
+Op.contents.RegNo = Reg;
+Op.auxInfo.subReg = SubReg;
+return Op;
+  }
+  static MachineOperand CreateBasicBlock(MachineBasicBlock *MBB) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_MachineBasicBlock;
+Op.contents.MBB = MBB;
+Op.auxInfo.offset = 0;
+return Op;
+  }
+  static MachineOperand CreateFrameIndex(unsigned Idx) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_FrameIndex;
+Op.contents.immedVal = Idx;
+Op.auxInfo.offset = 0;
+return Op;
+  }
+  static MachineOperand CreateConstantPoolIndex(unsigned Idx, int Offset) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_ConstantPoolIndex;
+Op.contents.immedVal = Idx;
+Op.auxInfo.offset = Offset;
+return Op;
+  }
+  static MachineOperand CreateJumpTableIndex(unsigned Idx) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_JumpTableIndex;
+Op.contents.immedVal = Idx;
+Op.auxInfo.offset = 0;
+return Op;
+  }
+  static MachineOperand CreateGlobalAddress(GlobalValue *GV, int Offset) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_GlobalAddress;
+Op.contents.GV = GV;
+Op.auxInfo.offset = Offset;
+return Op;
+  }
+  static MachineOperand CreateExternalSymbol(const char *SymName, int Offset) {
+MachineOperand Op;
+Op.opType = MachineOperand::MO_ExternalSymbol;
+Op.contents.SymbolName = SymName;
+Op.auxInfo.offset = Offset;
+return Op;
+  }
+  const MachineOperand &operator=(const MachineOperand &MO) {
+contents = MO.contents;
+IsDef= MO.IsDef;
+IsImp= MO.IsImp;
+IsKill   = MO.IsKill;
+IsDead   = MO.IsDead;
+opType   = MO.opType;
+auxInfo  = MO.auxInfo;
+return *this;
+  }
 
   friend std::ostream& operator<<(std::ostream& os, const MachineOperand& mop) 
{
 mop.print(os);
@@ -464,73 +496,65 @@
   
//======//
   // Accessors to add operands when building up machine instructions.
   //
-
+  void addOperand(const MachineOperand &Op) {
+bool isImpReg = Op.isRegister() && Op.isImplicit();
+assert((isImpReg || !OperandsComplete()) &&
+   "Trying 

[llvm-commits] [llvm] r45431 - /llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:35:18 2007
New Revision: 45431

URL: http://llvm.org/viewvc/llvm-project?rev=45431&view=rev
Log:
switch MIBuilder over to use the simplified operand addition methods.

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

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h?rev=45431&r1=45430&r2=45431&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h Sat Dec 29 18:35:18 
2007
@@ -40,46 +40,47 @@
   MachineInstrBuilder &addReg(unsigned RegNo, bool isDef = false, 
   bool isImp = false, bool isKill = false, 
   bool isDead = false, unsigned SubReg = 0) const {
-MI->addRegOperand(RegNo, isDef, isImp, isKill, isDead, SubReg);
+MI->addOperand(MachineOperand::CreateReg(RegNo, isDef, isImp, isKill,
+ isDead, SubReg));
 return *this;
   }
 
   /// addImm - Add a new immediate operand.
   ///
   const MachineInstrBuilder &addImm(int64_t Val) const {
-MI->addImmOperand(Val);
+MI->addOperand(MachineOperand::CreateImm(Val));
 return *this;
   }
 
   const MachineInstrBuilder &addMBB(MachineBasicBlock *MBB) const {
-MI->addMachineBasicBlockOperand(MBB);
+MI->addOperand(MachineOperand::CreateBasicBlock(MBB));
 return *this;
   }
 
   const MachineInstrBuilder &addFrameIndex(unsigned Idx) const {
-MI->addFrameIndexOperand(Idx);
+MI->addOperand(MachineOperand::CreateFrameIndex(Idx));
 return *this;
   }
 
   const MachineInstrBuilder &addConstantPoolIndex(unsigned Idx,
   int Offset = 0) const {
-MI->addConstantPoolIndexOperand(Idx, Offset);
+MI->addOperand(MachineOperand::CreateConstantPoolIndex(Idx, Offset));
 return *this;
   }
 
   const MachineInstrBuilder &addJumpTableIndex(unsigned Idx) const {
-MI->addJumpTableIndexOperand(Idx);
+MI->addOperand(MachineOperand::CreateJumpTableIndex(Idx));
 return *this;
   }
 
   const MachineInstrBuilder &addGlobalAddress(GlobalValue *GV,
   int Offset = 0) const {
-MI->addGlobalAddressOperand(GV, Offset);
+MI->addOperand(MachineOperand::CreateGlobalAddress(GV, Offset));
 return *this;
   }
 
   const MachineInstrBuilder &addExternalSymbol(const char *FnName) const{
-MI->addExternalSymbolOperand(FnName);
+MI->addOperand(MachineOperand::CreateExternalSymbol(FnName, 0));
 return *this;
   }
 };


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


[llvm-commits] [llvm] r45432 - in /llvm/trunk/lib/CodeGen: LiveVariables.cpp MachineInstr.cpp SelectionDAG/ScheduleDAG.cpp

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:41:17 2007
New Revision: 45432

URL: http://llvm.org/viewvc/llvm-project?rev=45432&view=rev
Log:
Start using the simplified methods for adding operands.

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

Modified: llvm/trunk/lib/CodeGen/LiveVariables.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveVariables.cpp?rev=45432&r1=45431&r2=45432&view=diff

==
--- llvm/trunk/lib/CodeGen/LiveVariables.cpp (original)
+++ llvm/trunk/lib/CodeGen/LiveVariables.cpp Sat Dec 29 18:41:17 2007
@@ -218,7 +218,8 @@
   // If not found, this means an alias of one of the operand is killed. Add a
   // new implicit operand if required.
   if (!Found && AddIfNotFound) {
-MI->addRegOperand(IncomingReg, 
false/*IsDef*/,true/*IsImp*/,true/*IsKill*/);
+MI->addOperand(MachineOperand::CreateReg(IncomingReg, false/*IsDef*/,
+ true/*IsImp*/,true/*IsKill*/));
 return true;
   }
   return Found;
@@ -250,8 +251,9 @@
   // If not found, this means an alias of one of the operand is dead. Add a
   // new implicit operand.
   if (!Found && AddIfNotFound) {
-MI->addRegOperand(IncomingReg, true/*IsDef*/,true/*IsImp*/,false/*IsKill*/,
-  true/*IsDead*/);
+MI->addOperand(MachineOperand::CreateReg(IncomingReg, true/*IsDef*/,
+ true/*IsImp*/,false/*IsKill*/,
+ true/*IsDead*/));
 return true;
   }
   return Found;
@@ -263,8 +265,9 @@
 MachineInstr *Def = PhysRegPartDef[Reg][i];
 // First one is just a def. This means the use is reading some undef bits.
 if (i != 0)
-  Def->addRegOperand(Reg, false/*IsDef*/,true/*IsImp*/,true/*IsKill*/);
-Def->addRegOperand(Reg, true/*IsDef*/,true/*IsImp*/);
+  Def->addOperand(MachineOperand::CreateReg(Reg, false/*IsDef*/,
+true/*IsImp*/,true/*IsKill*/));
+
Def->addOperand(MachineOperand::CreateReg(Reg,true/*IsDef*/,true/*IsImp*/));
   }
   PhysRegPartDef[Reg].clear();
 
@@ -276,7 +279,8 @@
   !PhysRegUsed[Reg]) {
 MachineInstr *Def = PhysRegInfo[Reg];
 if (!Def->findRegisterDefOperand(Reg))
-  Def->addRegOperand(Reg, true/*IsDef*/,true/*IsImp*/);
+  Def->addOperand(MachineOperand::CreateReg(Reg, true/*IsDef*/,
+true/*IsImp*/));
   }
 
   // There is a now a proper use, forget about the last partial use.
@@ -397,8 +401,10 @@
 // being re-defined. Treat it as read/mod/write.
 // EAX =
 // AX  =EAX, EAX
-MI->addRegOperand(SuperReg, 
false/*IsDef*/,true/*IsImp*/,true/*IsKill*/);
-MI->addRegOperand(SuperReg, true/*IsDef*/,true/*IsImp*/);
+MI->addOperand(MachineOperand::CreateReg(SuperReg, false/*IsDef*/,
+ 
true/*IsImp*/,true/*IsKill*/));
+MI->addOperand(MachineOperand::CreateReg(SuperReg, true/*IsDef*/,
+ true/*IsImp*/));
 PhysRegInfo[SuperReg] = MI;
 PhysRegUsed[SuperReg] = false;
 PhysRegPartUse[SuperReg] = NULL;
@@ -538,7 +544,7 @@
 HandlePhysRegUse(*I, Ret);
 // Add live-out registers as implicit uses.
 if (Ret->findRegisterUseOperandIdx(*I) == -1)
-  Ret->addRegOperand(*I, false, true);
+  Ret->addOperand(MachineOperand::CreateReg(*I, false, true));
   }
 }
 

Modified: llvm/trunk/lib/CodeGen/MachineInstr.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineInstr.cpp?rev=45432&r1=45431&r2=45432&view=diff

==
--- llvm/trunk/lib/CodeGen/MachineInstr.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineInstr.cpp Sat Dec 29 18:41:17 2007
@@ -32,10 +32,10 @@
 void MachineInstr::addImplicitDefUseOperands() {
   if (TID->ImplicitDefs)
 for (const unsigned *ImpDefs = TID->ImplicitDefs; *ImpDefs; ++ImpDefs)
-  addRegOperand(*ImpDefs, true, true);
+  addOperand(MachineOperand::CreateReg(*ImpDefs, true, true));
   if (TID->ImplicitUses)
 for (const unsigned *ImpUses = TID->ImplicitUses; *ImpUses; ++ImpUses)
-  addRegOperand(*ImpUses, false, true);
+  addOperand(MachineOperand::CreateReg(*ImpUses, false, true));
 }
 
 /// MachineInstr ctor - This constructor create a MachineInstr and add the
@@ -249,13 +249,8 @@
   if (TID->Flags & M_PREDICABLE) {
 for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
   if ((TID->OpInfo[i].Flags & M_PREDICATE_OPERAND)) {
-const MachineOperand &MO = MI->getOperand(i);
 // Predicated operands must be last operands.
-if (MO.isRegister())
-  addRegOperand(

[llvm-commits] [llvm] r45433 - in /llvm/trunk: include/llvm/CodeGen/MachineInstr.h include/llvm/CodeGen/MachineInstrBuilder.h lib/Target/X86/X86RegisterInfo.cpp

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:45:46 2007
New Revision: 45433

URL: http://llvm.org/viewvc/llvm-project?rev=45433&view=rev
Log:
Shrinkify the machine operand creation method names.

Modified:
llvm/trunk/include/llvm/CodeGen/MachineInstr.h
llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h
llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=45433&r1=45432&r2=45433&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Sat Dec 29 18:45:46 2007
@@ -298,42 +298,42 @@
 Op.auxInfo.subReg = SubReg;
 return Op;
   }
-  static MachineOperand CreateBasicBlock(MachineBasicBlock *MBB) {
+  static MachineOperand CreateMBB(MachineBasicBlock *MBB) {
 MachineOperand Op;
 Op.opType = MachineOperand::MO_MachineBasicBlock;
 Op.contents.MBB = MBB;
 Op.auxInfo.offset = 0;
 return Op;
   }
-  static MachineOperand CreateFrameIndex(unsigned Idx) {
+  static MachineOperand CreateFI(unsigned Idx) {
 MachineOperand Op;
 Op.opType = MachineOperand::MO_FrameIndex;
 Op.contents.immedVal = Idx;
 Op.auxInfo.offset = 0;
 return Op;
   }
-  static MachineOperand CreateConstantPoolIndex(unsigned Idx, int Offset) {
+  static MachineOperand CreateCPI(unsigned Idx, int Offset) {
 MachineOperand Op;
 Op.opType = MachineOperand::MO_ConstantPoolIndex;
 Op.contents.immedVal = Idx;
 Op.auxInfo.offset = Offset;
 return Op;
   }
-  static MachineOperand CreateJumpTableIndex(unsigned Idx) {
+  static MachineOperand CreateJTI(unsigned Idx) {
 MachineOperand Op;
 Op.opType = MachineOperand::MO_JumpTableIndex;
 Op.contents.immedVal = Idx;
 Op.auxInfo.offset = 0;
 return Op;
   }
-  static MachineOperand CreateGlobalAddress(GlobalValue *GV, int Offset) {
+  static MachineOperand CreateGA(GlobalValue *GV, int Offset) {
 MachineOperand Op;
 Op.opType = MachineOperand::MO_GlobalAddress;
 Op.contents.GV = GV;
 Op.auxInfo.offset = Offset;
 return Op;
   }
-  static MachineOperand CreateExternalSymbol(const char *SymName, int Offset) {
+  static MachineOperand CreateES(const char *SymName, int Offset) {
 MachineOperand Op;
 Op.opType = MachineOperand::MO_ExternalSymbol;
 Op.contents.SymbolName = SymName;
@@ -524,39 +524,39 @@
   }
 
   void addMachineBasicBlockOperand(MachineBasicBlock *MBB) {
-addOperand(MachineOperand::CreateBasicBlock(MBB));
+addOperand(MachineOperand::CreateMBB(MBB));
   }
 
   /// addFrameIndexOperand - Add an abstract frame index to the instruction
   ///
   void addFrameIndexOperand(unsigned Idx) {
-addOperand(MachineOperand::CreateFrameIndex(Idx));
+addOperand(MachineOperand::CreateFI(Idx));
   }
 
   /// addConstantPoolndexOperand - Add a constant pool object index to the
   /// instruction.
   ///
   void addConstantPoolIndexOperand(unsigned Idx, int Offset) {
-addOperand(MachineOperand::CreateConstantPoolIndex(Idx, Offset));
+addOperand(MachineOperand::CreateCPI(Idx, Offset));
   }
 
   /// addJumpTableIndexOperand - Add a jump table object index to the
   /// instruction.
   ///
   void addJumpTableIndexOperand(unsigned Idx) {
-addOperand(MachineOperand::CreateJumpTableIndex(Idx));
+addOperand(MachineOperand::CreateJTI(Idx));
   }
   
   void addGlobalAddressOperand(GlobalValue *GV, int Offset) {
-addOperand(MachineOperand::CreateGlobalAddress(GV, Offset));
+addOperand(MachineOperand::CreateGA(GV, Offset));
   }
 
   /// addExternalSymbolOperand - Add an external symbol operand to this instr
   ///
   void addExternalSymbolOperand(const char *SymName, int Offset = 0) {
-addOperand(MachineOperand::CreateExternalSymbol(SymName, Offset));
+addOperand(MachineOperand::CreateES(SymName, Offset));
   }
-
+  
   
//======//
   // Accessors used to modify instructions in place.
   //

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h?rev=45433&r1=45432&r2=45433&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstrBuilder.h Sat Dec 29 18:45:46 
2007
@@ -53,34 +53,34 @@
   }
 
   const MachineInstrBuilder &addMBB(MachineBasicBlock *MBB) const {
-MI->addOperand(MachineOperand::CreateBasicBlock(MBB));
+MI->addOperand(MachineOperand::CreateMBB(MBB));
 return *this;
   }
 
   const MachineInstrBuilder &addFrameIndex(unsigned Idx) const {
-MI->addOperand(MachineOperand::CreateFrameIndex(Idx));
+MI->addOperand(MachineOperand::Creat

[llvm-commits] [llvm] r45434 - /llvm/trunk/include/llvm/CodeGen/MachineInstr.h

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:50:55 2007
New Revision: 45434

URL: http://llvm.org/viewvc/llvm-project?rev=45434&view=rev
Log:
make offset operand optional.

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

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=45434&r1=45433&r2=45434&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Sat Dec 29 18:50:55 2007
@@ -333,7 +333,7 @@
 Op.auxInfo.offset = Offset;
 return Op;
   }
-  static MachineOperand CreateES(const char *SymName, int Offset) {
+  static MachineOperand CreateES(const char *SymName, int Offset = 0) {
 MachineOperand Op;
 Op.opType = MachineOperand::MO_ExternalSymbol;
 Op.contents.SymbolName = SymName;
@@ -506,7 +506,7 @@
   // Insert a real operand before any implicit ones.
   Operands.insert(Operands.begin()+Operands.size()-NumImplicitOps, Op);
   }
-  
+
   /// addRegOperand - Add a register operand.
   ///
   void addRegOperand(unsigned Reg, bool IsDef, bool IsImp = false,


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


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

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:51:11 2007
New Revision: 45435

URL: http://llvm.org/viewvc/llvm-project?rev=45435&view=rev
Log:
use simplified operand addition methods.

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=45435&r1=45434&r2=45435&view=diff

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp Sat Dec 29 18:51:11 2007
@@ -454,26 +454,19 @@
 abort();
   }
 }
-  } else if (ConstantSDNode *C =
- dyn_cast(Op)) {
+  } else if (ConstantSDNode *C = dyn_cast(Op)) {
 MI->addOperand(MachineOperand::CreateImm(C->getValue()));
-  } else if (RegisterSDNode *R =
- dyn_cast(Op)) {
+  } else if (RegisterSDNode *R = dyn_cast(Op)) {
 MI->addOperand(MachineOperand::CreateReg(R->getReg(), false));
-  } else if (GlobalAddressSDNode *TGA =
- dyn_cast(Op)) {
-MI->addGlobalAddressOperand(TGA->getGlobal(), TGA->getOffset());
-  } else if (BasicBlockSDNode *BB =
- dyn_cast(Op)) {
-MI->addMachineBasicBlockOperand(BB->getBasicBlock());
-  } else if (FrameIndexSDNode *FI =
- dyn_cast(Op)) {
-MI->addFrameIndexOperand(FI->getIndex());
-  } else if (JumpTableSDNode *JT =
- dyn_cast(Op)) {
-MI->addJumpTableIndexOperand(JT->getIndex());
-  } else if (ConstantPoolSDNode *CP = 
- dyn_cast(Op)) {
+  } else if (GlobalAddressSDNode *TGA = dyn_cast(Op)) {
+
MI->addOperand(MachineOperand::CreateGA(TGA->getGlobal(),TGA->getOffset()));
+  } else if (BasicBlockSDNode *BB = dyn_cast(Op)) {
+MI->addOperand(MachineOperand::CreateMBB(BB->getBasicBlock()));
+  } else if (FrameIndexSDNode *FI = dyn_cast(Op)) {
+MI->addOperand(MachineOperand::CreateFI(FI->getIndex()));
+  } else if (JumpTableSDNode *JT = dyn_cast(Op)) {
+MI->addOperand(MachineOperand::CreateJTI(JT->getIndex()));
+  } else if (ConstantPoolSDNode *CP = dyn_cast(Op)) {
 int Offset = CP->getOffset();
 unsigned Align = CP->getAlignment();
 const Type *Type = CP->getType();
@@ -492,10 +485,9 @@
   Idx = ConstPool->getConstantPoolIndex(CP->getMachineCPVal(), Align);
 else
   Idx = ConstPool->getConstantPoolIndex(CP->getConstVal(), Align);
-MI->addConstantPoolIndexOperand(Idx, Offset);
-  } else if (ExternalSymbolSDNode *ES = 
- dyn_cast(Op)) {
-MI->addExternalSymbolOperand(ES->getSymbol());
+MI->addOperand(MachineOperand::CreateCPI(Idx, Offset));
+  } else if (ExternalSymbolSDNode *ES = dyn_cast(Op)) {
+MI->addOperand(MachineOperand::CreateES(ES->getSymbol()));
   } else {
 assert(Op.getValueType() != MVT::Other &&
Op.getValueType() != MVT::Flag &&
@@ -590,7 +582,7 @@
 // Add def, source, and subreg index
 MI->addOperand(MachineOperand::CreateReg(VRBase, true));
 AddOperand(MI, Node->getOperand(0), 0, 0, VRBaseMap);
-MI->addImmOperand(SubIdx);
+MI->addOperand(MachineOperand::CreateImm(SubIdx));
 
   } else if (Opc == TargetInstrInfo::INSERT_SUBREG) {
 assert((Node->getNumOperands() == 2 || Node->getNumOperands() == 3) &&
@@ -647,7 +639,7 @@
 AddOperand(MI, Node->getOperand(0), 0, 0, VRBaseMap);
 if (!isUndefInput)
   AddOperand(MI, Node->getOperand(1), 0, 0, VRBaseMap);
-MI->addImmOperand(SubIdx);
+MI->addOperand(MachineOperand::CreateImm(SubIdx));
   } else
 assert(0 && "Node is not a subreg insert or extract");
  
@@ -774,14 +766,14 @@
   // Add the asm string as an external symbol operand.
   const char *AsmStr =
 cast(Node->getOperand(1))->getSymbol();
-  MI->addExternalSymbolOperand(AsmStr);
+  MI->addOperand(MachineOperand::CreateES(AsmStr));
   
   // Add all of the operand registers to the instruction.
   for (unsigned i = 2; i != NumOps;) {
 unsigned Flags = cast(Node->getOperand(i))->getValue();
 unsigned NumVals = Flags >> 3;
 
-MI->addImmOperand(Flags);
+MI->addOperand(MachineOperand::CreateImm(Flags));
 ++i;  // Skip the ID value.
 
 switch (Flags & 7) {
@@ -805,11 +797,11 @@
   MI->addOperand(MachineOperand::CreateImm(CS->getValue()));
 } else if (GlobalAddressSDNode *GA = 
   dyn_cast(Node->getOperand(i))) {
-  MI->addGlobalAddressOperand(GA->getGlobal(), GA->getOffset());
+  MI->addOperand(MachineOperand::CreateGA(GA->getGlobal(),
+  GA->getOffset()));
 } else {
-  BasicBlockSDNode *BB =
-  cast(Node->getOperand(i));
-  MI->addMachineBasicBlockOperand(BB->getBasicBlock());
+  BasicBlockSDNode *BB 
=cast(Node->

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

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 18:57:42 2007
New Revision: 45436

URL: http://llvm.org/viewvc/llvm-project?rev=45436&view=rev
Log:
use simplified operand addition methods.

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=45436&r1=45435&r2=45436&view=diff

==
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Sat Dec 29 
18:57:42 2007
@@ -1164,7 +1164,6 @@
 
 // Update machine-CFG edges.
 CurMBB->addSuccessor(Succ0MBB);
-
 return;
   }
 
@@ -4763,8 +4762,9 @@
   MachineInstr *PHI = PHINodesToUpdate[i].first;
   assert(PHI->getOpcode() == TargetInstrInfo::PHI &&
  "This is not a machine PHI node that we are updating!");
-  PHI->addRegOperand(PHINodesToUpdate[i].second, false);
-  PHI->addMachineBasicBlockOperand(BB);
+  PHI->addOperand(MachineOperand::CreateReg(PHINodesToUpdate[i].second,
+false));
+  PHI->addOperand(MachineOperand::CreateMBB(BB));
 }
 return;
   }
@@ -4815,18 +4815,22 @@
   // This is "default" BB. We have two jumps to it. From "header" BB and
   // from last "case" BB.
   if (PHIBB == BitTestCases[i].Default) {
-PHI->addRegOperand(PHINodesToUpdate[pi].second, false);
-PHI->addMachineBasicBlockOperand(BitTestCases[i].Parent);
-PHI->addRegOperand(PHINodesToUpdate[pi].second, false);
-PHI->addMachineBasicBlockOperand(BitTestCases[i].Cases.back().ThisBB);
+PHI->addOperand(MachineOperand::CreateReg(PHINodesToUpdate[pi].second,
+  false));
+PHI->addOperand(MachineOperand::CreateMBB(BitTestCases[i].Parent));
+PHI->addOperand(MachineOperand::CreateReg(PHINodesToUpdate[pi].second,
+  false));
+PHI->addOperand(MachineOperand::CreateMBB(BitTestCases[i].Cases.
+  back().ThisBB));
   }
   // One of "cases" BB.
   for (unsigned j = 0, ej = BitTestCases[i].Cases.size(); j != ej; ++j) {
 MachineBasicBlock* cBB = BitTestCases[i].Cases[j].ThisBB;
 if (cBB->succ_end() !=
 std::find(cBB->succ_begin(),cBB->succ_end(), PHIBB)) {
-  PHI->addRegOperand(PHINodesToUpdate[pi].second, false);
-  PHI->addMachineBasicBlockOperand(cBB);
+  
PHI->addOperand(MachineOperand::CreateReg(PHINodesToUpdate[pi].second,
+false));
+  PHI->addOperand(MachineOperand::CreateMBB(cBB));
 }
   }
 }
@@ -4869,13 +4873,15 @@
  "This is not a machine PHI node that we are updating!");
   // "default" BB. We can go there only from header BB.
   if (PHIBB == JTCases[i].second.Default) {
-PHI->addRegOperand(PHINodesToUpdate[pi].second, false);
-PHI->addMachineBasicBlockOperand(JTCases[i].first.HeaderBB);
+PHI->addOperand(MachineOperand::CreateReg(PHINodesToUpdate[pi].second,
+  false));
+PHI->addOperand(MachineOperand::CreateMBB(JTCases[i].first.HeaderBB));
   }
   // JT BB. Just iterate over successors here
   if (BB->succ_end() != std::find(BB->succ_begin(),BB->succ_end(), PHIBB)) 
{
-PHI->addRegOperand(PHINodesToUpdate[pi].second, false);
-PHI->addMachineBasicBlockOperand(BB);
+PHI->addOperand(MachineOperand::CreateReg(PHINodesToUpdate[pi].second,
+  false));
+PHI->addOperand(MachineOperand::CreateMBB(BB));
   }
 }
   }
@@ -4887,8 +4893,9 @@
 assert(PHI->getOpcode() == TargetInstrInfo::PHI &&
"This is not a machine PHI node that we are updating!");
 if (BB->isSuccessor(PHI->getParent())) {
-  PHI->addRegOperand(PHINodesToUpdate[i].second, false);
-  PHI->addMachineBasicBlockOperand(BB);
+  PHI->addOperand(MachineOperand::CreateReg(PHINodesToUpdate[i].second,
+false));
+  PHI->addOperand(MachineOperand::CreateMBB(BB));
 }
   }
   
@@ -4919,8 +4926,9 @@
 for (unsigned pn = 0; ; ++pn) {
   assert(pn != PHINodesToUpdate.size() && "Didn't find PHI entry!");
   if (PHINodesToUpdate[pn].first == Phi) {
-Phi->addRegOperand(PHINodesToUpdate[pn].second, false);
-Phi->addMachineBasicBlockOperand(SwitchCases[i].ThisBB);
+Phi->addOperand(MachineOperand::CreateReg(PHINodesToUpdate[pn].
+  second, false));
+Phi->addOperand(MachineOperand::CreateMBB(S

[llvm-commits] [llvm] r45437 - in /llvm/trunk/lib/Target/ARM: ARMInstrInfo.cpp ARMRegisterInfo.cpp

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 19:01:54 2007
New Revision: 45437

URL: http://llvm.org/viewvc/llvm-project?rev=45437&view=rev
Log:
use simplified operand addition methods.

Modified:
llvm/trunk/lib/Target/ARM/ARMInstrInfo.cpp
llvm/trunk/lib/Target/ARM/ARMRegisterInfo.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMInstrInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrInfo.cpp?rev=45437&r1=45436&r2=45437&view=diff

==
--- llvm/trunk/lib/Target/ARM/ARMInstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrInfo.cpp Sat Dec 29 19:01:54 2007
@@ -469,8 +469,8 @@
   unsigned Opc = MI->getOpcode();
   if (Opc == ARM::B || Opc == ARM::tB) {
 MI->setInstrDescriptor(get(Opc == ARM::B ? ARM::Bcc : ARM::tBcc));
-MI->addImmOperand(Pred[0].getImmedValue());
-MI->addRegOperand(Pred[1].getReg(), false);
+MI->addOperand(MachineOperand::CreateImm(Pred[0].getImm()));
+MI->addOperand(MachineOperand::CreateReg(Pred[1].getReg(), false));
 return true;
   }
 

Modified: llvm/trunk/lib/Target/ARM/ARMRegisterInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMRegisterInfo.cpp?rev=45437&r1=45436&r2=45437&view=diff

==
--- llvm/trunk/lib/Target/ARM/ARMRegisterInfo.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMRegisterInfo.cpp Sat Dec 29 19:01:54 2007
@@ -126,7 +126,7 @@
   PopMI->setInstrDescriptor(TII.get(ARM::tPOP_RET));
   MBB.erase(MI);
 }
-PopMI->addRegOperand(Reg, true);
+PopMI->addOperand(MachineOperand::CreateReg(Reg, true));
   }
   return true;
 }
@@ -1100,9 +1100,10 @@
   MI.setInstrDescriptor(TII.get(ARM::tLDR));
   MI.getOperand(i).ChangeToRegister(TmpReg, false, false, true);
   if (UseRR)
-MI.addRegOperand(FrameReg, false);  // Use [reg, reg] addrmode.
-  else
-MI.addRegOperand(0, false); // tLDR has an extra register operand.
+// Use [reg, reg] addrmode.
+MI.addOperand(MachineOperand::CreateReg(FrameReg, false));
+  else  // tLDR has an extra register operand.
+MI.addOperand(MachineOperand::CreateReg(0, false));
 } else if (TII.isStore(Opcode)) {
   // FIXME! This is horrific!!! We need register scavenging.
   // Our temporary workaround has marked r3 unavailable. Of course, r3 is
@@ -1134,10 +1135,10 @@
 emitThumbRegPlusImmediate(MBB, II, TmpReg, FrameReg, Offset, TII);
   MI.setInstrDescriptor(TII.get(ARM::tSTR));
   MI.getOperand(i).ChangeToRegister(TmpReg, false, false, true);
-  if (UseRR)
-MI.addRegOperand(FrameReg, false);  // Use [reg, reg] addrmode.
-  else
-MI.addRegOperand(0, false); // tSTR has an extra register operand.
+  if (UseRR)  // Use [reg, reg] addrmode.
+MI.addOperand(MachineOperand::CreateReg(FrameReg, false));
+  else // tSTR has an extra register operand.
+MI.addOperand(MachineOperand::CreateReg(0, false));
 
   MachineBasicBlock::iterator NII = next(II);
   if (ValReg == ARM::R3)


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


[llvm-commits] [llvm] r45438 - /llvm/trunk/include/llvm/CodeGen/MachineInstr.h

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 19:04:05 2007
New Revision: 45438

URL: http://llvm.org/viewvc/llvm-project?rev=45438&view=rev
Log:
remove a bunch of now-dead methods.

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

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=45438&r1=45437&r2=45438&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Sat Dec 29 19:04:05 2007
@@ -82,6 +82,7 @@
 unsigned char subReg;
   } auxInfo;
   
+  
   MachineOperand() {}
 
   void print(std::ostream &os) const;
@@ -506,56 +507,6 @@
   // Insert a real operand before any implicit ones.
   Operands.insert(Operands.begin()+Operands.size()-NumImplicitOps, Op);
   }
-
-  /// addRegOperand - Add a register operand.
-  ///
-  void addRegOperand(unsigned Reg, bool IsDef, bool IsImp = false,
- bool IsKill = false, bool IsDead = false,
- unsigned SubReg = 0) {
-addOperand(MachineOperand::CreateReg(Reg, IsDef, IsImp, IsKill,
- IsDead, SubReg));
-  }
-
-  /// addImmOperand - Add a zero extended constant argument to the
-  /// machine instruction.
-  ///
-  void addImmOperand(int64_t Val) {
-addOperand(MachineOperand::CreateImm(Val));
-  }
-
-  void addMachineBasicBlockOperand(MachineBasicBlock *MBB) {
-addOperand(MachineOperand::CreateMBB(MBB));
-  }
-
-  /// addFrameIndexOperand - Add an abstract frame index to the instruction
-  ///
-  void addFrameIndexOperand(unsigned Idx) {
-addOperand(MachineOperand::CreateFI(Idx));
-  }
-
-  /// addConstantPoolndexOperand - Add a constant pool object index to the
-  /// instruction.
-  ///
-  void addConstantPoolIndexOperand(unsigned Idx, int Offset) {
-addOperand(MachineOperand::CreateCPI(Idx, Offset));
-  }
-
-  /// addJumpTableIndexOperand - Add a jump table object index to the
-  /// instruction.
-  ///
-  void addJumpTableIndexOperand(unsigned Idx) {
-addOperand(MachineOperand::CreateJTI(Idx));
-  }
-  
-  void addGlobalAddressOperand(GlobalValue *GV, int Offset) {
-addOperand(MachineOperand::CreateGA(GV, Offset));
-  }
-
-  /// addExternalSymbolOperand - Add an external symbol operand to this instr
-  ///
-  void addExternalSymbolOperand(const char *SymName, int Offset = 0) {
-addOperand(MachineOperand::CreateES(SymName, Offset));
-  }
   
   
//======//
   // Accessors used to modify instructions in place.


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


[llvm-commits] [llvm] r45439 - /llvm/trunk/include/llvm/CodeGen/MachineInstr.h

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 19:11:43 2007
New Revision: 45439

URL: http://llvm.org/viewvc/llvm-project?rev=45439&view=rev
Log:
remove unneeded #includes.

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

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=45439&r1=45438&r2=45439&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Sat Dec 29 19:11:43 2007
@@ -16,9 +16,7 @@
 #ifndef LLVM_CODEGEN_MACHINEINSTR_H
 #define LLVM_CODEGEN_MACHINEINSTR_H
 
-#include "llvm/ADT/iterator"
 #include "llvm/Support/DataTypes.h"
-#include "llvm/Support/Streams.h"
 #include 
 #include 
 #include 
@@ -82,7 +80,6 @@
 unsigned char subReg;
   } auxInfo;
   
-  
   MachineOperand() {}
 
   void print(std::ostream &os) const;


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


[llvm-commits] [llvm] r45444 - in /llvm/trunk/lib/Target/X86: X86InstrInfo.cpp X86InstrInfo.h

2007-12-29 Thread Bill Wendling
Author: void
Date: Sat Dec 29 21:18:58 2007
New Revision: 45444

URL: http://llvm.org/viewvc/llvm-project?rev=45444&view=rev
Log:
If we have a load of a global address that's not modified during the
function, then go ahead and hoist it out of the loop. This is the result:

$ cat a.c
volatile int G;

int A(int N) {
  for (; N > 0; --N)
G++;
}
$ llc -o - -relocation-model=pic
_A:
..
LBB1_2: # bb
movlL_G$non_lazy_ptr-"L1$pb"(%eax), %esi
incl(%esi)
incl%edx
cmpl%ecx, %edx
jne LBB1_2  # bb
..
$ llc -o - -relocation-model=pic -machine-licm
_A:
..
movlL_G$non_lazy_ptr-"L1$pb"(%eax), %eax
LBB1_2: # bb
incl(%eax)
incl%edx
cmpl%ecx, %edx
jne LBB1_2  # bb
..

I'm limiting this to the MOV32rm x86 instruction for now.

Modified:
llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
llvm/trunk/lib/Target/X86/X86InstrInfo.h

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=45444&r1=45443&r2=45444&view=diff

==
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Sat Dec 29 21:18:58 2007
@@ -144,6 +144,37 @@
   return true;
 }
 
+/// isDefinedInEntryBlock - Goes through the entry block to see if the given
+/// virtual register is indeed defined in the entry block.
+/// 
+bool X86InstrInfo::isDefinedInEntryBlock(const MachineBasicBlock &Entry,
+ unsigned VReg) const {
+  assert(MRegisterInfo::isVirtualRegister(VReg) &&
+ "Map only holds virtual registers!");
+  MachineInstrMap.grow(VReg);
+  if (MachineInstrMap[VReg]) return true;
+
+  MachineBasicBlock::const_iterator I = Entry.begin(), E = Entry.end();
+
+  for (; I != E; ++I) {
+const MachineInstr &MI = *I;
+unsigned NumOps = MI.getNumOperands();
+
+for (unsigned i = 0; i < NumOps; ++i) {
+  const MachineOperand &MO = MI.getOperand(i);
+
+  if(MO.isRegister() && MO.isDef() &&
+ MRegisterInfo::isVirtualRegister(MO.getReg()) &&
+ MO.getReg() == VReg) {
+MachineInstrMap[VReg] = &MI;
+return true;
+  }
+}
+  }
+
+  return false;
+}
+
 /// isReallySideEffectFree - If the M_MAY_HAVE_SIDE_EFFECTS flag is set, this
 /// method is called to determine if the specific instance of this instruction
 /// has side effects. This is useful in cases of instructions, like loads, 
which
@@ -152,10 +183,25 @@
 bool X86InstrInfo::isReallySideEffectFree(MachineInstr *MI) const {
   switch (MI->getOpcode()) {
   default: break;
+  case X86::MOV32rm:
+if (MI->getOperand(1).isRegister()) {
+  unsigned Reg = MI->getOperand(1).getReg();
+
+  // Loads from global addresses which aren't redefined in the function are
+  // side effect free.
+  if (MRegisterInfo::isVirtualRegister(Reg) &&
+  isDefinedInEntryBlock(MI->getParent()->getParent()->front(), Reg) &&
+  MI->getOperand(2).isImmediate() &&
+  MI->getOperand(3).isRegister() &&
+  MI->getOperand(4).isGlobalAddress() &&
+  MI->getOperand(2).getImmedValue() == 1 &&
+  MI->getOperand(3).getReg() == 0)
+return true;
+}
+// FALLTHROUGH
   case X86::MOV8rm:
   case X86::MOV16rm:
   case X86::MOV16_rm:
-  case X86::MOV32rm:
   case X86::MOV32_rm:
   case X86::MOV64rm:
   case X86::LD_Fp64m:
@@ -166,8 +212,10 @@
   case X86::MMX_MOVD64rm:
   case X86::MMX_MOVQ64rm:
 // Loads from constant pools have no side effects
-return MI->getOperand(1).isRegister() && MI->getOperand(2).isImmediate() &&
-   MI->getOperand(3).isRegister() && 
MI->getOperand(4).isConstantPoolIndex() &&
+return MI->getOperand(1).isRegister() &&
+   MI->getOperand(2).isImmediate() &&
+   MI->getOperand(3).isRegister() &&
+   MI->getOperand(4).isConstantPoolIndex() &&
MI->getOperand(1).getReg() == 0 &&
MI->getOperand(2).getImmedValue() == 1 &&
MI->getOperand(3).getReg() == 0;

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.h?rev=45444&r1=45443&r2=45444&view=diff

==
--- llvm/trunk/lib/Target/X86/X86InstrInfo.h (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.h Sat Dec 29 21:18:58 2007
@@ -16,6 +16,8 @@
 
 #include "llvm/Target/TargetInstrInfo.h"
 #include "X86RegisterInfo.h"
+#include "llvm/ADT/IndexedMap.h"
+#include "llvm/Target/MRegisterInfo.h"
 
 namespace llvm {
   class X86RegisterInfo;
@@ -223,6 +225,13 @@
 class X86InstrInfo : public TargetInstrInfo {
   X86TargetMachine &TM;
   const X86RegisterInfo RI;
+  mutable IndexedMap 
MachineInstrMap;
+
+  /// isDefinedInEntryBlock - Goes through the entry block to see if t

[llvm-commits] [llvm] r45445 - in /llvm/trunk/include/llvm/CodeGen: MachineInstr.h MachineOperand.h

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sat Dec 29 22:40:25 2007
New Revision: 45445

URL: http://llvm.org/viewvc/llvm-project?rev=45445&view=rev
Log:
split machineoperand out into its own header file.

Added:
llvm/trunk/include/llvm/CodeGen/MachineOperand.h
Modified:
llvm/trunk/include/llvm/CodeGen/MachineInstr.h

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=45445&r1=45444&r2=45445&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Sat Dec 29 22:40:25 2007
@@ -16,349 +16,17 @@
 #ifndef LLVM_CODEGEN_MACHINEINSTR_H
 #define LLVM_CODEGEN_MACHINEINSTR_H
 
-#include "llvm/Support/DataTypes.h"
-#include 
-#include 
-#include 
+#include "llvm/CodeGen/MachineOperand.h"
 
 namespace llvm {
 
-class Value;
-class Function;
-class MachineBasicBlock;
 class TargetInstrDescriptor;
 class TargetMachine;
-class GlobalValue;
 
 template  struct ilist_traits;
 template  struct ilist;
 
 
//===--===//
-// class MachineOperand
-//
-//   Representation of each machine instruction operand.
-//
-struct MachineOperand {
-  enum MachineOperandType {
-MO_Register,// Register operand.
-MO_Immediate,   // Immediate Operand
-MO_MachineBasicBlock,   // MachineBasicBlock reference
-MO_FrameIndex,  // Abstract Stack Frame Index
-MO_ConstantPoolIndex,   // Address of indexed Constant in Constant Pool
-MO_JumpTableIndex,  // Address of indexed Jump Table for switch
-MO_ExternalSymbol,  // Name of external global symbol
-MO_GlobalAddress// Address of a global value
-  };
-
-private:
-  union {
-GlobalValue *GV;  // For MO_GlobalAddress.
-MachineBasicBlock *MBB;   // For MO_MachineBasicBlock.
-const char *SymbolName;   // For MO_ExternalSymbol.
-unsigned RegNo;   // For MO_Register.
-int64_t immedVal; // For MO_Immediate and MO_*Index.
-  } contents;
-
-  MachineOperandType opType:8; // Discriminate the union.
-  bool IsDef : 1;  // True if this is a def, false if this is a 
use.
-  bool IsImp : 1;  // True if this is an implicit def or use.
-
-  bool IsKill : 1; // True if this is a reg use and the reg is dead
-   // immediately after the read.
-  bool IsDead : 1; // True if this is a reg def and the reg is dead
-   // immediately after the write. i.e. A register
-   // that is defined but never used.
-  
-  /// auxInfo - auxiliary information used by the MachineOperand
-  union {
-/// offset - Offset to address of global or external, only valid for
-/// MO_GlobalAddress, MO_ExternalSym and MO_ConstantPoolIndex
-int offset;
-
-/// subReg - SubRegister number, only valid for MO_Register.  A value of 0
-/// indicates the MO_Register has no subReg.
-unsigned char subReg;
-  } auxInfo;
-  
-  MachineOperand() {}
-
-  void print(std::ostream &os) const;
-  void print(std::ostream *os) const { if (os) print(*os); }
-
-public:
-  MachineOperand(const MachineOperand &M) {
-*this = M;
-  }
-  
-  ~MachineOperand() {}
-  
-  /// getType - Returns the MachineOperandType for this operand.
-  ///
-  MachineOperandType getType() const { return opType; }
-
-  /// Accessors that tell you what kind of MachineOperand you're looking at.
-  ///
-  bool isRegister() const { return opType == MO_Register; }
-  bool isImmediate() const { return opType == MO_Immediate; }
-  bool isMachineBasicBlock() const { return opType == MO_MachineBasicBlock; }
-  bool isFrameIndex() const { return opType == MO_FrameIndex; }
-  bool isConstantPoolIndex() const { return opType == MO_ConstantPoolIndex; }
-  bool isJumpTableIndex() const { return opType == MO_JumpTableIndex; }
-  bool isGlobalAddress() const { return opType == MO_GlobalAddress; }
-  bool isExternalSymbol() const { return opType == MO_ExternalSymbol; }
-
-  int64_t getImm() const {
-assert(isImmediate() && "Wrong MachineOperand accessor");
-return contents.immedVal;
-  }
-  
-  int64_t getImmedValue() const {
-assert(isImmediate() && "Wrong MachineOperand accessor");
-return contents.immedVal;
-  }
-  MachineBasicBlock *getMBB() const {
-assert(isMachineBasicBlock() && "Wrong MachineOperand accessor");
-return contents.MBB;
-  }
-  MachineBasicBlock *getMachineBasicBlock() const {
-assert(isMachineBasicBlock() && "Wrong MachineOperand accessor");
-return contents.MBB;
-  }
-  void setMachineBasicBlock(MachineBasicBlock *MBB) {
-assert(isMachineBasicBlock() && "Wrong MachineOperand accessor");
-contents.MBB = MBB;
-  }
-  int getFrameIndex() const {
-asser

[llvm-commits] [llvm] r45446 - /llvm/trunk/test/CFrontend/2007-09-20-GcrootAttribute.c

2007-12-29 Thread Gordon Henriksen
Author: gordon
Date: Sat Dec 29 23:45:49 2007
New Revision: 45446

URL: http://llvm.org/viewvc/llvm-project?rev=45446&view=rev
Log:
Strengthening this test so it fails in release mode.

Modified:
llvm/trunk/test/CFrontend/2007-09-20-GcrootAttribute.c

Modified: llvm/trunk/test/CFrontend/2007-09-20-GcrootAttribute.c
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2007-09-20-GcrootAttribute.c?rev=45446&r1=45445&r2=45446&view=diff

==
--- llvm/trunk/test/CFrontend/2007-09-20-GcrootAttribute.c (original)
+++ llvm/trunk/test/CFrontend/2007-09-20-GcrootAttribute.c Sat Dec 29 23:45:49 
2007
@@ -1,5 +1,6 @@
 // RUN: %llvmgcc -S -emit-llvm %s -o - | grep llvm.gcroot
 // RUN: %llvmgcc -S -emit-llvm %s -o - | grep llvm.gcroot | count 6
+// RUN: %llvmgcc -S -emit-llvm %s -o - | llvm-as
 
 typedef struct foo_s
 {


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


[llvm-commits] [llvm-gcc-4.0] r45447 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp

2007-12-29 Thread Gordon Henriksen
Author: gordon
Date: Sun Dec 30 00:03:23 2007
New Revision: 45447

URL: http://llvm.org/viewvc/llvm-project?rev=45447&view=rev
Log:
Fix up llvm-gcc translation for GC roots.

Modified:
llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp

Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=45447&r1=45446&r2=45447&view=diff

==
--- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Sun Dec 30 00:03:23 2007
@@ -1452,6 +1452,8 @@
 
 // Emits code to do something for a type attribute
 void TreeToLLVM::EmitTypeGcroot(Value *V, tree decl) {
+  // GC intrinsics can only be used in functions which specify a collector.
+  Fn->setCollector("shadow-stack");
 
   Function *gcrootFun = Intrinsic::getDeclaration(TheModule,
  Intrinsic::gcroot);


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


[llvm-commits] [llvm-gcc-4.2] r45448 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

2007-12-29 Thread Gordon Henriksen
Author: gordon
Date: Sun Dec 30 00:10:20 2007
New Revision: 45448

URL: http://llvm.org/viewvc/llvm-project?rev=45448&view=rev
Log:
Fix up llvm-gcc translation for GC roots.

Modified:
llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

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=45448&r1=45447&r2=45448&view=diff

==
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Sun Dec 30 00:10:20 2007
@@ -1392,6 +1392,8 @@
 
 // Emits code to do something for a type attribute
 void TreeToLLVM::EmitTypeGcroot(Value *V, tree decl) {
+  // GC intrinsics can only be used in functions which specify a collector.
+  Fn->setCollector("shadow-stack");
 
   Function *gcrootFun = Intrinsic::getDeclaration(TheModule,
  Intrinsic::gcroot);


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


[llvm-commits] [llvm] r45449 - in /llvm/trunk: include/llvm/CodeGen/MachineInstr.h include/llvm/CodeGen/MachineOperand.h lib/CodeGen/MachineInstr.cpp

2007-12-29 Thread Chris Lattner
Author: lattner
Date: Sun Dec 30 00:11:04 2007
New Revision: 45449

URL: http://llvm.org/viewvc/llvm-project?rev=45449&view=rev
Log:
make machine operands fatter: give each one an up-pointer to the 
machineinstr that owns it.

Modified:
llvm/trunk/include/llvm/CodeGen/MachineInstr.h
llvm/trunk/include/llvm/CodeGen/MachineOperand.h
llvm/trunk/lib/CodeGen/MachineInstr.cpp

Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=45449&r1=45448&r2=45449&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Sun Dec 30 00:11:04 2007
@@ -166,11 +166,15 @@
 bool isImpReg = Op.isRegister() && Op.isImplicit();
 assert((isImpReg || !OperandsComplete()) &&
"Trying to add an operand to a machine instr that is already 
done!");
-if (isImpReg || NumImplicitOps == 0) // This is true most of the time.
+if (isImpReg || NumImplicitOps == 0) {// This is true most of the time.
   Operands.push_back(Op);
-else
+  Operands.back().ParentMI = this;
+} else {
   // Insert a real operand before any implicit ones.
-  Operands.insert(Operands.begin()+Operands.size()-NumImplicitOps, Op);
+  unsigned OpNo = Operands.size()-NumImplicitOps;
+  Operands.insert(Operands.begin()+OpNo, Op);
+  Operands[OpNo].ParentMI = this;
+}
   }
   
   
//======//

Modified: llvm/trunk/include/llvm/CodeGen/MachineOperand.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineOperand.h?rev=45449&r1=45448&r2=45449&view=diff

==
--- llvm/trunk/include/llvm/CodeGen/MachineOperand.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineOperand.h Sun Dec 30 00:11:04 2007
@@ -23,7 +23,8 @@
   
 class MachineBasicBlock;
 class GlobalValue;
-
+  class MachineInstr;
+  
 /// MachineOperand class - Representation of each machine instruction operand.
 ///
 class MachineOperand {
@@ -48,6 +49,9 @@
 int64_t immedVal; // For MO_Immediate and MO_*Index.
   } contents;
 
+  /// ParentMI - This is the instruction that this operand is embedded into.
+  MachineInstr *ParentMI;
+  
   MachineOperandType opType:8; // Discriminate the union.
   bool IsDef : 1;  // True if this is a def, false if this is a 
use.
   bool IsImp : 1;  // True if this is an implicit def or use.
@@ -69,7 +73,7 @@
 unsigned char subReg;
   } auxInfo;
   
-  MachineOperand() {}
+  MachineOperand() : ParentMI(0) {}
 
   void print(std::ostream &os) const;
   void print(std::ostream *os) const { if (os) print(*os); }
@@ -335,6 +339,7 @@
 IsDead   = MO.IsDead;
 opType   = MO.opType;
 auxInfo  = MO.auxInfo;
+ParentMI = MO.ParentMI;
 return *this;
   }
 

Modified: llvm/trunk/lib/CodeGen/MachineInstr.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineInstr.cpp?rev=45449&r1=45448&r2=45449&view=diff

==
--- llvm/trunk/lib/CodeGen/MachineInstr.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineInstr.cpp Sun Dec 30 00:11:04 2007
@@ -85,8 +85,10 @@
   Operands.reserve(MI.getNumOperands());
 
   // Add operands
-  for (unsigned i = 0; i != MI.getNumOperands(); ++i)
+  for (unsigned i = 0; i != MI.getNumOperands(); ++i) {
 Operands.push_back(MI.getOperand(i));
+Operands.back().ParentMI = this;
+  }
 
   // Set parent, next, and prev to null
   parent = 0;
@@ -97,6 +99,10 @@
 
 MachineInstr::~MachineInstr() {
   LeakDetector::removeGarbageObject(this);
+#ifndef NDEBUG
+  for (unsigned i = 0, e = Operands.size(); i != e; ++i)
+assert(Operands[i].ParentMI == this && "ParentMI mismatch!");
+#endif
 }
 
 /// getOpcode - Returns the opcode of this MachineInstr.


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