On Thu, 2007-01-11 at 13:19 -0800, Jeff Cohen wrote: > Not that message..... this one: > > ================= > OK, so I figured I need to update LLVM. Now that doesn't build: > > llvm[2]: Compiling Lexer.cpp for Debug build > Lexer.cpp: In function 'int llvmAsmlex()': > Lexer.cpp:1244: error: label 'find_rule' used but not defined > gmake[2]: *** [/usr/home/jeffc/llvm/obj/lib/AsmParser/Debug/Lexer.o] Error 1
That is supposed to be a warning on all systems with our Makefile system. What compiler and operating system are you using? This stems from use of -Wno-unused. Which should produce a warning on unused things such as this label. Do you have local Makefile changes that upgrade this from a warning to an error? Reid. > > I think I'll just go away for a few weeks and wait for the dust to > settle.... > > ================= > > Reid Spencer wrote: > > Jeff, > > > > That just can't be .. see below > > > > On Thu, 2007-01-11 at 12:57 -0800, Jeff Cohen wrote: > > > >> See my previous message. I updated, and LLVM no longer builds. > >> > >> Reid Spencer wrote: > >> > >>> You need to update your LLVM tree. I just committed the BoolTy->Int1Ty > >>> change and the patch handles that change as well. > >>> > >>> Reid. > >>> > >>> On Thu, 2007-01-11 at 12:24 -0800, Jeff Cohen wrote: > >>> > >>> > >>>> The patch doesn't work: > >>>> > >>>> g++40 -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -pedantic > >>>> -Wno-long-long -Wno-variadic-macros -fno-common -DHAVE_CONFIG_H > >>>> -Wno-unused -DTARGET_NAME=\"amd64-unknown-freebsd6.1\" -DENABLE_LLVM > >>>> -D__STDC_LIMIT_MACROS -I. -I. -I../../gcc -I../../gcc/. > >>>> -I../../gcc/../include -I../../gcc/../libcpp/include > >>>> -I/usr/home/jeffc/llvm/include > >>>> -I/home/jeffc/llvm/obj/include ../../gcc/llvm-debug.cpp -o > >>>> llvm-debug.o > >>>> ../../gcc/llvm-types.cpp: In member function 'const llvm::Type* > >>>> TypeConverter::ConvertType(tree_node*)': > >>>> ../../gcc/llvm-types.cpp:291: error: 'Int1Ty' is not a member of > >>>> 'llvm::Type' > >>>> > > > > Int1Ty is now a member of the Type class. I double checked to make sure > > I committed everything. If you're getting this error then you've still > > got a Type.h file that is defining BoolTy instead of Int1Ty. For > > whatever reason, you're not at TOT for LLVM! > > > > > >>>> ../../gcc/llvm-types.cpp: In member function > >>>> 'void<unnamed>::FunctionTypeConversion::HandleScalarArgument(const > >>>> llvm::Type*, tree_node*)': > >>>> ../../gcc/llvm-types.cpp:520: error: 'Int1Ty' is not a member of > >>>> 'llvm::Type' > >>>> > > > > Same. > > > > > >>>> gmake[1]: *** [llvm-types.o] Error 1 > >>>> gmake[1]: *** Waiting for unfinished jobs.... > >>>> ../../gcc/llvm-convert.cpp: In member function 'llvm::Value* > >>>> TreeToLLVM::CastToType(unsigned int, llvm::Value*, const > >>>> llvm::Type*)': > >>>> ../../gcc/llvm-convert.cpp:716: error: 'Int1Ty' is not a member of > >>>> 'llvm::Type' > >>>> > > > > Same. > > > > > >>>> ../../gcc/llvm-convert.cpp:716: error: 'Int1Ty' is not a member of > >>>> 'llvm::Type' > >>>> > > > > Same. > > > > > >>>> ../../gcc/llvm-convert.cpp: In member function 'llvm::Value* > >>>> TreeToLLVM::EmitCOND_EXPR(tree_node*)': > >>>> ../../gcc/llvm-convert.cpp:1390: error: 'Int1Ty' is not a member of > >>>> 'llvm::Type' > >>>> > > > > Same. > > > > > >>>> ../../gcc/llvm-convert.cpp: In member function 'llvm::Value* > >>>> TreeToLLVM::EmitTRUTH_NOT_EXPR(tree_node*)': > >>>> ../../gcc/llvm-convert.cpp:2379: error: 'Int1Ty' is not a member of > >>>> 'llvm::Type' > >>>> > > > > Same. > > > > > >>>> ../../gcc/llvm-convert.cpp: In member function 'LValue > >>>> TreeToLLVM::EmitLV_COMPONENT_REF(tree_node*)': > >>>> ../../gcc/llvm-convert.cpp:4041: error: 'Int1Ty' is not a member of > >>>> 'llvm::Type' > >>>> > > > > Same. > > > > If these are all the errors you're getting, then its very clear you are > > not at HEAD revision for LLVM. Check your revision number for > > include/llvm/Type.h. It should be revision 1.98: > > > > cvs status include/llvm/Type.h > > =================================================================== > > File: Type.h Status: Up-to-date > > > > Working revision: 1.98 > > Repository revision: 1.98 /var/cvs/llvm/llvm/include/llvm/Type.h,v > > Sticky Tag: (none) > > Sticky Date: (none) > > Sticky Options: (none) > > > > > > I know you can retrieve this from CVS because I just did it 2 hours ago > > to merge the BoolTy->Int1Ty changes into another working tree. > > > > Reid. > > > > > >>>> Reid Spencer wrote: > >>>> > >>>> > >>>>> All, > >>>>> > >>>>> Please apply this patch to llvm-gcc r247. It adjusts llvm-gcc for recent > >>>>> changes in LLVM related to the BoolTy. > >>>>> > >>>>> BoolTy->Int1Ty > >>>>> ConstantBool->ConstantInt > >>>>> ConstantIntegral->ConstantInt > >>>>> > >>>>> Reid > >>>>> > >>>>> > >>>>> ____________________________________________________________________ > >>>>> > >>>>> Index: gcc/llvm-backend.cpp > >>>>> =================================================================== > >>>>> --- gcc/llvm-backend.cpp (revision 247) > >>>>> +++ gcc/llvm-backend.cpp (working copy) > >>>>> @@ -569,7 +569,7 @@ > >>>>> // If this has already been processed, don't emit duplicate error > >>>>> messages. > >>>>> if (DECL_LLVM_SET_P(decl)) { > >>>>> // Error state encoded into DECL_LLVM. > >>>>> - return cast<ConstantBool>(DECL_LLVM(decl))->getValue(); > >>>>> + return cast<ConstantInt>(DECL_LLVM(decl))->getBoolValue(); > >>>>> } > >>>>> > >>>>> /* Detect errors in declaring global registers. */ > >>>>> @@ -593,10 +593,10 @@ > >>>>> if (TREE_THIS_VOLATILE(decl)) > >>>>> warning("volatile register variables don%'t work as you might > >>>>> wish"); > >>>>> > >>>>> - SET_DECL_LLVM(decl, ConstantBool::getFalse()); > >>>>> + SET_DECL_LLVM(decl, ConstantInt::getFalse()); > >>>>> return false; // Everything ok. > >>>>> } > >>>>> - SET_DECL_LLVM(decl, ConstantBool::getTrue()); > >>>>> + SET_DECL_LLVM(decl, ConstantInt::getTrue()); > >>>>> return true; > >>>>> } > >>>>> > >>>>> Index: gcc/llvm-convert.cpp > >>>>> =================================================================== > >>>>> --- gcc/llvm-convert.cpp (revision 247) > >>>>> +++ gcc/llvm-convert.cpp (working copy) > >>>>> @@ -713,7 +713,7 @@ > >>>>> // Handle cast (cast bool X to T2) to bool as X, because this occurs > >>>>> all over > >>>>> // the place. > >>>>> if (CastInst *CI = dyn_cast<CastInst>(V)) > >>>>> - if (Ty == Type::BoolTy && CI->getOperand(0)->getType() == > >>>>> Type::BoolTy) > >>>>> + if (Ty == Type::Int1Ty && CI->getOperand(0)->getType() == > >>>>> Type::Int1Ty) > >>>>> return CI->getOperand(0); > >>>>> return CastInst::create(Instruction::CastOps(opcode), V, Ty, > >>>>> V->getName(), > >>>>> CurBB); > >>>>> @@ -1384,10 +1384,10 @@ > >>>>> } > >>>>> > >>>>> Value *TreeToLLVM::EmitCOND_EXPR(tree exp) { > >>>>> - // Emit the conditional expression and trunc/bitcast to BoolTy > >>>>> + // Emit the conditional expression and trunc/bitcast to Int1Ty > >>>>> Value *Cond = Emit(COND_EXPR_COND(exp), 0); > >>>>> // If its not already a bool, insert a comparison against zero to > >>>>> make it so. > >>>>> - if (Cond->getType() != Type::BoolTy) > >>>>> + if (Cond->getType() != Type::Int1Ty) > >>>>> Cond = new ICmpInst(ICmpInst::ICMP_NE, Cond, > >>>>> Constant::getNullValue(Cond->getType()), > >>>>> "toBool", > >>>>> CurBB); > >>>>> @@ -2376,7 +2376,7 @@ > >>>>> > >>>>> Value *TreeToLLVM::EmitTRUTH_NOT_EXPR(tree exp) { > >>>>> Value *V = Emit(TREE_OPERAND(exp, 0), 0); > >>>>> - if (V->getType() != Type::BoolTy) > >>>>> + if (V->getType() != Type::Int1Ty) > >>>>> V = new ICmpInst(ICmpInst::ICMP_NE, V, > >>>>> Constant::getNullValue(V->getType()), "toBool", > >>>>> CurBB); > >>>>> V = BinaryOperator::createNot(V, V->getName()+"not", CurBB); > >>>>> @@ -4038,7 +4038,7 @@ > >>>>> // If the field result is a bool, cast to a ubyte instead. It is > >>>>> not > >>>>> // possible to access all bits of a memory object with a bool > >>>>> (only the low > >>>>> // bit) but it is possible to access them with a byte. > >>>>> - if (FieldTy == Type::BoolTy) > >>>>> + if (FieldTy == Type::Int1Ty) > >>>>> FieldTy = Type::Int8Ty; > >>>>> assert(FieldTy->isInteger() && "Invalid bitfield"); > >>>>> > >>>>> Index: gcc/llvm-types.cpp > >>>>> =================================================================== > >>>>> --- gcc/llvm-types.cpp (revision 247) > >>>>> +++ gcc/llvm-types.cpp (working copy) > >>>>> @@ -288,7 +288,7 @@ > >>>>> case UNION_TYPE: return ConvertUNION(type, orig_type); > >>>>> case BOOLEAN_TYPE: > >>>>> if (TREE_INT_CST_LOW(TYPE_SIZE(type)) <= 8) > >>>>> - return SET_TYPE_LLVM(type, Type::BoolTy); > >>>>> + return SET_TYPE_LLVM(type, Type::Int1Ty); > >>>>> else { // Bools on some platforms take more space than LLVM bool > >>>>> (e.g. PPC). > >>>>> if (const Type *Ty = GET_TYPE_LLVM(type)) > >>>>> return Ty; > >>>>> @@ -517,7 +517,7 @@ > >>>>> if (LLVMTy == Type::FloatTy) > >>>>> LLVMTy = Type::DoubleTy; > >>>>> else if (LLVMTy == Type::Int16Ty || LLVMTy == Type::Int8Ty || > >>>>> - LLVMTy == Type::BoolTy) > >>>>> + LLVMTy == Type::Int1Ty) > >>>>> LLVMTy = Type::Int32Ty; > >>>>> } > >>>>> ArgTypes.push_back(LLVMTy); > >>>>> > >>>>> > >>>>> ____________________________________________________________________ > >>>>> > >>>>> _______________________________________________ > >>>>> 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