<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
The patch doesn't work:<br>
<br>
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<br>
../../gcc/llvm-types.cpp: In member function 'const llvm::Type*
TypeConverter::ConvertType(tree_node*)':<br>
../../gcc/llvm-types.cpp:291: error: 'Int1Ty' is not a member of
'llvm::Type'<br>
../../gcc/llvm-types.cpp: In member function
'void<unnamed>::FunctionTypeConversion::HandleScalarArgument(const
llvm::Type*, tree_node*)':<br>
../../gcc/llvm-types.cpp:520: error: 'Int1Ty' is not a member of
'llvm::Type'<br>
gmake[1]: *** [llvm-types.o] Error 1<br>
gmake[1]: *** Waiting for unfinished jobs....<br>
../../gcc/llvm-convert.cpp: In member function 'llvm::Value*
TreeToLLVM::CastToType(unsigned int, llvm::Value*, const llvm::Type*)':<br>
../../gcc/llvm-convert.cpp:716: error: 'Int1Ty' is not a member of
'llvm::Type'<br>
../../gcc/llvm-convert.cpp:716: error: 'Int1Ty' is not a member of
'llvm::Type'<br>
../../gcc/llvm-convert.cpp: In member function 'llvm::Value*
TreeToLLVM::EmitCOND_EXPR(tree_node*)':<br>
../../gcc/llvm-convert.cpp:1390: error: 'Int1Ty' is not a member of
'llvm::Type'<br>
../../gcc/llvm-convert.cpp: In member function 'llvm::Value*
TreeToLLVM::EmitTRUTH_NOT_EXPR(tree_node*)':<br>
../../gcc/llvm-convert.cpp:2379: error: 'Int1Ty' is not a member of
'llvm::Type'<br>
../../gcc/llvm-convert.cpp: In member function 'LValue
TreeToLLVM::EmitLV_COMPONENT_REF(tree_node*)':<br>
../../gcc/llvm-convert.cpp:4041: error: 'Int1Ty' is not a member of
'llvm::Type'<br>
<br>
<br>
Reid Spencer wrote:
<blockquote cite="mid1168539881.7860.3.camel@bashful.x10sys.com"
 type="cite">
  <pre wrap="">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
  </pre>
  <pre wrap="">
<hr size="4" width="90%">
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);
  </pre>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
llvm-commits mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a>
  </pre>
</blockquote>
</body>
</html>