[llvm-commits] CVS: llvm/lib/CodeGen/IntrinsicLowering.cpp
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
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
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
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
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
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
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
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
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
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
> 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
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
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
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
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
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
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)
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
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
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
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