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

2006-12-21 Thread Reid Spencer


Changes in directory llvm/lib/CodeGen:

IntrinsicLowering.cpp updated: 1.52 -> 1.53
---
Log message:

Simplify all the casting business and get rid of isSigned().


---
Diffs of the changes:  (+18 -64)

 IntrinsicLowering.cpp |   82 ++
 1 files changed, 18 insertions(+), 64 deletions(-)


Index: llvm/lib/CodeGen/IntrinsicLowering.cpp
diff -u llvm/lib/CodeGen/IntrinsicLowering.cpp:1.52 
llvm/lib/CodeGen/IntrinsicLowering.cpp:1.53
--- llvm/lib/CodeGen/IntrinsicLowering.cpp:1.52 Mon Dec 18 02:47:13 2006
+++ llvm/lib/CodeGen/IntrinsicLowering.cpp  Thu Dec 21 02:28:31 2006
@@ -38,8 +38,7 @@
 /// prototype doesn't match the arguments we expect to pass in.
 template 
 static CallInst *ReplaceCallWith(const char *NewFn, CallInst *CI,
- ArgIt ArgBegin, ArgIt ArgEnd,
- const unsigned *castOpcodes,
+ ArgIt ArgBegin, ArgIt ArgEnd, bool isSigned,
  const Type *RetTy, Function *&FCache) {
   if (!FCache) {
 // If we haven't already looked up this function, check to see if the
@@ -59,20 +58,15 @@
   const FunctionType *FT = FCache->getFunctionType();
   std::vector Operands;
   unsigned ArgNo = 0;
-  for (ArgIt I = ArgBegin; I != ArgEnd && ArgNo != FT->getNumParams();
+  for (ArgIt I = ArgBegin; I != ArgEnd && ArgNo != FT->getNumParams(); 
++I, ++ArgNo) {
 Value *Arg = *I;
-if (Arg->getType() != FT->getParamType(ArgNo))
-  if (castOpcodes[ArgNo])
-Arg = CastInst::create(Instruction::CastOps(castOpcodes[ArgNo]),
-  Arg, FT->getParamType(ArgNo), Arg->getName(), CI);
-  else {
-Instruction::CastOps opcode = CastInst::getCastOpcode(Arg, 
-Arg->getType()->isSigned(), FT->getParamType(ArgNo), 
-FT->getParamType(ArgNo)->isSigned());
-Arg = CastInst::create(opcode, Arg, FT->getParamType(ArgNo),
-   Arg->getName(), CI);
-  }
+if (Arg->getType() != FT->getParamType(ArgNo)) {
+  Instruction::CastOps opcode = CastInst::getCastOpcode(Arg, isSigned,
+  FT->getParamType(ArgNo), isSigned);
+  Arg = CastInst::create(opcode, Arg, FT->getParamType(ArgNo), 
+ Arg->getName(), CI);
+}
 Operands.push_back(Arg);
   }
   // Pass nulls into any additional arguments...
@@ -85,9 +79,8 @@
   if (!CI->use_empty()) {
 Value *V = NewCI;
 if (CI->getType() != NewCI->getType()) {
-  Instruction::CastOps opcode = CastInst::getCastOpcode(NewCI, 
-  NewCI->getType()->isSigned(), CI->getType(), 
-  CI->getType()->isSigned());
+  Instruction::CastOps opcode = CastInst::getCastOpcode(NewCI, isSigned,
+  CI->getType(), isSigned);
   V = CastInst::create(opcode, NewCI, CI->getType(), Name, CI);
 }
 CI->replaceAllUsesWith(V);
@@ -400,75 +393,38 @@
 break;// Simply strip out debugging intrinsics
 
   case Intrinsic::memcpy_i32: {
-// The memcpy intrinsic take an extra alignment argument that the memcpy
-// libc function does not.
-static unsigned opcodes[] = 
-  { Instruction::BitCast, Instruction::BitCast, Instruction::BitCast };
-// FIXME:
-// if (target_is_64_bit) opcodes[2] = Instruction::ZExt;
-// else opcodes[2] = Instruction::BitCast;
 static Function *MemcpyFCache = 0;
 ReplaceCallWith("memcpy", CI, CI->op_begin()+1, CI->op_end()-1,
-opcodes, (*(CI->op_begin()+1))->getType(), MemcpyFCache);
+false, (*(CI->op_begin()+1))->getType(), MemcpyFCache);
 break;
   }
   case Intrinsic::memcpy_i64: {
-static unsigned opcodes[] = 
-  { Instruction::BitCast, Instruction::BitCast, Instruction::Trunc };
-// FIXME:
-// if (target_is_64_bit) opcodes[2] = Instruction::BitCast;
-// else opcodes[2] = Instruction::Trunc;
 static Function *MemcpyFCache = 0;
 ReplaceCallWith("memcpy", CI, CI->op_begin()+1, CI->op_end()-1,
- opcodes, (*(CI->op_begin()+1))->getType(), MemcpyFCache);
+ false, (*(CI->op_begin()+1))->getType(), MemcpyFCache);
 break;
   }
   case Intrinsic::memmove_i32: {
-// The memmove intrinsic take an extra alignment argument that the memmove
-// libc function does not.
-static unsigned opcodes[] = 
-  { Instruction::BitCast, Instruction::BitCast, Instruction::BitCast };
-// FIXME:
-// if (target_is_64_bit) opcodes[2] = Instruction::ZExt;
-// else opcodes[2] = Instruction::BitCast;
 static Function *MemmoveFCache = 0;
 ReplaceCallWith("memmove", CI, CI->op_begin()+1, CI->op_end()-1,
-opcodes, (*(CI->op_begin()+1))->getType(), MemmoveFCache);
+false, (*(CI->op_begin()+1))->getType(), MemmoveFCache);
 break;
   }
   case Intrinsic::memmove_i64: {
-// The memmove intrinsic take an extra alignment argument that the memmove
-   

Re: [llvm-commits] [llvm-gcc] Signedness patch for rs6000.h

2006-12-21 Thread Reid Spencer
On Thu, 2006-12-21 at 11:49 -0400, Jim Laskey wrote:
> It's a bit of a tango, but enclosed is the patch I'll check in.  The
> i386 and ppc patches are dependent because of the change
> to LLVM_TARGET_INTRINSIC_LOWER.  Below are additional changes to
> rs6000.h (marked in red).
> 
> 
> 
> 
> Index: gcc/config/rs6000/rs6000.h
> ===
> --- gcc/config/rs6000/rs6000.h (revision 121615)
> +++ gcc/config/rs6000/rs6000.h (working copy)
> @@ -3655,7 +3655,7 @@
>Cache = M->getOrInsertFunction(NAME, FT);
> \
>  }
> \
>  Value *Offset = OPS[OPNUM], *Ptr = OPS[OPNUM+1];
> \
> -Ptr = CastToType(Ptr, VoidPtrTy);
> \
> +Ptr = CastToType(Instruction::BitCast, Ptr, VoidPtrTy);
> \

Okay, looks fine.

>  if (!isa(Offset) || !
> cast(Offset)->isNullValue()) \
>Ptr = new GetElementPtrInst(Ptr, Offset, "tmp", CURBB);
> \
>  OPS.erase(OPS.begin()+OPNUM);
> \
> @@ -3685,6 +3685,27 @@
> ((TY == Type::SByteTy) ? 'b' :   \
>  ((TY == Type::FloatTy) ? 'f' : 'x'
>
> +/* LLVM_TARGET_INTRINSIC_CAST_RESULT - This macro just provides a
> frequently
> + * used sequence for use inside LLVM_TARGET_INTRINSIC_LOWER. Note
> that this
> + * macro assumes it is being invoked from inside
> LLVM_TARGET_INTRINSC_LOWER
> + * (see below) because it requires the "ResIsSigned" and
> "ExpIsSigned" macro 
> + * arguments in order to derive signedness for the cast.
> + */
> +#define LLVM_TARGET_INTRINSIC_CAST_RESULT(RESULT, RESISSIGNED,
> DESTTY,\
> +  EXPISSIGNED)
> \
> +  { Instruction::CastOps opcode = CastInst::getCastOpcode(RESULT,
> \
> +RESISSIGNED, DESTTY, EXPISSIGNED);
> \
> +RESULT = CastInst::create(opcode, RESULT, DESTTY, "tmp", CurBB);
> \
> +  } 
> +
> +/* LLVM_INTRINSIC_OP_IS_SIGNED - This macro determines if a given
> operand
> + * to the intrinsic is signed or not. Note that this macro assumes it
> is being
> + * invoked from inside LLVM_TARGET_INTRINSIC_LOWER (see below)
> because it 
> + * requires the "exp" macro argument in order to determine signedness
> + */
> +#define LLVM_INTRINSIC_OP_IS_SIGNED(EXP, OPNUM) \
> +  !TYPE_UNSIGNED(TREE_TYPE(TREE_OPERAND(EXP, (OPNUM+1
> +
> /* LLVM_TARGET_INTRINSIC_LOWER - For builtins that we want to expand
> to normal
>   * LLVM code, emit the code now.  If we can handle the code, this
> macro should
>   * emit the code, return true.  Note that this would be much better
> as a
> @@ -3693,7 +3714,8 @@
>   * use methods it defines.
>   */
> #define LLVM_TARGET_INTRINSIC_LOWER(BUILTIN_CODE, DESTLOC, RESULT,
> \
> -DESTTY, OPS, CURBB)
> \
> +DESTTY, OPS, CURBB, EXP,
> RESISSIGNED, \
> +EXPISSIGNED)
> \
>switch (BUILTIN_CODE) {
> \
>default: break;
> \
>case ALTIVEC_BUILTIN_VADDFP:
> \
> @@ -3827,34 +3849,39 @@
>/* Map all of these to a shuffle. */
> \
>unsigned Amt = Elt->getZExtValue() & 15;
> \
>PackedType *v16i8 = PackedType::get(Type::SByteTy, 16);
> \
> -  OPS[0] = CastToType(OPS[0], v16i8);
> \
> -  OPS[1] = CastToType(OPS[1], v16i8);
> \
> +  Value *Op0 = OPS[0];
> \
> +  Instruction::CastOps opc = CastInst::getCastOpcode(
> \
> +Op0, Op0->getType()->isSigned(), DESTTY, DESTTY->isSigned());
> \

This isn't right. You shouldn't add any isSigned() calls as they are
going 
away. The signedness of Op0 needs to be determined using the
LLVM_INTRINSIC_OP_IS_SIGNED macro. The signedness of DESTTY is provided
in the
EXPISSIGNED argument to the macro.

> +  OPS[0] = CastToType(opc, Op0, v16i8);
> \
> +  Value *Op1 = OPS[1];
> \
> +  opc = CastInst::getCastOpcode(
> \
> +Op1, Op1->getType()->isSigned(), DESTTY, DESTTY->isSigned());
> \

Same comment.

> +  OPS[1] = CastToType(opc, Op1, v16i8);
> \
>RESULT = BuildVectorShuffle(OPS[0], OPS[1],
> \
>Amt, Amt+1, Amt+2, Amt+3,
> \
>Amt+4, Amt+5, Amt+6, Amt+7,
> \
>Amt+8, Amt+9, Amt+10, Amt+11,
> \
>Amt+12, Amt+13, Amt+14, Amt+15);
> \
> -  RESULT = CastToType(RESULT, DESTTY);
> \
>return true;
> \
>  }
> \
>  return false;
> \
>case ALTIVEC_BUILTIN_VPKUHUM: {
> \
> -Instruction::CastOps opc = CastInst::getCastOpcode(
> \
> -OPS[0], OPS[0]->getType()->isSigned(), DESTTY,
> DESTTY->isSigned());   \
> +Instruction::CastOps opc = CastInst::getCastOpcode(OPS[0],
> \
> +LLVM_INTRINSIC_OP_IS_SIGNED(EXP,0), DESTTY, EXPISSIGNED);
> \

This one is correct.

>  OPS[0] = CastInst::create(opc, OPS[0], DESTTY, OPS[0]->getName(),
> CurBB); \
> -opc = CastInst::getCastOpcode(
> \
> -OPS[1], OPS[1]->getType()->isSigned(), DESTTY,
> DESTTY->isSigned(

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

2006-12-21 Thread Reid Spencer


Changes in directory llvm/lib/CodeGen:

AsmPrinter.cpp updated: 1.127 -> 1.128
---
Log message:

Just print integer constants as signed values. The actual signedness 
doesn't matter as it is determined in the way the constant is used.


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

 AsmPrinter.cpp |8 +---
 1 files changed, 1 insertion(+), 7 deletions(-)


Index: llvm/lib/CodeGen/AsmPrinter.cpp
diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.127 
llvm/lib/CodeGen/AsmPrinter.cpp:1.128
--- llvm/lib/CodeGen/AsmPrinter.cpp:1.127   Tue Dec 19 15:04:20 2006
+++ llvm/lib/CodeGen/AsmPrinter.cpp Thu Dec 21 13:04:23 2006
@@ -392,13 +392,7 @@
 assert(CB->getValue());
 O << "1";
   } else if (const ConstantInt *CI = dyn_cast(CV)) {
-if (CI->getType()->isSigned()) {
-  if (((CI->getSExtValue() << 32) >> 32) == CI->getSExtValue())
-O << CI->getSExtValue();
-  else
-O << (uint64_t)CI->getSExtValue();
-} else 
-  O << CI->getZExtValue();
+O << CI->getSExtValue();
   } else if (const GlobalValue *GV = dyn_cast(CV)) {
 // This is a constant address for a global variable or function. Use the
 // name of the variable or function as the address value, possibly



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


[llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp

2006-12-21 Thread Reid Spencer


Changes in directory llvm/lib/Analysis:

ScalarEvolution.cpp updated: 1.75 -> 1.76
---
Log message:

Add a FIXME about signedness.


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

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


Index: llvm/lib/Analysis/ScalarEvolution.cpp
diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.75 
llvm/lib/Analysis/ScalarEvolution.cpp:1.76
--- llvm/lib/Analysis/ScalarEvolution.cpp:1.75  Thu Dec 21 00:43:46 2006
+++ llvm/lib/Analysis/ScalarEvolution.cpp   Thu Dec 21 12:59:16 2006
@@ -2151,6 +2151,8 @@
   Constant *TwoA = ConstantExpr::getMul(A, Two);
 
   // The divisions must be performed as signed divisions.
+  // FIXME:Signedness. These casts can all go away once integer types are
+  // signless.
   const Type *SignedTy = NegB->getType()->getSignedVersion();
   NegB = ConstantExpr::getBitCast(NegB, SignedTy);
   TwoA = ConstantExpr::getBitCast(TwoA, SignedTy);



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


[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll

2006-12-21 Thread Reid Spencer


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

2006-07-28-AsmPrint-Long-As-Pointer.ll updated: 1.2 -> 1.3
---
Log message:

Integer constants now print out as signed values in the assembly, 
regardless of the signedness of the associated type.


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

 2006-07-28-AsmPrint-Long-As-Pointer.ll |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/test/Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll
diff -u 
llvm/test/Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll:1.2 
llvm/test/Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll:1.3
--- llvm/test/Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll:1.2 
Fri Dec  1 22:23:08 2006
+++ llvm/test/Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll 
Thu Dec 21 13:14:49 2006
@@ -1,4 +1,4 @@
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep 4294967240
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep -- -56
 ; PR853
 
 %X = global int* cast (ulong 18446744073709551560 to int*)



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


Re: [llvm-commits] ppc linux patch 3.1

2006-12-21 Thread Jim Laskey

Nick,

I'm working on this merges.  They look pretty good and I'm only going  
to tweak them a little.


One general question.  You moved r2 out of the allocation list.   Are  
you using a TOC on linux?  If so, you may run into some issues with  
respect to use of the save TOC area in ABI linkage area and we should  
come to some compromise.


Cheers,

-- Jim


On 20-Dec-06, at 09:20 PM, Nick Lewycky wrote:

The original patch had a merge error and wouldn't compile. This one  
has

been fixed. As well, a large #if 0 has been replaced with a simple
"TODO" comment.

Nick

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




smime.p7s
Description: S/MIME cryptographic signature
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp PPCRegisterInfo.td PPCTargetAsmInfo.cpp PPCTargetAsmInfo.h PPCTargetMachine.cpp

2006-12-21 Thread Jim Laskey


Changes in directory llvm/lib/Target/PowerPC:

PPCAsmPrinter.cpp updated: 1.226 -> 1.227
PPCRegisterInfo.td updated: 1.42 -> 1.43
PPCTargetAsmInfo.cpp updated: 1.9 -> 1.10
PPCTargetAsmInfo.h updated: 1.3 -> 1.4
PPCTargetMachine.cpp updated: 1.110 -> 1.111
---
Log message:

Changes from Nick Lewycky with a simplified PPCTargetAsmInfo.


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

 PPCAsmPrinter.cpp|  224 ++-
 PPCRegisterInfo.td   |8 +
 PPCTargetAsmInfo.cpp |   43 +++--
 PPCTargetAsmInfo.h   |   10 ++
 PPCTargetMachine.cpp |7 +
 5 files changed, 274 insertions(+), 18 deletions(-)


Index: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
diff -u llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.226 
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.227
--- llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.226 Wed Dec 20 15:35:00 2006
+++ llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp   Thu Dec 21 14:26:09 2006
@@ -282,6 +282,35 @@
 virtual bool doFinalization(Module &M) = 0;
   };
 
+  /// LinuxAsmPrinter - PowerPC assembly printer, customized for Linux
+  struct VISIBILITY_HIDDEN LinuxAsmPrinter : public PPCAsmPrinter {
+
+DwarfWriter DW;
+
+LinuxAsmPrinter(std::ostream &O, PPCTargetMachine &TM,
+const TargetAsmInfo *T)
+  : PPCAsmPrinter(O, TM, T), DW(O, this, T) {
+}
+
+virtual const char *getPassName() const {
+  return "Linux PPC Assembly Printer";
+}
+
+bool runOnMachineFunction(MachineFunction &F);
+bool doInitialization(Module &M);
+bool doFinalization(Module &M);
+
+void getAnalysisUsage(AnalysisUsage &AU) const {
+  AU.setPreservesAll();
+  AU.addRequired();
+  PPCAsmPrinter::getAnalysisUsage(AU);
+}
+
+/// getSectionForFunction - Return the section that we should emit the
+/// specified function body into.
+virtual std::string getSectionForFunction(const Function &F) const;
+  };
+
   /// DarwinAsmPrinter - PowerPC assembly printer, customized for Darwin/Mac OS
   /// X
   struct VISIBILITY_HIDDEN DarwinAsmPrinter : public PPCAsmPrinter {
@@ -491,7 +520,194 @@
   return;
 }
 
+/// runOnMachineFunction - This uses the printMachineInstruction()
+/// method to print assembly for each instruction.
+///
+bool LinuxAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
+  DW.SetDebugInfo(&getAnalysis());
+
+  SetupMachineFunction(MF);
+  O << "\n\n";
+  
+  // Print out constants referenced by the function
+  EmitConstantPool(MF.getConstantPool());
+
+  // Print out labels for the function.
+  const Function *F = MF.getFunction();
+  SwitchToTextSection(getSectionForFunction(*F).c_str(), F);
+  
+  switch (F->getLinkage()) {
+  default: assert(0 && "Unknown linkage type!");
+  case Function::InternalLinkage:  // Symbols default to internal.
+break;
+  case Function::ExternalLinkage:
+O << "\t.global\t" << CurrentFnName << '\n'
+  << "\t.type\t" << CurrentFnName << ", @function\n";
+break;
+  case Function::WeakLinkage:
+  case Function::LinkOnceLinkage:
+O << "\t.global\t" << CurrentFnName << '\n';
+O << "\t.weak\t" << CurrentFnName << '\n';
+break;
+  }
+  EmitAlignment(2, F);
+  O << CurrentFnName << ":\n";
+
+  // Emit pre-function debug information.
+  DW.BeginFunction(&MF);
+
+  // Print out code for the function.
+  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
+   I != E; ++I) {
+// Print a label for the basic block.
+if (I != MF.begin()) {
+  printBasicBlockLabel(I, true);
+  O << '\n';
+}
+for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
+ II != E; ++II) {
+  // Print the assembly for the instruction.
+  O << "\t";
+  printMachineInstruction(II);
+}
+  }
+
+  O << "\t.size\t" << CurrentFnName << ",.-" << CurrentFnName << "\n";
+
+  // Print out jump tables referenced by the function.
+  EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
+  
+  // Emit post-function debug information.
+  DW.EndFunction();
+  
+  // We didn't modify anything.
+  return false;
+}
+
+bool LinuxAsmPrinter::doInitialization(Module &M) {
+  AsmPrinter::doInitialization(M);
+  
+  // GNU as handles section names wrapped in quotes
+  Mang->setUseQuotes(true);
+
+  SwitchToTextSection(TAI->getTextSection());
+  
+  // Emit initial debug information.
+  DW.BeginModule(&M);
+  return false;
+}
+
+bool LinuxAsmPrinter::doFinalization(Module &M) {
+  const TargetData *TD = TM.getTargetData();
 
+  // Print out module-level global variables here.
+  for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
+   I != E; ++I) {
+if (!I->hasInitializer()) continue;   // External global require no code
+
+// Check to see if this is a special global used by LLVM, if so, emit it.
+if (EmitSpecialLLVMGlobal(I))
+  continue;
+
+std::string name = Mang->getValueName(I);
+Constant *C = I->getInitializer();
+unsigned Size = TD->getT

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

2006-12-21 Thread Jim Laskey


Changes in directory llvm/include/llvm/Target:

TargetAsmInfo.h updated: 1.16 -> 1.17
---
Log message:

Changes from Nick Lewycky with a simplified PPCTargetAsmInfo.


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

 TargetAsmInfo.h |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/Target/TargetAsmInfo.h
diff -u llvm/include/llvm/Target/TargetAsmInfo.h:1.16 
llvm/include/llvm/Target/TargetAsmInfo.h:1.17
--- llvm/include/llvm/Target/TargetAsmInfo.h:1.16   Fri Dec  1 15:50:17 2006
+++ llvm/include/llvm/Target/TargetAsmInfo.hThu Dec 21 14:26:09 2006
@@ -26,10 +26,11 @@
   /// TargetAsmInfo - This class is intended to be used as a base class for asm
   /// properties and features specific to the target.
   class TargetAsmInfo {
-  protected:
+  public:
 
//===--===//
 // Properties to be set by the target writer, used to configure asm 
printer.
-// 
+// Should not be accessed by anything but a subclass of TargetAsmInfo.  Use
+// accessor functions.
 
 /// TextSection - Section directive for standard text.
 ///



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


Re: [llvm-commits] ppc linux patch 3.1

2006-12-21 Thread Jim Laskey

Nick,

Changes are in.  A couple of things you can focus on future changes.   
If you find yourself duplicating sections of code, factor out the  
common bits and move them up into the common PPC class - it's not  
forbidden to do so.  :)  Second, now that you have a proper subclass,  
you should be able to remove cases of !IsDarwin.


Cheers,

-- Jim




On 20-Dec-06, at 09:20 PM, Nick Lewycky wrote:

The original patch had a merge error and wouldn't compile. This one  
has

been fixed. As well, a large #if 0 has been replaced with a simple
"TODO" comment.

Nick

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




smime.p7s
Description: S/MIME cryptographic signature
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


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

2006-12-21 Thread Jim Laskey


Changes in directory llvm/include/llvm/Target:

TargetAsmInfo.h updated: 1.17 -> 1.18
---
Log message:

Grandchildren are covered by protect.


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

 TargetAsmInfo.h |5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/Target/TargetAsmInfo.h
diff -u llvm/include/llvm/Target/TargetAsmInfo.h:1.17 
llvm/include/llvm/Target/TargetAsmInfo.h:1.18
--- llvm/include/llvm/Target/TargetAsmInfo.h:1.17   Thu Dec 21 14:26:09 2006
+++ llvm/include/llvm/Target/TargetAsmInfo.hThu Dec 21 15:24:35 2006
@@ -26,11 +26,10 @@
   /// TargetAsmInfo - This class is intended to be used as a base class for asm
   /// properties and features specific to the target.
   class TargetAsmInfo {
-  public:
+  protected:
 
//===--===//
 // Properties to be set by the target writer, used to configure asm 
printer.
-// Should not be accessed by anything but a subclass of TargetAsmInfo.  Use
-// accessor functions.
+//
 
 /// TextSection - Section directive for standard text.
 ///



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


Re: [llvm-commits] [llvm-gcc] Cast Fix

2006-12-21 Thread Chris Lattner
> You asked for a case where I need to (recursively) determine the  
> sign of
> a some Value. I have a case in mind:
> lib/Transforms/Utils/LowerSwitch.cpp.  When it decides to lower  
> this to
> a branch tree it is recursively calling switchConvert and passing the
> switch value in. The signedness is needed in order to generate the
> ICmpInst with either SLT or ULT for the branch tree. But that Value*
> being tested originates from operand 0 of the switch instruction.
> There's no way to determine if its signed or unsigned without starting
> to look at it. As I noted in my example below, it could take several
> steps of tracking through instructions before I come up with a
> definitive answer. And there may be no way to determine it  
> statically if
> that search ends up at an argument, global variable, or constant.
>
> Can we just make switch staetments always use SLT for the  
> comparison and
> have the issue go away?

Switch lowering can use either slt or ult, as long as it is  
consistent.  Please use ULT.

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


[llvm-commits] CVS: llvm-test/SingleSource/UnitTests/2003-05-31-LongShifts.c

2006-12-21 Thread Reid Spencer


Changes in directory llvm-test/SingleSource/UnitTests:

2003-05-31-LongShifts.c updated: 1.2 -> 1.3
---
Log message:

Update to new mnemonics for shift operators.


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

 2003-05-31-LongShifts.c |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm-test/SingleSource/UnitTests/2003-05-31-LongShifts.c
diff -u llvm-test/SingleSource/UnitTests/2003-05-31-LongShifts.c:1.2 
llvm-test/SingleSource/UnitTests/2003-05-31-LongShifts.c:1.3
--- llvm-test/SingleSource/UnitTests/2003-05-31-LongShifts.c:1.2Wed Aug 
31 14:07:59 2005
+++ llvm-test/SingleSource/UnitTests/2003-05-31-LongShifts.cThu Dec 21 
16:20:26 2006
@@ -1,7 +1,7 @@
 
 void Test(long long Val, int Amt) {
   printf("0x%llx op %d:\n", Val, Amt);
-  printf("  sar: 0x%llx\n  shr: 0x%llx\n  shl: 0x%llx\n", Val >> Amt, 
+  printf("  ashr: 0x%llx\n  lshr: 0x%llx\n  shl: 0x%llx\n", Val >> Amt, 
  (unsigned long long)Val >> Amt, Val << Amt);
 }
 



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


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

2006-12-21 Thread Evan Cheng
Hi Reid,

I am not sure what this does. But this completely broken tests on my  
Mac. For example, if I just do make under MultiSource/Benchmarks/ 
Olden/bh. I get
make: *** No rule to make target `Output/args.rbc', needed by `Output/ 
bh.linked.rbc'.  Stop.

I get this even with fresh tot check out.

Any ideas?

Evan

On Dec 20, 2006, at 10:57 PM, Reid Spencer wrote:

>
>
> Changes in directory llvm-test:
>
> Makefile.rules updated: 1.20 -> 1.21
> ---
> Log message:
>
> Restore definitions of LCC1 and LCC1PLUS to cause test programs to be
> dependent upon the llvm-gcc compiler components they use.
>
>
> ---
> Diffs of the changes:  (+3 -0)
>
>  Makefile.rules |3 +++
>  1 files changed, 3 insertions(+)
>
>
> Index: llvm-test/Makefile.rules
> diff -u llvm-test/Makefile.rules:1.20 llvm-test/Makefile.rules:1.21
> --- llvm-test/Makefile.rules:1.20 Fri Dec  8 11:11:37 2006
> +++ llvm-test/Makefile.rules  Thu Dec 21 00:57:35 2006
> @@ -774,6 +774,9 @@
>
>  endif
>
> +LCC1 := $(LLVMGCCDIR)/libexec/gcc/$(LLVMGCCARCH)/cc1
> +LCC1XX := $(LLVMGCCDIR)/libexec/gcc/$(LLVMGCCARCH)/cc1plus
> +LCOLLECT2 :=$(LLVMGCCDIR)/libexec/gcc/$(LLVMGCCARCH)/collect2
>
>
>  #-
>
>
>
> ___
> llvm-commits mailing list
> llvm-commits@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

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


[llvm-commits] CVS: llvm/Makefile.config.in configure

2006-12-21 Thread Reid Spencer


Changes in directory llvm:

Makefile.config.in updated: 1.72 -> 1.73
configure updated: 1.261 -> 1.262
---
Log message:

Add a new variable, LLVMGCCLIBEXEC to get the libexec directory where the
cc1 and cc1plus executables live.


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

 Makefile.config.in |3 ++
 configure  |   55 -
 2 files changed, 33 insertions(+), 25 deletions(-)


Index: llvm/Makefile.config.in
diff -u llvm/Makefile.config.in:1.72 llvm/Makefile.config.in:1.73
--- llvm/Makefile.config.in:1.72Sat Dec 16 16:07:52 2006
+++ llvm/Makefile.config.in Thu Dec 21 16:55:41 2006
@@ -182,6 +182,9 @@
 LLVMGCCARCH := @target@/@LLVMGCC_VERSION@
 endif
 
+# Determine the path where the library executables are
+LLVMGCCLIBEXEC := @LLVMGCCLIBEXEC@
+
 # Full pathnames of LLVM C/C++ front-end 'cc1' and 'cc1plus' binaries:
 LLVMGCC  := @LLVMGCC@
 LLVMGXX  := @LLVMGXX@


Index: llvm/configure
diff -u llvm/configure:1.261 llvm/configure:1.262
--- llvm/configure:1.261Sat Dec 16 16:07:52 2006
+++ llvm/configure  Thu Dec 21 16:55:41 2006
@@ -904,6 +904,7 @@
 LLVMCC1
 LLVMCC1PLUS
 LLVMGCCDIR
+LLVMGCCLIBEXEC
 LLVMGCC_VERSION
 LLVMGCC_MAJVERS
 SHLIBEXT
@@ -10326,7 +10327,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext < conftest.$ac_ext
+  echo '#line 12474 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -14188,11 +14189,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14191: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14192: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
-   echo "$as_me:14195: \$? = $ac_status" >&5
+   echo "$as_me:14196: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
  # The compiler can only warn and ignore the option if not recognized
  # So say no if there are warnings other than the usual output.
@@ -14456,11 +14457,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14459: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14460: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
-   echo "$as_me:14463: \$? = $ac_status" >&5
+   echo "$as_me:14464: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
  # The compiler can only warn and ignore the option if not recognized
  # So say no if there are warnings other than the usual output.
@@ -14560,11 +14561,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14563: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14564: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
-   echo "$as_me:14567: \$? = $ac_status" >&5
+   echo "$as_me:14568: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
  # The compiler can only warn and ignore the option if not recognized
@@ -17012,7 +17013,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+   (eval echo "\"\$as_me:19484: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
-   echo "$as_me:19487: \$? = $ac_status" >&5
+   echo "$as_me:19488: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
  # The compiler can only warn and ignore the option if not recognized
  # So say no if there are warnings other than the usual output.
@@ -19584,11 +19585,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19587: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19588: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
-   echo "$as_me:19591: \$? = $ac_status" >&5
+   echo "$as_me:19592: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
  # The compiler can only warn and ignore the option if not recognized
@@ -21154,11 +21155,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:21157: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:21158: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
-   echo "$as_me:21161

[llvm-commits] CVS: llvm/autoconf/configure.ac

2006-12-21 Thread Reid Spencer


Changes in directory llvm/autoconf:

configure.ac updated: 1.256 -> 1.257
---
Log message:

Add a new variable, LLVMGCCLIBEXEC to get the libexec directory where the
cc1 and cc1plus executables live.


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

 configure.ac |2 ++
 1 files changed, 2 insertions(+)


Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.256 llvm/autoconf/configure.ac:1.257
--- llvm/autoconf/configure.ac:1.256Sat Dec 16 16:07:52 2006
+++ llvm/autoconf/configure.ac  Thu Dec 21 16:55:41 2006
@@ -743,6 +743,8 @@
   AC_SUBST(LLVMCC1PLUS,$llvmcc1pluspath)
   llvmgccdir=`echo "$llvmcc1path" | sed 's,/libexec/.*,,'`
   AC_SUBST(LLVMGCCDIR,$llvmgccdir)
+  llvmgcclibexec=`echo "$llvmcc1path" | sed 's,/cc1,,'`
+  AC_SUBST(LLVMGCCLIBEXEC,$llvmgcclibexec)
   llvmgccversion=[`"$LLVMGCC" -dumpversion 2>&1 | sed 's/^\([0-9.]*\).*/\1/'`]
   llvmgccmajvers=[`echo $llvmgccversion | sed 's/^\([0-9]\).*/\1/'`]
   AC_SUBST(LLVMGCC_VERSION,$llvmgccversion)



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


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

2006-12-21 Thread Reid Spencer


Changes in directory llvm-test:

Makefile.rules updated: 1.21 -> 1.22
---
Log message:

Use the LLVMGCCLIBEXEC variable to get the paths for cc1 and cc1plus 
instead of trying to hack it together from other variables.


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

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


Index: llvm-test/Makefile.rules
diff -u llvm-test/Makefile.rules:1.21 llvm-test/Makefile.rules:1.22
--- llvm-test/Makefile.rules:1.21   Thu Dec 21 00:57:35 2006
+++ llvm-test/Makefile.rulesThu Dec 21 16:57:10 2006
@@ -774,9 +774,9 @@
 
 endif
 
-LCC1 := $(LLVMGCCDIR)/libexec/gcc/$(LLVMGCCARCH)/cc1
-LCC1XX := $(LLVMGCCDIR)/libexec/gcc/$(LLVMGCCARCH)/cc1plus
-LCOLLECT2 :=$(LLVMGCCDIR)/libexec/gcc/$(LLVMGCCARCH)/collect2 
+LCC1 := $(LLVMGCCLIBEXEC)/cc1
+LCC1XX := $(LLVMGCCLIBEXEC)/cc1plus
+LCOLLECT2 :=$(LLVMGCCLIBEXEC)/collect2 
 
 
 #-



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


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

2006-12-21 Thread Chris Lattner


Changes in directory llvm/lib/Target/ARM:

ARMAsmPrinter.cpp updated: 1.41 -> 1.42
---
Log message:

Fix for ARM weak symbols, patch by Lauro Ramos Venancio!


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

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


Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.41 
llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.42
--- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.41  Tue Dec 19 16:59:25 2006
+++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp   Thu Dec 21 16:59:58 2006
@@ -111,6 +111,20 @@
   // Print out constants referenced by the function
   EmitConstantPool(MF.getConstantPool());
 
+  const std::vector
+&CP = MF.getConstantPool()->getConstants();
+  for (unsigned i = 0, e = CP.size(); i != e; ++i) {
+MachineConstantPoolEntry CPE = CP[i];
+if (!CPE.isMachineConstantPoolEntry()){
+  Constant *CV = CPE.Val.ConstVal;
+  if (const GlobalValue *GV = dyn_cast(CV)) {
+if (GV->hasExternalWeakLinkage()) {
+  ExtWeakSymbols.insert(GV);
+}
+  }
+}
+  }
+
   // Print out jump tables referenced by the function
   EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
 



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


[llvm-commits] [llvm-gcc4]Types were not being qualified properly (const and volatile)

2006-12-21 Thread Jim Laskey

Index: gcc/llvm-debug.cpp
===
--- gcc/llvm-debug.cpp  (revision 121615)
+++ gcc/llvm-debug.cpp  (working copy)
@@ -451,11 +451,13 @@
/// getOrCreateType - Get the type from the cache or create a new  
type if

/// necessary.
/// FIXME - I hate jumbo methods - split up.
-TypeDesc *DebugInfo::getOrCreateType(tree_node *type,  
CompileUnitDesc *Unit) {
-  DEBUGASSERT(type != NULL_TREE && type != error_mark_node && "Not a  
type.");

-  if (type == NULL_TREE || type == error_mark_node) return NULL;
+TypeDesc *DebugInfo::getOrCreateType(tree_node *origtype,  
CompileUnitDesc *Unit)

+{
+  DEBUGASSERT(origtype != NULL_TREE && origtype != error_mark_node &&
+  "Not a type.");
+  if (origtype == NULL_TREE || origtype == error_mark_node) return  
NULL;


-  type = TYPE_MAIN_VARIANT(type);
+  tree type = TYPE_MAIN_VARIANT(origtype);

   // Should only be void if a pointer/reference/return type.   
Returning NULL

   // allows the caller to produce a non-derived type.
@@ -513,7 +515,7 @@
   Ty = DerivedTy;
   // Set the slot early to prevent recursion difficulties.
   // Any other use of the type should include the qualifiers.
-  Slot = AddTypeQualifiers(type, Unit, DerivedTy);
+  Slot = AddTypeQualifiers(origtype, Unit, DerivedTy);
   // Handle the derived type.
   TypeDesc *FromTy = getOrCreateType(TREE_TYPE(type), Unit);
   DerivedTy->setFromType(FromTy);
@@ -535,7 +537,7 @@
   Ty = SubrTy;
   // Set the slot early to prevent recursion difficulties.
   // Any other use of the type should include the qualifiers.
-  Slot = AddTypeQualifiers(type, Unit, SubrTy);
+  Slot = AddTypeQualifiers(origtype, Unit, SubrTy);

   // Prepare to add the arguments for the subroutine.
   std::vector &Elements = SubrTy->getElements();
@@ -570,14 +572,14 @@
 Ty = ArrayTy = new CompositeTypeDesc(DW_TAG_vector_type);
 // Set the slot early to prevent recursion difficulties.
 // Any other use of the type should include the qualifiers.
-Slot = AddTypeQualifiers(type, Unit, ArrayTy);
+Slot = AddTypeQualifiers(origtype, Unit, ArrayTy);
 // Use the element type of the from this point.
 type = TREE_TYPE(TYPE_FIELDS(TYPE_DEBUG_REPRESENTATION_TYPE 
(type)));

   } else {
 Ty = ArrayTy = new CompositeTypeDesc(DW_TAG_array_type);
 // Set the slot early to prevent recursion difficulties.
 // Any other use of the type should include the qualifiers.
-Slot = AddTypeQualifiers(type, Unit, ArrayTy);
+Slot = AddTypeQualifiers(origtype, Unit, ArrayTy);
   }
   // Prepare to add the dimensions of the array.
@@ -614,7 +616,7 @@
   CompositeTypeDesc *Enum = new CompositeTypeDesc 
(DW_TAG_enumeration_type);

   Ty = Enum;
   // Any other use of the type should include the qualifiers.
-  Slot = AddTypeQualifiers(type, Unit, Enum);
+  Slot = AddTypeQualifiers(origtype, Unit, Enum);
   // Prepare to add the enumeration values.
   std::vector &Elements = Enum->getElements();
@@ -645,7 +647,7 @@
   Ty = StructTy;
   // Set the slot early to prevent recursion difficulties.
   // Any other use of the type should include the qualifiers.
-  Slot = AddTypeQualifiers(type, Unit, StructTy);
+  Slot = AddTypeQualifiers(origtype, Unit, StructTy);
   // Prepare to add the fields.
   std::vector &Elements = StructTy->getElements 
();


@@ -770,7 +772,7 @@
   BasicTypeDesc *BTy = new BasicTypeDesc();
   Ty = BTy;
   // Any other use of the type should include the qualifiers.
-  Slot = AddTypeQualifiers(type, Unit, BTy);
+  Slot = AddTypeQualifiers(origtype, Unit, BTy);
   // The encoding specific to the type.
   unsigned Encoding = 0;
Index: gcc/llvm-debug.h
===
--- gcc/llvm-debug.h(revision 121615)
+++ gcc/llvm-debug.h(working copy)
@@ -121,7 +121,7 @@
   /// getOrCreateType - Get the type from the cache or create a new  
type if

   /// necessary.
-  TypeDesc *getOrCreateType(tree_node *type, CompileUnitDesc *Unit);
+  TypeDesc *getOrCreateType(tree_node *origtype, CompileUnitDesc  
*Unit);
   /// getOrCreateCompileUnit - Get the compile unit from the cache  
or create a

   /// new one if necessary.



smime.p7s
Description: S/MIME cryptographic signature
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/X86/README.txt

2006-12-21 Thread Chris Lattner


Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.147 -> 1.148
---
Log message:

add a note


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

 README.txt |9 +
 1 files changed, 9 insertions(+)


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.147 
llvm/lib/Target/X86/README.txt:1.148
--- llvm/lib/Target/X86/README.txt:1.147Sun Dec 10 19:20:25 2006
+++ llvm/lib/Target/X86/README.txt  Thu Dec 21 19:03:22 2006
@@ -751,3 +751,12 @@
 //===-===//
 
 In c99 mode, the preprocessor doesn't like assembly comments like #TRUNCATE.
+
+//===-===//
+
+This could be a single 16-bit load.
+int f(char *p) {
+if (p[0] == 1 && p[1] == 2) return 1;
+return 0;
+}
+



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


[llvm-commits] CVS: llvm/tools/llvm-config/.cvsignore

2006-12-21 Thread Reid Spencer


Changes in directory llvm/tools/llvm-config:

.cvsignore updated: 1.2 -> 1.3
---
Log message:

Ignore the LibDeps.txt.tmp file.


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

 .cvsignore |1 +
 1 files changed, 1 insertion(+)


Index: llvm/tools/llvm-config/.cvsignore
diff -u llvm/tools/llvm-config/.cvsignore:1.2 
llvm/tools/llvm-config/.cvsignore:1.3
--- llvm/tools/llvm-config/.cvsignore:1.2   Thu Jun  1 19:23:15 2006
+++ llvm/tools/llvm-config/.cvsignore   Thu Dec 21 20:02:45 2006
@@ -1,6 +1,7 @@
 FinalLibDeps.txt
 GenLibDeps.out
 LibDeps.txt
+LibDeps.txt.tmp
 libdeps.gif
 llvm-config.in
 objdeps.gif



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


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

2006-12-21 Thread Evan Cheng


Changes in directory llvm/lib/CodeGen:

MachineFunction.cpp updated: 1.106 -> 1.107
---
Log message:

Debug dump error.

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

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


Index: llvm/lib/CodeGen/MachineFunction.cpp
diff -u llvm/lib/CodeGen/MachineFunction.cpp:1.106 
llvm/lib/CodeGen/MachineFunction.cpp:1.107
--- llvm/lib/CodeGen/MachineFunction.cpp:1.106  Thu Dec 14 13:17:33 2006
+++ llvm/lib/CodeGen/MachineFunction.cppThu Dec 21 20:04:05 2006
@@ -466,7 +466,7 @@
   Constants[i].Val.MachineCPVal->print(OS);
 else
   OS << *(Value*)Constants[i].Val.ConstVal;
-OS << " , offset=" << Constants[i].Offset;
+OS << " , offset=" << Constants[i].getOffset();
 OS << "\n";
   }
 }



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