[llvm-commits] [llvm] r54161 - in /llvm/trunk: docs/LangRef.html lib/AsmParser/llvmAsmParser.cpp.cvs lib/AsmParser/llvmAsmParser.h.cvs lib/AsmParser/llvmAsmParser.y lib/AsmParser/llvmAsmParser.y.cvs lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp lib/Transforms/Scalar/InstructionCombining.cpp lib/VMCore/Instructions.cpp lib/VMCore/Verifier.cpp test/Assembler/vector-shift.ll

Dan Gohman gohman at apple.com
Tue Jul 29 11:22:02 PDT 2008


Hello,

It appears this patch breaks CodeGen/CellSPU/and_ops.ll. Can you
investigate?

Thanks,

Dan

On Jul 29, 2008, at 8:49 AM, Nate Begeman wrote:

> Author: sampo
> Date: Tue Jul 29 10:49:41 2008
> New Revision: 54161
>
> URL: http://llvm.org/viewvc/llvm-project?rev=54161&view=rev
> Log:
> Add vector shifts to the IR, patch by Eli Friedman.
> CodeGen & Clang work coming next.
>
> Added:
>    llvm/trunk/test/Assembler/vector-shift.ll
> Modified:
>    llvm/trunk/docs/LangRef.html
>    llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs
>    llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs
>    llvm/trunk/lib/AsmParser/llvmAsmParser.y
>    llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs
>    llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
>    llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
>    llvm/trunk/lib/VMCore/Instructions.cpp
>    llvm/trunk/lib/VMCore/Verifier.cpp
>
> Modified: llvm/trunk/docs/LangRef.html
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.html?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/docs/LangRef.html (original)
> +++ llvm/trunk/docs/LangRef.html Tue Jul 29 10:49:41 2008
> @@ -2458,9 +2458,8 @@
> <h5>Arguments:</h5>
>
> <p>Both arguments to the '<tt>shl</tt>' instruction must be the same  
> <a
> - href="#t_integer">integer</a> type.  '<tt>var2</tt>' is treated as  
> an
> -unsigned value.  This instruction does not support
> -<a href="#t_vector">vector</a> operands.</p>
> + href="#t_integer">integer</a> or <a href="#t_vector">vector</a> of  
> integer
> +type.  '<tt>var2</tt>' is treated as an unsigned value.</p>
>
> <h5>Semantics:</h5>
>
> @@ -2489,9 +2488,8 @@
>
> <h5>Arguments:</h5>
> <p>Both arguments to the '<tt>lshr</tt>' instruction must be the same
> -<a href="#t_integer">integer</a> type.  '<tt>var2</tt>' is treated  
> as an
> -unsigned value.  This instruction does not support
> -<a href="#t_vector">vector</a> operands.</p>
> +<a href="#t_integer">integer</a> or <a href="#t_vector">vector</a>  
> of integer
> +type.  '<tt>var2</tt>' is treated as an unsigned value.</p>
>
> <h5>Semantics:</h5>
>
> @@ -2525,9 +2523,8 @@
>
> <h5>Arguments:</h5>
> <p>Both arguments to the '<tt>ashr</tt>' instruction must be the same
> -<a href="#t_integer">integer</a> type.  '<tt>var2</tt>' is treated  
> as an
> -unsigned value.  This instruction does not support
> -<a href="#t_vector">vector</a> operands.</p>
> +<a href="#t_integer">integer</a> or <a href="#t_vector">vector</a>  
> of integer
> +type.  '<tt>var2</tt>' is treated as an unsigned value.</p>
>
> <h5>Semantics:</h5>
> <p>This instruction always performs an arithmetic shift right  
> operation,
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs Tue Jul 29  
> 10:49:41 2008
> @@ -388,7 +388,7 @@
>
>
> /* Copy the first part of user declarations.  */
> -#line 14 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 14 "/llvm/lib/AsmParser/llvmAsmParser.y"
>
> #include "ParserInternals.h"
> #include "llvm/CallingConv.h"
> @@ -1362,7 +1362,7 @@
>
> #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
> typedef union YYSTYPE
> -#line 967 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 967 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
>   llvm::Module                           *ModuleVal;
>   llvm::Function                         *FunctionVal;
> @@ -3622,152 +3622,152 @@
>   switch (yyn)
>     {
>         case 29:
> -#line 1138 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1138 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
>     break;
>
>   case 30:
> -#line 1138 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1138 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
>     break;
>
>   case 31:
> -#line 1139 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1139 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
>     break;
>
>   case 32:
> -#line 1139 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1139 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
>     break;
>
>   case 33:
> -#line 1140 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1140 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
>     break;
>
>   case 34:
> -#line 1140 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1140 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
>     break;
>
>   case 35:
> -#line 1141 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1141 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
>     break;
>
>   case 36:
> -#line 1141 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1141 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
>     break;
>
>   case 37:
> -#line 1142 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1142 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
>     break;
>
>   case 38:
> -#line 1142 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1142 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
>     break;
>
>   case 39:
> -#line 1146 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1146 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
>     break;
>
>   case 40:
> -#line 1146 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1146 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
>     break;
>
>   case 41:
> -#line 1147 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1147 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
>     break;
>
>   case 42:
> -#line 1147 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1147 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
>     break;
>
>   case 43:
> -#line 1148 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1148 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
>     break;
>
>   case 44:
> -#line 1148 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1148 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
>     break;
>
>   case 45:
> -#line 1149 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1149 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
>     break;
>
>   case 46:
> -#line 1149 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1149 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
>     break;
>
>   case 47:
> -#line 1150 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1150 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
>     break;
>
>   case 48:
> -#line 1150 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1150 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
>     break;
>
>   case 49:
> -#line 1151 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1151 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
>     break;
>
>   case 50:
> -#line 1151 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1151 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
>     break;
>
>   case 51:
> -#line 1152 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1152 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
>     break;
>
>   case 52:
> -#line 1152 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1152 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
>     break;
>
>   case 53:
> -#line 1153 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1153 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
>     break;
>
>   case 54:
> -#line 1154 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1154 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
>     break;
>
>   case 65:
> -#line 1163 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1163 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.StrVal) = 0; ;}
>     break;
>
>   case 66:
> -#line 1165 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1165 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal)=(yyvsp[(3) - (4)].UInt64Val); ;}
>     break;
>
>   case 67:
> -#line 1166 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1166 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal)=0; ;}
>     break;
>
>   case 68:
> -#line 1170 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1170 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
>     CHECK_FOR_ERROR
> @@ -3775,7 +3775,7 @@
>     break;
>
>   case 69:
> -#line 1174 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1174 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.StrVal) = 0;
>     CHECK_FOR_ERROR
> @@ -3783,7 +3783,7 @@
>     break;
>
>   case 73:
> -#line 1182 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1182 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.StrVal) = 0;
>     CHECK_FOR_ERROR
> @@ -3791,7 +3791,7 @@
>     break;
>
>   case 74:
> -#line 1187 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1187 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
>     CHECK_FOR_ERROR
> @@ -3799,157 +3799,157 @@
>     break;
>
>   case 75:
> -#line 1193 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1193 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
>     break;
>
>   case 76:
> -#line 1194 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1194 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
>     break;
>
>   case 77:
> -#line 1195 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1195 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
>     break;
>
>   case 78:
> -#line 1196 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1196 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
>     break;
>
>   case 79:
> -#line 1197 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1197 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
>     break;
>
>   case 80:
> -#line 1198 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1198 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::CommonLinkage; ;}
>     break;
>
>   case 81:
> -#line 1202 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1202 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
>     break;
>
>   case 82:
> -#line 1203 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1203 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
>     break;
>
>   case 83:
> -#line 1204 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1204 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
>     break;
>
>   case 84:
> -#line 1208 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1208 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Visibility) = GlobalValue::DefaultVisibility;   ;}
>     break;
>
>   case 85:
> -#line 1209 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1209 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Visibility) = GlobalValue::DefaultVisibility;   ;}
>     break;
>
>   case 86:
> -#line 1210 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1210 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Visibility) = GlobalValue::HiddenVisibility;    ;}
>     break;
>
>   case 87:
> -#line 1211 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1211 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Visibility) = GlobalValue::ProtectedVisibility; ;}
>     break;
>
>   case 88:
> -#line 1215 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1215 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
>     break;
>
>   case 89:
> -#line 1216 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1216 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
>     break;
>
>   case 90:
> -#line 1217 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1217 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
>     break;
>
>   case 91:
> -#line 1221 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1221 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
>     break;
>
>   case 92:
> -#line 1222 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1222 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
>     break;
>
>   case 93:
> -#line 1223 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1223 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
>     break;
>
>   case 94:
> -#line 1224 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1224 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
>     break;
>
>   case 95:
> -#line 1225 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1225 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
>     break;
>
>   case 96:
> -#line 1229 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1229 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
>     break;
>
>   case 97:
> -#line 1230 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1230 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
>     break;
>
>   case 98:
> -#line 1231 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1231 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
>     break;
>
>   case 99:
> -#line 1234 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1234 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal) = CallingConv::C; ;}
>     break;
>
>   case 100:
> -#line 1235 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1235 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal) = CallingConv::C; ;}
>     break;
>
>   case 101:
> -#line 1236 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1236 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal) = CallingConv::Fast; ;}
>     break;
>
>   case 102:
> -#line 1237 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1237 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal) = CallingConv::Cold; ;}
>     break;
>
>   case 103:
> -#line 1238 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1238 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
>     break;
>
>   case 104:
> -#line 1239 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1239 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
>     break;
>
>   case 105:
> -#line 1240 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1240 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>                    if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) !=  
> (yyvsp[(2) - (2)].UInt64Val))
>                      GEN_ERROR("Calling conv too large");
> @@ -3959,129 +3959,129 @@
>     break;
>
>   case 106:
> -#line 1247 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1247 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::ZExt;      ;}
>     break;
>
>   case 107:
> -#line 1248 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1248 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::ZExt;      ;}
>     break;
>
>   case 108:
> -#line 1249 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1249 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::SExt;      ;}
>     break;
>
>   case 109:
> -#line 1250 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1250 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::SExt;      ;}
>     break;
>
>   case 110:
> -#line 1251 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1251 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::InReg;     ;}
>     break;
>
>   case 111:
> -#line 1252 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1252 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::StructRet; ;}
>     break;
>
>   case 112:
> -#line 1253 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1253 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::NoAlias;   ;}
>     break;
>
>   case 113:
> -#line 1254 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1254 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::ByVal;     ;}
>     break;
>
>   case 114:
> -#line 1255 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1255 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::Nest;      ;}
>     break;
>
>   case 115:
> -#line 1256 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1256 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) =
>                            
> ParamAttr::constructAlignmentFromInt((yyvsp[(2) -  
> (2)].UInt64Val));    ;}
>     break;
>
>   case 116:
> -#line 1260 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1260 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::None; ;}
>     break;
>
>   case 117:
> -#line 1261 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1261 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>                 (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) |  
> (yyvsp[(2) - (2)].ParamAttrs);
>               ;}
>     break;
>
>   case 118:
> -#line 1266 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1266 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::NoReturn; ;}
>     break;
>
>   case 119:
> -#line 1267 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1267 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::NoUnwind; ;}
>     break;
>
>   case 120:
> -#line 1268 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1268 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::ZExt;     ;}
>     break;
>
>   case 121:
> -#line 1269 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1269 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::SExt;     ;}
>     break;
>
>   case 122:
> -#line 1270 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1270 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::ReadNone; ;}
>     break;
>
>   case 123:
> -#line 1271 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1271 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::ReadOnly; ;}
>     break;
>
>   case 124:
> -#line 1274 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1274 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamAttrs) = ParamAttr::None; ;}
>     break;
>
>   case 125:
> -#line 1275 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1275 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>                 (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) |  
> (yyvsp[(2) - (2)].ParamAttrs);
>               ;}
>     break;
>
>   case 126:
> -#line 1280 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1280 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.StrVal) = 0; ;}
>     break;
>
>   case 127:
> -#line 1281 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1281 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>                 (yyval.StrVal) = (yyvsp[(2) - (2)].StrVal);
>               ;}
>     break;
>
>   case 128:
> -#line 1288 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1288 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal) = 0; ;}
>     break;
>
>   case 129:
> -#line 1289 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1289 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>   (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val);
>   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
> @@ -4091,12 +4091,12 @@
>     break;
>
>   case 130:
> -#line 1295 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1295 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.UIntVal) = 0; ;}
>     break;
>
>   case 131:
> -#line 1296 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1296 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>   (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val);
>   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
> @@ -4106,7 +4106,7 @@
>     break;
>
>   case 132:
> -#line 1305 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1305 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>   for (unsigned i = 0, e = (yyvsp[(2) - (2)].StrVal)->length(); i !=  
> e; ++i)
>     if ((*(yyvsp[(2) - (2)].StrVal))[i] == '"' || (*(yyvsp[(2) -  
> (2)].StrVal))[i] == '\\')
> @@ -4117,27 +4117,27 @@
>     break;
>
>   case 133:
> -#line 1313 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1313 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.StrVal) = 0; ;}
>     break;
>
>   case 134:
> -#line 1314 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1314 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;}
>     break;
>
>   case 135:
> -#line 1319 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1319 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {;}
>     break;
>
>   case 136:
> -#line 1320 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1320 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {;}
>     break;
>
>   case 137:
> -#line 1321 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1321 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CurGV->setSection(*(yyvsp[(1) - (1)].StrVal));
>     delete (yyvsp[(1) - (1)].StrVal);
> @@ -4146,7 +4146,7 @@
>     break;
>
>   case 138:
> -#line 1326 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1326 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(2) - (2)].UInt64Val) != 0 && ! 
> isPowerOf2_32((yyvsp[(2) - (2)].UInt64Val)))
>       GEN_ERROR("Alignment must be a power of two");
> @@ -4156,7 +4156,7 @@
>     break;
>
>   case 146:
> -#line 1342 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1342 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
>     CHECK_FOR_ERROR
> @@ -4164,7 +4164,7 @@
>     break;
>
>   case 147:
> -#line 1346 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1346 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType));
>     CHECK_FOR_ERROR
> @@ -4172,7 +4172,7 @@
>     break;
>
>   case 148:
> -#line 1350 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1350 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                             // Pointer type?
>     if (*(yyvsp[(1) - (3)].TypeVal) == Type::LabelTy)
>       GEN_ERROR("Cannot form a pointer to a basic block");
> @@ -4183,7 +4183,7 @@
>     break;
>
>   case 149:
> -#line 1357 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1357 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {            // Named types are also simple types...
>     const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal));
>     CHECK_FOR_ERROR
> @@ -4192,7 +4192,7 @@
>     break;
>
>   case 150:
> -#line 1362 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1362 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                   // Type UpReference
>     if ((yyvsp[(2) - (2)].UInt64Val) > (uint64_t)~0U)  
> GEN_ERROR("Value out of range");
>     OpaqueType *OT = OpaqueType::get();        // Use temporary  
> placeholder
> @@ -4204,7 +4204,7 @@
>     break;
>
>   case 151:
> -#line 1370 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1370 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // Allow but ignore attributes on function types; this permits  
> auto-upgrade.
>     // FIXME: remove in LLVM 3.0.
> @@ -4237,7 +4237,7 @@
>     break;
>
>   case 152:
> -#line 1399 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1399 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // Allow but ignore attributes on function types; this permits  
> auto-upgrade.
>     // FIXME: remove in LLVM 3.0.
> @@ -4265,7 +4265,7 @@
>     break;
>
>   case 153:
> -#line 1424 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1424 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {          // Sized array type?
>     (yyval.TypeVal) = new  
> PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) -  
> (5)].TypeVal), (yyvsp[(2) - (5)].UInt64Val))));
>     delete (yyvsp[(4) - (5)].TypeVal);
> @@ -4274,7 +4274,7 @@
>     break;
>
>   case 154:
> -#line 1429 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1429 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {          // Vector type?
>      const llvm::Type* ElemTy = (yyvsp[(4) - (5)].TypeVal)->get();
>      if ((unsigned)(yyvsp[(2) - (5)].UInt64Val) != (yyvsp[(2) -  
> (5)].UInt64Val))
> @@ -4288,7 +4288,7 @@
>     break;
>
>   case 155:
> -#line 1439 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1439 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                        // Structure type?
>     std::vector<const Type*> Elements;
>     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(2) -  
> (3)].TypeList)->begin(),
> @@ -4302,7 +4302,7 @@
>     break;
>
>   case 156:
> -#line 1449 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1449 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                                  // Empty structure type?
>     (yyval.TypeVal) = new  
> PATypeHolder(StructType::get(std::vector<const Type*>()));
>     CHECK_FOR_ERROR
> @@ -4310,7 +4310,7 @@
>     break;
>
>   case 157:
> -#line 1453 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1453 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     std::vector<const Type*> Elements;
>     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(3) -  
> (5)].TypeList)->begin(),
> @@ -4324,7 +4324,7 @@
>     break;
>
>   case 158:
> -#line 1463 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1463 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                         // Empty structure type?
>     (yyval.TypeVal) = new  
> PATypeHolder(StructType::get(std::vector<const Type*>(), true));
>     CHECK_FOR_ERROR
> @@ -4332,7 +4332,7 @@
>     break;
>
>   case 159:
> -#line 1470 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1470 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // Allow but ignore attributes on function types; this permits  
> auto-upgrade.
>     // FIXME: remove in LLVM 3.0.
> @@ -4342,7 +4342,7 @@
>     break;
>
>   case 160:
> -#line 1479 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1479 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (1)].TypeVal))->getDescription());
> @@ -4353,14 +4353,14 @@
>     break;
>
>   case 161:
> -#line 1486 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1486 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
>   ;}
>     break;
>
>   case 162:
> -#line 1491 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1491 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
>     (yyval.TypeWithAttrsList)->push_back((yyvsp[(1) -  
> (1)].TypeWithAttrs));
> @@ -4369,7 +4369,7 @@
>     break;
>
>   case 163:
> -#line 1496 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1496 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     ((yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList))- 
> >push_back((yyvsp[(3) - (3)].TypeWithAttrs));
>     CHECK_FOR_ERROR
> @@ -4377,7 +4377,7 @@
>     break;
>
>   case 165:
> -#line 1504 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1504 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList);
>     TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
> @@ -4388,7 +4388,7 @@
>     break;
>
>   case 166:
> -#line 1511 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1511 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
>     TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
> @@ -4399,7 +4399,7 @@
>     break;
>
>   case 167:
> -#line 1518 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1518 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
>     CHECK_FOR_ERROR
> @@ -4407,7 +4407,7 @@
>     break;
>
>   case 168:
> -#line 1526 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1526 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TypeList) = new std::list<PATypeHolder>();
>     (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal));
> @@ -4417,7 +4417,7 @@
>     break;
>
>   case 169:
> -#line 1532 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1532 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))- 
> >push_back(*(yyvsp[(3) - (3)].TypeVal));
>     delete (yyvsp[(3) - (3)].TypeVal);
> @@ -4426,7 +4426,7 @@
>     break;
>
>   case 170:
> -#line 1544 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1544 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { // Nonempty unsized arr
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (4)].TypeVal))->getDescription());
> @@ -4458,7 +4458,7 @@
>     break;
>
>   case 171:
> -#line 1572 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1572 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (3)].TypeVal))->getDescription());
> @@ -4478,7 +4478,7 @@
>     break;
>
>   case 172:
> -#line 1588 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1588 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (3)].TypeVal))->getDescription());
> @@ -4509,7 +4509,7 @@
>     break;
>
>   case 173:
> -#line 1615 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1615 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { // Nonempty unsized arr
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (4)].TypeVal))->getDescription());
> @@ -4541,7 +4541,7 @@
>     break;
>
>   case 174:
> -#line 1643 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1643 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     const StructType *STy = dyn_cast<StructType>((yyvsp[(1) -  
> (4)].TypeVal)->get());
>     if (STy == 0)
> @@ -4571,7 +4571,7 @@
>     break;
>
>   case 175:
> -#line 1669 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1669 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (3)].TypeVal))->getDescription());
> @@ -4595,7 +4595,7 @@
>     break;
>
>   case 176:
> -#line 1689 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1689 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     const StructType *STy = dyn_cast<StructType>((yyvsp[(1) -  
> (6)].TypeVal)->get());
>     if (STy == 0)
> @@ -4625,7 +4625,7 @@
>     break;
>
>   case 177:
> -#line 1715 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1715 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (5)].TypeVal))->getDescription());
> @@ -4649,7 +4649,7 @@
>     break;
>
>   case 178:
> -#line 1735 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1735 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (2)].TypeVal))->getDescription());
> @@ -4665,7 +4665,7 @@
>     break;
>
>   case 179:
> -#line 1747 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1747 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (2)].TypeVal))->getDescription());
> @@ -4676,7 +4676,7 @@
>     break;
>
>   case 180:
> -#line 1754 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1754 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (2)].TypeVal))->getDescription());
> @@ -4746,7 +4746,7 @@
>     break;
>
>   case 181:
> -#line 1820 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1820 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (2)].TypeVal))->getDescription());
> @@ -4760,7 +4760,7 @@
>     break;
>
>   case 182:
> -#line 1830 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1830 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (2)].TypeVal))->getDescription());
> @@ -4774,7 +4774,7 @@
>     break;
>
>   case 183:
> -#line 1840 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1840 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {      // integral constants
>     if (!ConstantInt::isValueValidForType((yyvsp[(1) -  
> (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val)))
>       GEN_ERROR("Constant value doesn't fit in type");
> @@ -4784,7 +4784,7 @@
>     break;
>
>   case 184:
> -#line 1846 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1846 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {      // arbitrary precision integer constants
>     uint32_t BitWidth = cast<IntegerType>((yyvsp[(1) -  
> (2)].PrimType))->getBitWidth();
>     if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
> @@ -4798,7 +4798,7 @@
>     break;
>
>   case 185:
> -#line 1856 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1856 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {      // integral constants
>     if (!ConstantInt::isValueValidForType((yyvsp[(1) -  
> (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val)))
>       GEN_ERROR("Constant value doesn't fit in type");
> @@ -4808,7 +4808,7 @@
>     break;
>
>   case 186:
> -#line 1862 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1862 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {      // arbitrary precision integer constants
>     uint32_t BitWidth = cast<IntegerType>((yyvsp[(1) -  
> (2)].PrimType))->getBitWidth();
>     if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
> @@ -4822,7 +4822,7 @@
>     break;
>
>   case 187:
> -#line 1872 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1872 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                      // Boolean constants
>     if (cast<IntegerType>((yyvsp[(1) - (2)].PrimType))- 
> >getBitWidth() != 1)
>       GEN_ERROR("Constant true must have type i1");
> @@ -4832,7 +4832,7 @@
>     break;
>
>   case 188:
> -#line 1878 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1878 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                     // Boolean constants
>     if (cast<IntegerType>((yyvsp[(1) - (2)].PrimType))- 
> >getBitWidth() != 1)
>       GEN_ERROR("Constant false must have type i1");
> @@ -4842,7 +4842,7 @@
>     break;
>
>   case 189:
> -#line 1884 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1884 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                   // Floating point constants
>     if (!ConstantFP::isValueValidForType((yyvsp[(1) -  
> (2)].PrimType), *(yyvsp[(2) - (2)].FPVal)))
>       GEN_ERROR("Floating point constant invalid for type");
> @@ -4857,7 +4857,7 @@
>     break;
>
>   case 190:
> -#line 1897 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1897 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) -  
> (6)].TypeVal))->getDescription());
> @@ -4873,7 +4873,7 @@
>     break;
>
>   case 191:
> -#line 1909 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1909 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!isa<PointerType>((yyvsp[(3) - (5)].ConstVal)->getType()))
>       GEN_ERROR("GetElementPtr requires a pointer operand");
> @@ -4898,7 +4898,7 @@
>     break;
>
>   case 192:
> -#line 1930 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1930 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::Int1Ty)
>       GEN_ERROR("Select condition must be of boolean type");
> @@ -4910,7 +4910,7 @@
>     break;
>
>   case 193:
> -#line 1938 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1938 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) -  
> (6)].ConstVal)->getType())
>       GEN_ERROR("Binary operator types must match");
> @@ -4920,12 +4920,12 @@
>     break;
>
>   case 194:
> -#line 1944 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1944 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) -  
> (6)].ConstVal)->getType())
>       GEN_ERROR("Logical operator types must match");
>     if (!(yyvsp[(3) - (6)].ConstVal)->getType()->isInteger()) {
> -      if (Instruction::isShift((yyvsp[(1) - (6)].BinaryOpVal)) || ! 
> isa<VectorType>((yyvsp[(3) - (6)].ConstVal)->getType()) ||
> +      if (!isa<VectorType>((yyvsp[(3) - (6)].ConstVal)->getType()) ||
>           !cast<VectorType>((yyvsp[(3) - (6)].ConstVal)->getType())- 
> >getElementType()->isInteger())
>         GEN_ERROR("Logical operator requires integral operands");
>     }
> @@ -4935,7 +4935,7 @@
>     break;
>
>   case 195:
> -#line 1955 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1955 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -  
> (7)].ConstVal)->getType())
>       GEN_ERROR("icmp operand types must match");
> @@ -4944,7 +4944,7 @@
>     break;
>
>   case 196:
> -#line 1960 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1960 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -  
> (7)].ConstVal)->getType())
>       GEN_ERROR("fcmp operand types must match");
> @@ -4953,7 +4953,7 @@
>     break;
>
>   case 197:
> -#line 1965 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1965 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -  
> (7)].ConstVal)->getType())
>       GEN_ERROR("vicmp operand types must match");
> @@ -4962,7 +4962,7 @@
>     break;
>
>   case 198:
> -#line 1970 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1970 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -  
> (7)].ConstVal)->getType())
>       GEN_ERROR("vfcmp operand types must match");
> @@ -4971,7 +4971,7 @@
>     break;
>
>   case 199:
> -#line 1975 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1975 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!ExtractElementInst::isValidOperands((yyvsp[(3) -  
> (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)))
>       GEN_ERROR("Invalid extractelement operands");
> @@ -4981,7 +4981,7 @@
>     break;
>
>   case 200:
> -#line 1981 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1981 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!InsertElementInst::isValidOperands((yyvsp[(3) -  
> (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) -  
> (8)].ConstVal)))
>       GEN_ERROR("Invalid insertelement operands");
> @@ -4991,7 +4991,7 @@
>     break;
>
>   case 201:
> -#line 1987 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1987 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!ShuffleVectorInst::isValidOperands((yyvsp[(3) -  
> (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) -  
> (8)].ConstVal)))
>       GEN_ERROR("Invalid shufflevector operands");
> @@ -5001,7 +5001,7 @@
>     break;
>
>   case 202:
> -#line 1993 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1993 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!isa<StructType>((yyvsp[(3) - (5)].ConstVal)->getType()) && ! 
> isa<ArrayType>((yyvsp[(3) - (5)].ConstVal)->getType()))
>       GEN_ERROR("ExtractValue requires an aggregate operand");
> @@ -5013,7 +5013,7 @@
>     break;
>
>   case 203:
> -#line 2001 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2001 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!isa<StructType>((yyvsp[(3) - (7)].ConstVal)->getType()) && ! 
> isa<ArrayType>((yyvsp[(3) - (7)].ConstVal)->getType()))
>       GEN_ERROR("InsertValue requires an aggregate operand");
> @@ -5025,7 +5025,7 @@
>     break;
>
>   case 204:
> -#line 2012 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2012 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))- 
> >push_back((yyvsp[(3) - (3)].ConstVal));
>     CHECK_FOR_ERROR
> @@ -5033,7 +5033,7 @@
>     break;
>
>   case 205:
> -#line 2016 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2016 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ConstVector) = new std::vector<Constant*>();
>     (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal));
> @@ -5042,27 +5042,27 @@
>     break;
>
>   case 206:
> -#line 2024 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2024 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.BoolVal) = false; ;}
>     break;
>
>   case 207:
> -#line 2024 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2024 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.BoolVal) = true; ;}
>     break;
>
>   case 208:
> -#line 2027 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2027 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.BoolVal) = true; ;}
>     break;
>
>   case 209:
> -#line 2027 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2027 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.BoolVal) = false; ;}
>     break;
>
>   case 210:
> -#line 2030 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2030 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     const Type* VTy = (yyvsp[(1) - (2)].TypeVal)->get();
>     Value *V = getVal(VTy, (yyvsp[(2) - (2)].ValIDVal));
> @@ -5078,7 +5078,7 @@
>     break;
>
>   case 211:
> -#line 2042 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2042 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     Constant *Val = (yyvsp[(3) - (6)].ConstVal);
>     const Type *DestTy = (yyvsp[(5) - (6)].TypeVal)->get();
> @@ -5094,7 +5094,7 @@
>     break;
>
>   case 212:
> -#line 2063 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2063 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
>     CurModule.ModuleDone();
> @@ -5103,7 +5103,7 @@
>     break;
>
>   case 213:
> -#line 2068 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2068 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
>     CurModule.ModuleDone();
> @@ -5112,12 +5112,12 @@
>     break;
>
>   case 216:
> -#line 2081 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2081 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { CurFun.isDeclare = false; ;}
>     break;
>
>   case 217:
> -#line 2081 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2081 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CurFun.FunctionDone();
>     CHECK_FOR_ERROR
> @@ -5125,26 +5125,26 @@
>     break;
>
>   case 218:
> -#line 2085 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2085 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { CurFun.isDeclare = true; ;}
>     break;
>
>   case 219:
> -#line 2085 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2085 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CHECK_FOR_ERROR
>   ;}
>     break;
>
>   case 220:
> -#line 2088 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2088 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CHECK_FOR_ERROR
>   ;}
>     break;
>
>   case 221:
> -#line 2091 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2091 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -  
> (3)].TypeVal))->getDescription());
> @@ -5172,7 +5172,7 @@
>     break;
>
>   case 222:
> -#line 2115 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2115 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     ResolveTypeTo((yyvsp[(1) - (3)].StrVal), (yyvsp[(3) -  
> (3)].PrimType));
>
> @@ -5187,7 +5187,7 @@
>     break;
>
>   case 223:
> -#line 2127 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2127 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     /* "Externally Visible" Linkage */
>     if ((yyvsp[(5) - (6)].ConstVal) == 0)
> @@ -5199,14 +5199,14 @@
>     break;
>
>   case 224:
> -#line 2134 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2134 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CurGV = 0;
>   ;}
>     break;
>
>   case 225:
> -#line 2138 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2138 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(6) - (7)].ConstVal) == 0)
>       GEN_ERROR("Global value initializer is not a constant");
> @@ -5216,14 +5216,14 @@
>     break;
>
>   case 226:
> -#line 2143 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2143 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CurGV = 0;
>   ;}
>     break;
>
>   case 227:
> -#line 2147 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2147 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(6) -  
> (7)].TypeVal))->getDescription());
> @@ -5234,7 +5234,7 @@
>     break;
>
>   case 228:
> -#line 2153 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2153 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CurGV = 0;
>     CHECK_FOR_ERROR
> @@ -5242,7 +5242,7 @@
>     break;
>
>   case 229:
> -#line 2157 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2157 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     std::string Name;
>     if ((yyvsp[(1) - (5)].StrVal)) {
> @@ -5286,21 +5286,21 @@
>     break;
>
>   case 230:
> -#line 2197 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2197 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CHECK_FOR_ERROR
>   ;}
>     break;
>
>   case 231:
> -#line 2200 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2200 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CHECK_FOR_ERROR
>   ;}
>     break;
>
>   case 232:
> -#line 2206 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2206 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>   const std::string &AsmSoFar = CurModule.CurrentModule- 
> >getModuleInlineAsm();
>   if (AsmSoFar.empty())
> @@ -5313,7 +5313,7 @@
>     break;
>
>   case 233:
> -#line 2216 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2216 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CurModule.CurrentModule->setTargetTriple(*(yyvsp[(3) -  
> (3)].StrVal));
>     delete (yyvsp[(3) - (3)].StrVal);
> @@ -5321,7 +5321,7 @@
>     break;
>
>   case 234:
> -#line 2220 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2220 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CurModule.CurrentModule->setDataLayout(*(yyvsp[(3) -  
> (3)].StrVal));
>     delete (yyvsp[(3) - (3)].StrVal);
> @@ -5329,7 +5329,7 @@
>     break;
>
>   case 236:
> -#line 2227 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2227 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>           CurModule.CurrentModule->addLibrary(*(yyvsp[(3) -  
> (3)].StrVal));
>           delete (yyvsp[(3) - (3)].StrVal);
> @@ -5338,7 +5338,7 @@
>     break;
>
>   case 237:
> -#line 2232 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2232 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>           CurModule.CurrentModule->addLibrary(*(yyvsp[(1) -  
> (1)].StrVal));
>           delete (yyvsp[(1) - (1)].StrVal);
> @@ -5347,14 +5347,14 @@
>     break;
>
>   case 238:
> -#line 2237 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2237 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>           CHECK_FOR_ERROR
>         ;}
>     break;
>
>   case 239:
> -#line 2246 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2246 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -  
> (5)].TypeVal))->getDescription());
> @@ -5368,7 +5368,7 @@
>     break;
>
>   case 240:
> -#line 2256 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2256 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (3)].TypeVal))->getDescription());
> @@ -5382,7 +5382,7 @@
>     break;
>
>   case 241:
> -#line 2267 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2267 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ArgList) = (yyvsp[(1) - (1)].ArgList);
>     CHECK_FOR_ERROR
> @@ -5390,7 +5390,7 @@
>     break;
>
>   case 242:
> -#line 2271 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2271 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList);
>     struct ArgListEntry E;
> @@ -5403,7 +5403,7 @@
>     break;
>
>   case 243:
> -#line 2280 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2280 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ArgList) = new ArgListType;
>     struct ArgListEntry E;
> @@ -5416,7 +5416,7 @@
>     break;
>
>   case 244:
> -#line 2289 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2289 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ArgList) = 0;
>     CHECK_FOR_ERROR
> @@ -5424,7 +5424,7 @@
>     break;
>
>   case 245:
> -#line 2295 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2295 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>   std::string FunctionName(*(yyvsp[(3) - (10)].StrVal));
>   delete (yyvsp[(3) - (10)].StrVal);  // Free strdup'd memory!
> @@ -5555,7 +5555,7 @@
>     break;
>
>   case 248:
> -#line 2425 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2425 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>   (yyval.FunctionVal) = CurFun.CurrentFunction;
>
> @@ -5567,7 +5567,7 @@
>     break;
>
>   case 251:
> -#line 2436 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2436 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>   (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
>   CHECK_FOR_ERROR
> @@ -5575,7 +5575,7 @@
>     break;
>
>   case 252:
> -#line 2441 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2441 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     CurFun.CurrentFunction->setLinkage((yyvsp[(1) - (3)].Linkage));
>     CurFun.CurrentFunction->setVisibility((yyvsp[(2) -  
> (3)].Visibility));
> @@ -5586,7 +5586,7 @@
>     break;
>
>   case 253:
> -#line 2453 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2453 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.BoolVal) = false;
>     CHECK_FOR_ERROR
> @@ -5594,7 +5594,7 @@
>     break;
>
>   case 254:
> -#line 2457 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2457 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.BoolVal) = true;
>     CHECK_FOR_ERROR
> @@ -5602,7 +5602,7 @@
>     break;
>
>   case 255:
> -#line 2462 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2462 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {    // A reference to a direct constant
>     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SInt64Val));
>     CHECK_FOR_ERROR
> @@ -5610,7 +5610,7 @@
>     break;
>
>   case 256:
> -#line 2466 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2466 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].UInt64Val));
>     CHECK_FOR_ERROR
> @@ -5618,7 +5618,7 @@
>     break;
>
>   case 257:
> -#line 2470 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2470 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {      // arbitrary precision integer constants
>     (yyval.ValIDVal) = ValID::create(*(yyvsp[(1) - (1)].APIntVal),  
> true);
>     delete (yyvsp[(1) - (1)].APIntVal);
> @@ -5627,7 +5627,7 @@
>     break;
>
>   case 258:
> -#line 2475 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2475 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {      // arbitrary precision integer constants
>     (yyval.ValIDVal) = ValID::create(*(yyvsp[(1) - (1)].APIntVal),  
> false);
>     delete (yyvsp[(1) - (1)].APIntVal);
> @@ -5636,7 +5636,7 @@
>     break;
>
>   case 259:
> -#line 2480 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2480 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                     // Perhaps it's an FP constant?
>     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].FPVal));
>     CHECK_FOR_ERROR
> @@ -5644,7 +5644,7 @@
>     break;
>
>   case 260:
> -#line 2484 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2484 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
>     CHECK_FOR_ERROR
> @@ -5652,7 +5652,7 @@
>     break;
>
>   case 261:
> -#line 2488 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2488 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
>     CHECK_FOR_ERROR
> @@ -5660,7 +5660,7 @@
>     break;
>
>   case 262:
> -#line 2492 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2492 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValIDVal) = ValID::createNull();
>     CHECK_FOR_ERROR
> @@ -5668,7 +5668,7 @@
>     break;
>
>   case 263:
> -#line 2496 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2496 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValIDVal) = ValID::createUndef();
>     CHECK_FOR_ERROR
> @@ -5676,7 +5676,7 @@
>     break;
>
>   case 264:
> -#line 2500 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2500 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {     // A vector zero constant.
>     (yyval.ValIDVal) = ValID::createZeroInit();
>     CHECK_FOR_ERROR
> @@ -5684,7 +5684,7 @@
>     break;
>
>   case 265:
> -#line 2504 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2504 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { // Nonempty unsized packed vector
>     const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
>     unsigned NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
> @@ -5710,7 +5710,7 @@
>     break;
>
>   case 266:
> -#line 2526 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2526 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { // Nonempty unsized arr
>     const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
>     uint64_t NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
> @@ -5736,7 +5736,7 @@
>     break;
>
>   case 267:
> -#line 2548 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2548 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // Use undef instead of an array because it's inconvenient to  
> determine
>     // the element type at this point, there being no elements to  
> examine.
> @@ -5746,7 +5746,7 @@
>     break;
>
>   case 268:
> -#line 2554 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2554 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     uint64_t NumElements = (yyvsp[(2) - (2)].StrVal)->length();
>     const Type *ETy = Type::Int8Ty;
> @@ -5763,7 +5763,7 @@
>     break;
>
>   case 269:
> -#line 2567 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2567 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     std::vector<const Type*> Elements((yyvsp[(2) - (3)].ConstVector)- 
> >size());
>     for (unsigned i = 0, e = (yyvsp[(2) - (3)].ConstVector)->size();  
> i != e; ++i)
> @@ -5779,7 +5779,7 @@
>     break;
>
>   case 270:
> -#line 2579 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2579 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     const StructType *STy = StructType::get(std::vector<const  
> Type*>());
>     (yyval.ValIDVal) = ValID::create(ConstantStruct::get(STy,  
> std::vector<Constant*>()));
> @@ -5788,7 +5788,7 @@
>     break;
>
>   case 271:
> -#line 2584 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2584 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     std::vector<const Type*> Elements((yyvsp[(3) - (5)].ConstVector)- 
> >size());
>     for (unsigned i = 0, e = (yyvsp[(3) - (5)].ConstVector)->size();  
> i != e; ++i)
> @@ -5804,7 +5804,7 @@
>     break;
>
>   case 272:
> -#line 2596 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2596 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     const StructType *STy = StructType::get(std::vector<const  
> Type*>(),
>                                             /*isPacked=*/true);
> @@ -5814,7 +5814,7 @@
>     break;
>
>   case 273:
> -#line 2602 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2602 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].ConstVal));
>     CHECK_FOR_ERROR
> @@ -5822,7 +5822,7 @@
>     break;
>
>   case 274:
> -#line 2606 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2606 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValIDVal) = ValID::createInlineAsm(*(yyvsp[(3) -  
> (5)].StrVal), *(yyvsp[(5) - (5)].StrVal), (yyvsp[(2) - (5)].BoolVal));
>     delete (yyvsp[(3) - (5)].StrVal);
> @@ -5832,7 +5832,7 @@
>     break;
>
>   case 275:
> -#line 2616 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2616 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {  // Is it an integer reference...?
>     (yyval.ValIDVal) = ValID::createLocalID((yyvsp[(1) -  
> (1)].UIntVal));
>     CHECK_FOR_ERROR
> @@ -5840,7 +5840,7 @@
>     break;
>
>   case 276:
> -#line 2620 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2620 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[(1) -  
> (1)].UIntVal));
>     CHECK_FOR_ERROR
> @@ -5848,7 +5848,7 @@
>     break;
>
>   case 277:
> -#line 2624 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2624 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                   // Is it a named reference...?
>     (yyval.ValIDVal) = ValID::createLocalName(*(yyvsp[(1) -  
> (1)].StrVal));
>     delete (yyvsp[(1) - (1)].StrVal);
> @@ -5857,7 +5857,7 @@
>     break;
>
>   case 278:
> -#line 2629 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2629 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                   // Is it a named reference...?
>     (yyval.ValIDVal) = ValID::createGlobalName(*(yyvsp[(1) -  
> (1)].StrVal));
>     delete (yyvsp[(1) - (1)].StrVal);
> @@ -5866,7 +5866,7 @@
>     break;
>
>   case 281:
> -#line 2642 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2642 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (2)].TypeVal))->getDescription());
> @@ -5877,7 +5877,7 @@
>     break;
>
>   case 282:
> -#line 2651 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2651 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValueList) = new std::vector<Value *>();
>     (yyval.ValueList)->push_back((yyvsp[(1) - (1)].ValueVal));
> @@ -5886,7 +5886,7 @@
>     break;
>
>   case 283:
> -#line 2656 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2656 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     ((yyval.ValueList)=(yyvsp[(1) - (3)].ValueList))- 
> >push_back((yyvsp[(3) - (3)].ValueVal));
>     CHECK_FOR_ERROR
> @@ -5894,7 +5894,7 @@
>     break;
>
>   case 284:
> -#line 2661 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2661 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
>     CHECK_FOR_ERROR
> @@ -5902,7 +5902,7 @@
>     break;
>
>   case 285:
> -#line 2665 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2665 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { // Do not allow functions with 0 basic blocks
>     (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
>     CHECK_FOR_ERROR
> @@ -5910,7 +5910,7 @@
>     break;
>
>   case 286:
> -#line 2674 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2674 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     setValueName((yyvsp[(3) - (3)].TermInstVal), (yyvsp[(2) -  
> (3)].StrVal));
>     CHECK_FOR_ERROR
> @@ -5922,7 +5922,7 @@
>     break;
>
>   case 287:
> -#line 2683 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2683 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[(2) -  
> (2)].InstVal)))
>       if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
> @@ -5935,7 +5935,7 @@
>     break;
>
>   case 288:
> -#line 2692 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2692 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {          // Empty space between instruction lists
>     (yyval.BasicBlockVal) =  
> defineBBVal(ValID::createLocalID(CurFun.NextValNum));
>     CHECK_FOR_ERROR
> @@ -5943,7 +5943,7 @@
>     break;
>
>   case 289:
> -#line 2696 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2696 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {             // Labelled (named) basic block
>     (yyval.BasicBlockVal) =  
> defineBBVal(ValID::createLocalName(*(yyvsp[(1) - (1)].StrVal)));
>     delete (yyvsp[(1) - (1)].StrVal);
> @@ -5953,7 +5953,7 @@
>     break;
>
>   case 290:
> -#line 2704 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2704 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { // Return with a result...
>     ValueList &VL = *(yyvsp[(2) - (2)].ValueList);
>     assert(!VL.empty() && "Invalid ret operands!");
> @@ -5977,7 +5977,7 @@
>     break;
>
>   case 291:
> -#line 2724 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2724 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                                    // Return with no result...
>     (yyval.TermInstVal) = ReturnInst::Create();
>     CHECK_FOR_ERROR
> @@ -5985,7 +5985,7 @@
>     break;
>
>   case 292:
> -#line 2728 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2728 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {                           // Unconditional Branch...
>     BasicBlock* tmpBB = getBBVal((yyvsp[(3) - (3)].ValIDVal));
>     CHECK_FOR_ERROR
> @@ -5994,7 +5994,7 @@
>     break;
>
>   case 293:
> -#line 2733 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2733 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (cast<IntegerType>((yyvsp[(2) - (9)].PrimType))- 
> >getBitWidth() != 1)
>       GEN_ERROR("Branch condition must have type i1");
> @@ -6009,7 +6009,7 @@
>     break;
>
>   case 294:
> -#line 2744 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2744 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     Value* tmpVal = getVal((yyvsp[(2) - (9)].PrimType), (yyvsp[(3) -  
> (9)].ValIDVal));
>     CHECK_FOR_ERROR
> @@ -6032,7 +6032,7 @@
>     break;
>
>   case 295:
> -#line 2763 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2763 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     Value* tmpVal = getVal((yyvsp[(2) - (8)].PrimType), (yyvsp[(3) -  
> (8)].ValIDVal));
>     CHECK_FOR_ERROR
> @@ -6045,7 +6045,7 @@
>     break;
>
>   case 296:
> -#line 2773 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2773 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>
>     // Handle the short syntax
> @@ -6134,7 +6134,7 @@
>     break;
>
>   case 297:
> -#line 2858 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2858 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TermInstVal) = new UnwindInst();
>     CHECK_FOR_ERROR
> @@ -6142,7 +6142,7 @@
>     break;
>
>   case 298:
> -#line 2862 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2862 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.TermInstVal) = new UnreachableInst();
>     CHECK_FOR_ERROR
> @@ -6150,7 +6150,7 @@
>     break;
>
>   case 299:
> -#line 2869 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2869 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.JumpTable) = (yyvsp[(1) - (6)].JumpTable);
>     Constant *V = cast<Constant>(getExistingVal((yyvsp[(2) -  
> (6)].PrimType), (yyvsp[(3) - (6)].ValIDVal)));
> @@ -6165,7 +6165,7 @@
>     break;
>
>   case 300:
> -#line 2880 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2880 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.JumpTable) = new std::vector<std::pair<Constant*,  
> BasicBlock*> >();
>     Constant *V = cast<Constant>(getExistingVal((yyvsp[(1) -  
> (5)].PrimType), (yyvsp[(2) - (5)].ValIDVal)));
> @@ -6181,7 +6181,7 @@
>     break;
>
>   case 301:
> -#line 2893 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2893 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // Is this definition named?? if so, assign the name...
>     setValueName((yyvsp[(2) - (2)].InstVal), (yyvsp[(1) -  
> (2)].StrVal));
> @@ -6193,7 +6193,7 @@
>     break;
>
>   case 302:
> -#line 2903 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2903 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {    // Used for PHI nodes
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -  
> (6)].TypeVal))->getDescription());
> @@ -6208,7 +6208,7 @@
>     break;
>
>   case 303:
> -#line 2914 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2914 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.PHIList) = (yyvsp[(1) - (7)].PHIList);
>     Value* tmpVal = getVal((yyvsp[(1) - (7)].PHIList)->front().first- 
> >getType(), (yyvsp[(4) - (7)].ValIDVal));
> @@ -6220,7 +6220,7 @@
>     break;
>
>   case 304:
> -#line 2924 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2924 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a  
> mistake in 2.0
>     if (!UpRefs.empty())
> @@ -6235,7 +6235,7 @@
>     break;
>
>   case 305:
> -#line 2935 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2935 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a  
> mistake in 2.0
>     // Labels are only valid in ASMs
> @@ -6247,7 +6247,7 @@
>     break;
>
>   case 306:
> -#line 2943 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2943 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a  
> mistake in 2.0
>     if (!UpRefs.empty())
> @@ -6261,7 +6261,7 @@
>     break;
>
>   case 307:
> -#line 2953 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2953 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a  
> mistake in 2.0
>     (yyval.ParamList) = (yyvsp[(1) - (6)].ParamList);
> @@ -6272,17 +6272,17 @@
>     break;
>
>   case 308:
> -#line 2960 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2960 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ParamList) = new ParamList(); ;}
>     break;
>
>   case 309:
> -#line 2963 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2963 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     { (yyval.ValueList) = new std::vector<Value*>(); ;}
>     break;
>
>   case 310:
> -#line 2964 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2964 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ValueList) = (yyvsp[(1) - (3)].ValueList);
>     (yyval.ValueList)->push_back((yyvsp[(3) - (3)].ValueVal));
> @@ -6291,7 +6291,7 @@
>     break;
>
>   case 311:
> -#line 2972 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2972 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ConstantList) = new std::vector<unsigned>();
>     if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) -  
> (2)].UInt64Val))
> @@ -6301,7 +6301,7 @@
>     break;
>
>   case 312:
> -#line 2978 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2978 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.ConstantList) = (yyvsp[(1) - (3)].ConstantList);
>     if ((unsigned)(yyvsp[(3) - (3)].UInt64Val) != (yyvsp[(3) -  
> (3)].UInt64Val))
> @@ -6312,7 +6312,7 @@
>     break;
>
>   case 313:
> -#line 2987 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2987 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.BoolVal) = true;
>     CHECK_FOR_ERROR
> @@ -6320,7 +6320,7 @@
>     break;
>
>   case 314:
> -#line 2991 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2991 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.BoolVal) = false;
>     CHECK_FOR_ERROR
> @@ -6328,7 +6328,7 @@
>     break;
>
>   case 315:
> -#line 2996 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2996 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (5)].TypeVal))->getDescription());
> @@ -6348,12 +6348,12 @@
>     break;
>
>   case 316:
> -#line 3012 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3012 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (5)].TypeVal))->getDescription());
>     if (!(*(yyvsp[(2) - (5)].TypeVal))->isInteger()) {
> -      if (Instruction::isShift((yyvsp[(1) - (5)].BinaryOpVal)) || ! 
> isa<VectorType>((yyvsp[(2) - (5)].TypeVal)->get()) ||
> +      if (!isa<VectorType>((yyvsp[(2) - (5)].TypeVal)->get()) ||
>           !cast<VectorType>((yyvsp[(2) - (5)].TypeVal)->get())- 
> >getElementType()->isInteger())
>         GEN_ERROR("Logical operator requires integral operands");
>     }
> @@ -6369,7 +6369,7 @@
>     break;
>
>   case 317:
> -#line 3029 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3029 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -  
> (6)].TypeVal))->getDescription());
> @@ -6387,7 +6387,7 @@
>     break;
>
>   case 318:
> -#line 3043 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3043 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -  
> (6)].TypeVal))->getDescription());
> @@ -6405,7 +6405,7 @@
>     break;
>
>   case 319:
> -#line 3057 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3057 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -  
> (6)].TypeVal))->getDescription());
> @@ -6423,7 +6423,7 @@
>     break;
>
>   case 320:
> -#line 3071 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3071 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -  
> (6)].TypeVal))->getDescription());
> @@ -6441,7 +6441,7 @@
>     break;
>
>   case 321:
> -#line 3085 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3085 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) -  
> (4)].TypeVal))->getDescription());
> @@ -6457,7 +6457,7 @@
>     break;
>
>   case 322:
> -#line 3097 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3097 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if ((yyvsp[(2) - (6)].ValueVal)->getType() != Type::Int1Ty)
>       GEN_ERROR("select condition must be boolean");
> @@ -6469,7 +6469,7 @@
>     break;
>
>   case 323:
> -#line 3105 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3105 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) -  
> (4)].TypeVal))->getDescription());
> @@ -6480,7 +6480,7 @@
>     break;
>
>   case 324:
> -#line 3112 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3112 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!ExtractElementInst::isValidOperands((yyvsp[(2) -  
> (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)))
>       GEN_ERROR("Invalid extractelement operands");
> @@ -6490,7 +6490,7 @@
>     break;
>
>   case 325:
> -#line 3118 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3118 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!InsertElementInst::isValidOperands((yyvsp[(2) -  
> (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) -  
> (6)].ValueVal)))
>       GEN_ERROR("Invalid insertelement operands");
> @@ -6500,7 +6500,7 @@
>     break;
>
>   case 326:
> -#line 3124 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3124 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!ShuffleVectorInst::isValidOperands((yyvsp[(2) -  
> (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) -  
> (6)].ValueVal)))
>       GEN_ERROR("Invalid shufflevector operands");
> @@ -6510,7 +6510,7 @@
>     break;
>
>   case 327:
> -#line 3130 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3130 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     const Type *Ty = (yyvsp[(2) - (2)].PHIList)->front().first- 
> >getType();
>     if (!Ty->isFirstClassType())
> @@ -6529,7 +6529,7 @@
>     break;
>
>   case 328:
> -#line 3146 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3146 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>
>     // Handle the short syntax
> @@ -6622,7 +6622,7 @@
>     break;
>
>   case 329:
> -#line 3235 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3235 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.InstVal) = (yyvsp[(1) - (1)].InstVal);
>     CHECK_FOR_ERROR
> @@ -6630,7 +6630,7 @@
>     break;
>
>   case 330:
> -#line 3240 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3240 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.BoolVal) = true;
>     CHECK_FOR_ERROR
> @@ -6638,7 +6638,7 @@
>     break;
>
>   case 331:
> -#line 3244 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3244 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     (yyval.BoolVal) = false;
>     CHECK_FOR_ERROR
> @@ -6646,7 +6646,7 @@
>     break;
>
>   case 332:
> -#line 3251 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3251 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (3)].TypeVal))->getDescription());
> @@ -6657,7 +6657,7 @@
>     break;
>
>   case 333:
> -#line 3258 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3258 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (6)].TypeVal))->getDescription());
> @@ -6671,7 +6671,7 @@
>     break;
>
>   case 334:
> -#line 3268 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3268 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (3)].TypeVal))->getDescription());
> @@ -6682,7 +6682,7 @@
>     break;
>
>   case 335:
> -#line 3275 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3275 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (6)].TypeVal))->getDescription());
> @@ -6696,7 +6696,7 @@
>     break;
>
>   case 336:
> -#line 3285 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3285 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!isa<PointerType>((yyvsp[(2) - (2)].ValueVal)->getType()))
>       GEN_ERROR("Trying to free nonpointer type " +
> @@ -6707,7 +6707,7 @@
>     break;
>
>   case 337:
> -#line 3293 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3293 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -  
> (5)].TypeVal))->getDescription());
> @@ -6725,7 +6725,7 @@
>     break;
>
>   case 338:
> -#line 3307 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3307 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) -  
> (7)].TypeVal))->getDescription());
> @@ -6746,7 +6746,7 @@
>     break;
>
>   case 339:
> -#line 3324 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3324 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (5)].TypeVal))->getDescription());
> @@ -6764,7 +6764,7 @@
>     break;
>
>   case 340:
> -#line 3338 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3338 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (4)].TypeVal))->getDescription());
> @@ -6783,7 +6783,7 @@
>     break;
>
>   case 341:
> -#line 3353 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3353 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (4)].TypeVal))->getDescription());
> @@ -6802,7 +6802,7 @@
>     break;
>
>   case 342:
> -#line 3368 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3368 "/llvm/lib/AsmParser/llvmAsmParser.y"
>     {
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -  
> (7)].TypeVal))->getDescription());
> @@ -7038,7 +7038,7 @@
> }
>
>
> -#line 3387 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3387 "/llvm/lib/AsmParser/llvmAsmParser.y"
>
>
> // common code from the two 'RunVMAsmParser' functions
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs Tue Jul 29 10:49:41  
> 2008
> @@ -354,7 +354,7 @@
>
> #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
> typedef union YYSTYPE
> -#line 967 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 967 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
>   llvm::Module                           *ModuleVal;
>   llvm::Function                         *FunctionVal;
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.y
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.y?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.y (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.y Tue Jul 29 10:49:41 2008
> @@ -1945,7 +1945,7 @@
>     if ($3->getType() != $5->getType())
>       GEN_ERROR("Logical operator types must match");
>     if (!$3->getType()->isInteger()) {
> -      if (Instruction::isShift($1) || !isa<VectorType>($3- 
> >getType()) ||
> +      if (!isa<VectorType>($3->getType()) ||
>           !cast<VectorType>($3->getType())->getElementType()- 
> >isInteger())
>         GEN_ERROR("Logical operator requires integral operands");
>     }
> @@ -3013,7 +3013,7 @@
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*$2)- 
> >getDescription());
>     if (!(*$2)->isInteger()) {
> -      if (Instruction::isShift($1) || !isa<VectorType>($2->get()) ||
> +      if (!isa<VectorType>($2->get()) ||
>           !cast<VectorType>($2->get())->getElementType()->isInteger())
>         GEN_ERROR("Logical operator requires integral operands");
>     }
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs Tue Jul 29 10:49:41  
> 2008
> @@ -1945,7 +1945,7 @@
>     if ($3->getType() != $5->getType())
>       GEN_ERROR("Logical operator types must match");
>     if (!$3->getType()->isInteger()) {
> -      if (Instruction::isShift($1) || !isa<VectorType>($3- 
> >getType()) ||
> +      if (!isa<VectorType>($3->getType()) ||
>           !cast<VectorType>($3->getType())->getElementType()- 
> >isInteger())
>         GEN_ERROR("Logical operator requires integral operands");
>     }
> @@ -3013,7 +3013,7 @@
>     if (!UpRefs.empty())
>       GEN_ERROR("Invalid upreference in type: " + (*$2)- 
> >getDescription());
>     if (!(*$2)->isInteger()) {
> -      if (Instruction::isShift($1) || !isa<VectorType>($2->get()) ||
> +      if (!isa<VectorType>($2->get()) ||
>           !cast<VectorType>($2->get())->getElementType()->isInteger())
>         GEN_ERROR("Logical operator requires integral operands");
>     }
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Tue Jul 29  
> 10:49:41 2008
> @@ -2958,7 +2958,17 @@
>       Tmp2 = PromoteOp(Node->getOperand(1));  // Promote the RHS.
>       break;
>     }
> -
> +
> +    if ((Node->getOpcode() == ISD::SHL ||
> +         Node->getOpcode() == ISD::SRL ||
> +         Node->getOpcode() == ISD::SRA) &&
> +        !Node->getValueType(0).isVector()) {
> +      if (TLI.getShiftAmountTy().bitsLT(Tmp2.getValueType()))
> +        Tmp2 = DAG.getNode(ISD::TRUNCATE, TLI.getShiftAmountTy(),  
> Tmp2);
> +      else if (TLI.getShiftAmountTy().bitsGT(Tmp2.getValueType()))
> +        Tmp2 = DAG.getNode(ISD::ANY_EXTEND, TLI.getShiftAmountTy(),  
> Tmp2);
> +    }
> +
>     Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp2);
>
>     switch (TLI.getOperationAction(Node->getOpcode(), Node- 
> >getValueType(0))) {
> @@ -2966,8 +2976,11 @@
>     case TargetLowering::Legal: break;
>     case TargetLowering::Custom:
>       Tmp1 = TLI.LowerOperation(Result, DAG);
> -      if (Tmp1.Val) Result = Tmp1;
> -      break;
> +      if (Tmp1.Val) {
> +        Result = Tmp1;
> +        break;
> +      }
> +      // Fall through if the custom lower can't deal with the  
> operation
>     case TargetLowering::Expand: {
>       MVT VT = Op.getValueType();
>
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp  
> (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Tue Jul  
> 29 10:49:41 2008
> @@ -2407,11 +2407,12 @@
> void SelectionDAGLowering::visitShift(User &I, unsigned Opcode) {
>   SDValue Op1 = getValue(I.getOperand(0));
>   SDValue Op2 = getValue(I.getOperand(1));
> -
> -  if (TLI.getShiftAmountTy().bitsLT(Op2.getValueType()))
> -    Op2 = DAG.getNode(ISD::TRUNCATE, TLI.getShiftAmountTy(), Op2);
> -  else if (TLI.getShiftAmountTy().bitsGT(Op2.getValueType()))
> -    Op2 = DAG.getNode(ISD::ANY_EXTEND, TLI.getShiftAmountTy(), Op2);
> +  if (!isa<VectorType>(I.getType())) {
> +    if (TLI.getShiftAmountTy().bitsLT(Op2.getValueType()))
> +      Op2 = DAG.getNode(ISD::TRUNCATE, TLI.getShiftAmountTy(), Op2);
> +    else if (TLI.getShiftAmountTy().bitsGT(Op2.getValueType()))
> +      Op2 = DAG.getNode(ISD::ANY_EXTEND, TLI.getShiftAmountTy(),  
> Op2);
> +  }
>
>   setValue(&I, DAG.getNode(Opcode, Op1.getValueType(), Op1, Op2));
> }
>
> Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp  
> (original)
> +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Tue  
> Jul 29 10:49:41 2008
> @@ -6368,7 +6368,8 @@
>       return ReplaceInstUsesWith(I, CSI);
>
>   // See if we can turn a signed shr into an unsigned shr.
> -  if (MaskedValueIsZero(Op0,
> +  if (!isa<VectorType>(I.getType()) &&
> +      MaskedValueIsZero(Op0,
>                       APInt::getSignBit(I.getType()- 
> >getPrimitiveSizeInBits())))
>     return BinaryOperator::CreateLShr(Op0, I.getOperand(1));
>
>
> Modified: llvm/trunk/lib/VMCore/Instructions.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instructions.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/Instructions.cpp (original)
> +++ llvm/trunk/lib/VMCore/Instructions.cpp Tue Jul 29 10:49:41 2008
> @@ -874,6 +874,7 @@
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> void StoreInst::AssertOK() {
> +  assert(getOperand(0) && getOperand(1) && "Both operands must be  
> non-null!");
>   assert(isa<PointerType>(getOperand(1)->getType()) &&
>          "Ptr must have pointer type!");
>   assert(getOperand(0)->getType() ==
> @@ -1535,8 +1536,10 @@
>   case AShr:
>     assert(getType() == LHS->getType() &&
>            "Shift operation should return same type as operands!");
> -    assert(getType()->isInteger() &&
> -           "Shift operation requires integer operands");
> +    assert((getType()->isInteger() ||
> +            (isa<VectorType>(getType()) &&
> +             cast<VectorType>(getType())->getElementType()- 
> >isInteger())) &&
> +           "Tried to create a shift operation on a non-integral  
> type!");
>     break;
>   case And: case Or:
>   case Xor:
>
> Modified: llvm/trunk/lib/VMCore/Verifier.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/Verifier.cpp (original)
> +++ llvm/trunk/lib/VMCore/Verifier.cpp Tue Jul 29 10:49:41 2008
> @@ -973,8 +973,10 @@
>   case Instruction::Shl:
>   case Instruction::LShr:
>   case Instruction::AShr:
> -    Assert1(B.getType()->isInteger(),
> -            "Shift must return an integer result!", &B);
> +    Assert1(B.getType()->isInteger() ||
> +            (isa<VectorType>(B.getType()) &&
> +             cast<VectorType>(B.getType())->getElementType()- 
> >isInteger()),
> +            "Shifts only work with integral types!", &B);
>     Assert1(B.getType() == B.getOperand(0)->getType(),
>             "Shift return type must be same as operands!", &B);
>     /* FALL THROUGH */
> @@ -1041,9 +1043,13 @@
>   // Check to see if Mask is valid.
>   if (const ConstantVector *MV =  
> dyn_cast<ConstantVector>(SV.getOperand(2))) {
>     for (unsigned i = 0, e = MV->getNumOperands(); i != e; ++i) {
> -      Assert1(isa<ConstantInt>(MV->getOperand(i)) ||
> -              isa<UndefValue>(MV->getOperand(i)),
> -              "Invalid shufflevector shuffle mask!", &SV);
> +      if (ConstantInt* CI = dyn_cast<ConstantInt>(MV- 
> >getOperand(i))) {
> +        Assert1(!CI->uge(MV->getNumOperands()*2),
> +                "Invalid shufflevector shuffle mask!", &SV);
> +      } else {
> +        Assert1(isa<UndefValue>(MV->getOperand(i)),
> +                "Invalid shufflevector shuffle mask!", &SV);
> +      }
>     }
>   } else {
>     Assert1(isa<UndefValue>(SV.getOperand(2)) ||
>
> Added: llvm/trunk/test/Assembler/vector-shift.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Assembler/vector-shift.ll?rev=54161&view=auto
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/test/Assembler/vector-shift.ll (added)
> +++ llvm/trunk/test/Assembler/vector-shift.ll Tue Jul 29 10:49:41 2008
> @@ -0,0 +1,21 @@
> +; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep shl
> +; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep ashr
> +; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep lshr
> +
> +define <4 x i32> @foo(<4 x i32> %a, <4 x i32> %b) nounwind  {
> +entry:
> +	%cmp = shl <4 x i32> %a, %b		; <4 x i32> [#uses=1]
> +	ret <4 x i32> %cmp
> +}
> +
> +define <4 x i32> @bar(<4 x i32> %a, <4 x i32> %b) nounwind  {
> +entry:
> +	%cmp = lshr <4 x i32> %a, %b		; <4 x i32> [#uses=1]
> +	ret <4 x i32> %cmp
> +}
> +
> +define <4 x i32> @baz(<4 x i32> %a, <4 x i32> %b) nounwind  {
> +entry:
> +	%cmp = ashr <4 x i32> %a, %b		; <4 x i32> [#uses=1]
> +	ret <4 x i32> %cmp
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list