[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp Verifier.cpp
Changes in directory llvm/lib/VMCore: Function.cpp updated: 1.102 -> 1.103 Verifier.cpp updated: 1.148 -> 1.149 --- Log message: remove dbg_declare, it's not used yet. --- Diffs of the changes: (+0 -2) Function.cpp |1 - Verifier.cpp |1 - 2 files changed, 2 deletions(-) Index: llvm/lib/VMCore/Function.cpp diff -u llvm/lib/VMCore/Function.cpp:1.102 llvm/lib/VMCore/Function.cpp:1.103 --- llvm/lib/VMCore/Function.cpp:1.102 Thu Mar 2 18:19:44 2006 +++ llvm/lib/VMCore/Function.cppThu Mar 9 14:01:50 2006 @@ -232,7 +232,6 @@ if (Name == "llvm.dbg.region.start")return Intrinsic::dbg_region_start; if (Name == "llvm.dbg.region.end") return Intrinsic::dbg_region_end; if (Name == "llvm.dbg.func.start") return Intrinsic::dbg_func_start; -if (Name == "llvm.dbg.declare") return Intrinsic::dbg_declare; break; case 'f': if (Name == "llvm.frameaddress") return Intrinsic::frameaddress; Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.148 llvm/lib/VMCore/Verifier.cpp:1.149 --- llvm/lib/VMCore/Verifier.cpp:1.148 Thu Mar 2 18:19:44 2006 +++ llvm/lib/VMCore/Verifier.cppThu Mar 9 14:01:50 2006 @@ -909,7 +909,6 @@ case Intrinsic::dbg_region_start:NumArgs = 1; break; case Intrinsic::dbg_region_end: NumArgs = 1; break; case Intrinsic::dbg_func_start: NumArgs = 1; break; - case Intrinsic::dbg_declare: NumArgs = 1; break; case Intrinsic::memcpy_i32: NumArgs = 4; break; case Intrinsic::memcpy_i64: NumArgs = 4; break; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp Verifier.cpp
Changes in directory llvm/lib/VMCore: Function.cpp updated: 1.101 -> 1.102 Verifier.cpp updated: 1.147 -> 1.148 --- Log message: remove the read/write port/io intrinsics. --- Diffs of the changes: (+0 -51) Function.cpp |6 -- Verifier.cpp | 45 - 2 files changed, 51 deletions(-) Index: llvm/lib/VMCore/Function.cpp diff -u llvm/lib/VMCore/Function.cpp:1.101 llvm/lib/VMCore/Function.cpp:1.102 --- llvm/lib/VMCore/Function.cpp:1.101 Thu Mar 2 17:58:40 2006 +++ llvm/lib/VMCore/Function.cppThu Mar 2 18:19:44 2006 @@ -265,8 +265,6 @@ break; case 'r': if (Name == "llvm.returnaddress")return Intrinsic::returnaddress; -if (Name == "llvm.readport") return Intrinsic::readport; -if (Name == "llvm.readio") return Intrinsic::readio; if (Name == "llvm.readcyclecounter") return Intrinsic::readcyclecounter; break; case 's': @@ -283,10 +281,6 @@ if (Name == "llvm.va_end") return Intrinsic::vaend; if (Name == "llvm.va_start") return Intrinsic::vastart; break; - case 'w': -if (Name == "llvm.writeport") return Intrinsic::writeport; -if (Name == "llvm.writeio") return Intrinsic::writeio; -break; } // The "llvm." namespace is reserved! assert(!"Unknown LLVM intrinsic function!"); Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.147 llvm/lib/VMCore/Verifier.cpp:1.148 --- llvm/lib/VMCore/Verifier.cpp:1.147 Thu Mar 2 17:58:40 2006 +++ llvm/lib/VMCore/Verifier.cppThu Mar 2 18:19:44 2006 @@ -702,51 +702,6 @@ NumArgs = 1; break; - // Verify that read and write port have integral parameters of the correct - // signed-ness. - case Intrinsic::writeport: -Assert1(FT->getNumParams() == 2, -"Illegal # arguments for intrinsic function!", IF); -Assert1(FT->getParamType(0)->isIntegral(), -"First argument not unsigned int!", IF); -Assert1(FT->getParamType(1)->isUnsigned(), -"First argument not unsigned int!", IF); -NumArgs = 2; -break; - - case Intrinsic::writeio: -Assert1(FT->getNumParams() == 2, -"Illegal # arguments for intrinsic function!", IF); -Assert1(FT->getParamType(0)->isFirstClassType(), -"First argument not a first class type!", IF); -Assert1(isa(FT->getParamType(1)), -"Second argument not a pointer!", IF); -NumArgs = 2; -break; - - case Intrinsic::readport: -Assert1(FT->getNumParams() == 1, -"Illegal # arguments for intrinsic function!", IF); -Assert1(FT->getReturnType()->isFirstClassType(), -"Return type is not a first class type!", IF); -Assert1(FT->getParamType(0)->isUnsigned(), -"First argument not unsigned int!", IF); -NumArgs = 1; -break; - - case Intrinsic::readio: { -const PointerType *ParamType = dyn_cast(FT->getParamType(0)); -const Type *ReturnType = FT->getReturnType(); - -Assert1(FT->getNumParams() == 1, -"Illegal # arguments for intrinsic function!", IF); -Assert1(ParamType, "First argument not a pointer!", IF); -Assert1(ParamType->getElementType() == ReturnType, -"Pointer type doesn't match return type!", IF); -NumArgs = 1; -break; - } - case Intrinsic::isunordered_f32: Assert1(FT->getNumParams() == 2, "Illegal # arguments for intrinsic function!", IF); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp Verifier.cpp
Changes in directory llvm/lib/VMCore: Function.cpp updated: 1.99 -> 1.100 Verifier.cpp updated: 1.142 -> 1.143 --- Log message: For PR411: http://llvm.cs.uiuc.edu/PR411 : This patch is an incremental step towards supporting a flat symbol table. It de-overloads the intrinsic functions by providing type-specific intrinsics and arranging for automatically upgrading from the old overloaded name to the new non-overloaded name. Specifically: llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64 llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64 llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64 llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64 llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64 New code should not use the overloaded intrinsic names. Warnings will be emitted if they are used. --- Diffs of the changes: (+205 -54) Function.cpp | 98 --- Verifier.cpp | 161 ++- 2 files changed, 205 insertions(+), 54 deletions(-) Index: llvm/lib/VMCore/Function.cpp diff -u llvm/lib/VMCore/Function.cpp:1.99 llvm/lib/VMCore/Function.cpp:1.100 --- llvm/lib/VMCore/Function.cpp:1.99 Sun Jan 15 02:40:16 2006 +++ llvm/lib/VMCore/Function.cppMon Jan 16 15:12:35 2006 @@ -200,79 +200,93 @@ /// llvm/Intrinsics.h. /// unsigned Function::getIntrinsicID() const { - if (getName().size() < 5 || getName()[4] != '.' || getName()[0] != 'l' || - getName()[1] != 'l' || getName()[2] != 'v' || getName()[3] != 'm') + const std::string& Name = this->getName(); + if (Name.size() < 5 || Name[4] != '.' || Name[0] != 'l' || Name[1] != 'l' + || Name[2] != 'v' || Name[3] != 'm') return 0; // All intrinsics start with 'llvm.' - assert(getName().size() != 5 && "'llvm.' is an invalid intrinsic name!"); + assert(Name.size() != 5 && "'llvm.' is an invalid intrinsic name!"); - switch (getName()[5]) { + switch (Name[5]) { case 'b': -if (getName() == "llvm.bswap.i16") return Intrinsic::bswap_i16; -if (getName() == "llvm.bswap.i32") return Intrinsic::bswap_i32; -if (getName() == "llvm.bswap.i64") return Intrinsic::bswap_i64; +if (Name == "llvm.bswap.i16") return Intrinsic::bswap_i16; +if (Name == "llvm.bswap.i32") return Intrinsic::bswap_i32; +if (Name == "llvm.bswap.i64") return Intrinsic::bswap_i64; break; case 'c': -if (getName() == "llvm.ctpop") return Intrinsic::ctpop; -if (getName() == "llvm.cttz") return Intrinsic::cttz; -if (getName() == "llvm.ctlz") return Intrinsic::ctlz; +if (Name == "llvm.ctpop.i8") return Intrinsic::ctpop_i8; +if (Name == "llvm.ctpop.i16") return Intrinsic::ctpop_i16; +if (Name == "llvm.ctpop.i32") return Intrinsic::ctpop_i32; +if (Name == "llvm.ctpop.i64") return Intrinsic::ctpop_i64; +if (Name == "llvm.cttz.i8") return Intrinsic::cttz_i8; +if (Name == "llvm.cttz.i16") return Intrinsic::cttz_i16; +if (Name == "llvm.cttz.i32") return Intrinsic::cttz_i32; +if (Name == "llvm.cttz.i64") return Intrinsic::cttz_i64; +if (Name == "llvm.ctlz.i8") return Intrinsic::ctlz_i8; +if (Name == "llvm.ctlz.i16") return Intrinsic::ctlz_i16; +if (Name == "llvm.ctlz.i32") return Intrinsic::ctlz_i32; +if (Name == "llvm.ctlz.i64") return Intrinsic::ctlz_i64; break; case 'd': -if (getName() == "llvm.dbg.stoppoint") return Intrinsic::dbg_stoppoint; -if (getName() == "llvm.dbg.region.start")return Intrinsic::dbg_region_start; -if (getName() == "llvm.dbg.region.end") return Intrinsic::dbg_region_end; -if (getName() == "llvm.dbg.func.start") return Intrinsic::dbg_func_start; -if (getName() == "llvm.dbg.declare") return Intrinsic::dbg_declare; +if (Name == "llvm.dbg.stoppoint") return Intrinsic::dbg_stoppoint; +if (Name == "llvm.dbg.region.start")return Intrinsic::dbg_region_start; +if (Name == "llvm.dbg.region.end") return Intrinsic::dbg_region_end; +if (Name == "llvm.dbg.func.start") return Intrinsic::dbg_func_start; +if (Name == "llvm.dbg.declare") return Intrinsic::dbg_declare; break; case 'f': -if (getName() == "llvm.frameaddress") return Intrinsic::frameaddress; +if (Name == "llvm.frameaddress") return Intrinsic::frameaddress; break; case 'g': -if (getName() == "llvm.gcwrite") return Intrinsic::gcwrite; -if (getName() == "llvm.gcread") return Intrinsic::gcread; -if (getName() == "llvm.gcroot") return Intrinsic::gcroot; +if (Name == "llvm.gcwrite") return Intrinsic::gcwrite; +if (Name == "llvm.gcread") return Intrinsic::gcread; +if (Name == "llvm.gcroot") return Intrinsic::gcroot; break; case 'i': -if (getName() == "llvm.isunordered") return Intrinsic::isunordered; +if (Name == "llvm.isunordered.f32") + return Intrinsic::isunordered_f32; +if (Name == "llvm.isunordered.f64") + return Intrinsic::
[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp Verifier.cpp
Changes in directory llvm/lib/VMCore: Function.cpp updated: 1.97 -> 1.98 Verifier.cpp updated: 1.139 -> 1.140 --- Log message: Add bswap intrinsics as documented in the Language Reference --- Diffs of the changes: (+35 -0) Function.cpp |5 + Verifier.cpp | 30 ++ 2 files changed, 35 insertions(+) Index: llvm/lib/VMCore/Function.cpp diff -u llvm/lib/VMCore/Function.cpp:1.97 llvm/lib/VMCore/Function.cpp:1.98 --- llvm/lib/VMCore/Function.cpp:1.97 Thu Jan 12 20:15:39 2006 +++ llvm/lib/VMCore/Function.cppFri Jan 13 19:25:24 2006 @@ -207,6 +207,11 @@ assert(getName().size() != 5 && "'llvm.' is an invalid intrinsic name!"); switch (getName()[5]) { + case 'b': +if (getName() == "llvm.bswap.i16") return Intrinsic::bswap_i16; +if (getName() == "llvm.bswap.i32") return Intrinsic::bswap_i32; +if (getName() == "llvm.bswap.i64") return Intrinsic::bswap_i64; +break; case 'c': if (getName() == "llvm.ctpop") return Intrinsic::ctpop; if (getName() == "llvm.cttz") return Intrinsic::cttz; Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.139 llvm/lib/VMCore/Verifier.cpp:1.140 --- llvm/lib/VMCore/Verifier.cpp:1.139 Thu Jan 12 20:15:39 2006 +++ llvm/lib/VMCore/Verifier.cppFri Jan 13 19:25:24 2006 @@ -749,6 +749,36 @@ NumArgs = 0; break; + case Intrinsic::bswap_i16: +Assert1(FT->getNumParams() == 1, +"Illegal # arguments for intrinsic function!", IF); +Assert1(FT->getReturnType() == FT->getParamType(0), +"Return type does not match source type", IF); +Assert1(FT->getReturnType() == Type::UShortTy, +"Return type is not ushort!", IF); +NumArgs = 1; +break; + + case Intrinsic::bswap_i32: +Assert1(FT->getNumParams() == 1, +"Illegal # arguments for intrinsic function!", IF); +Assert1(FT->getReturnType() == FT->getParamType(0), +"Return type does not match source type", IF); +Assert1(FT->getReturnType() == Type::UIntTy, +"Return type is not uint!", IF); +NumArgs = 1; +break; + + case Intrinsic::bswap_i64: +Assert1(FT->getNumParams() == 1, +"Illegal # arguments for intrinsic function!", IF); +Assert1(FT->getReturnType() == FT->getParamType(0), +"Return type does not match source type", IF); +Assert1(FT->getReturnType() == Type::ULongTy, +"Return type is not ulong!", IF); +NumArgs = 1; +break; + case Intrinsic::ctpop: case Intrinsic::ctlz: case Intrinsic::cttz: ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp Verifier.cpp
Changes in directory llvm/lib/VMCore: Function.cpp updated: 1.96 -> 1.97 Verifier.cpp updated: 1.138 -> 1.139 --- Log message: Add recognition and verification of new llvm.stacksave/llvm.stackrestore intrinsics --- Diffs of the changes: (+18 -4) Function.cpp | 10 ++ Verifier.cpp | 12 2 files changed, 18 insertions(+), 4 deletions(-) Index: llvm/lib/VMCore/Function.cpp diff -u llvm/lib/VMCore/Function.cpp:1.96 llvm/lib/VMCore/Function.cpp:1.97 --- llvm/lib/VMCore/Function.cpp:1.96 Fri Nov 11 10:46:18 2005 +++ llvm/lib/VMCore/Function.cppThu Jan 12 20:15:39 2006 @@ -249,10 +249,12 @@ if (getName() == "llvm.readcyclecounter") return Intrinsic::readcyclecounter; break; case 's': -if (getName() == "llvm.setjmp") return Intrinsic::setjmp; -if (getName() == "llvm.sigsetjmp") return Intrinsic::sigsetjmp; -if (getName() == "llvm.siglongjmp") return Intrinsic::siglongjmp; -if (getName() == "llvm.sqrt") return Intrinsic::sqrt; +if (getName() == "llvm.setjmp") return Intrinsic::setjmp; +if (getName() == "llvm.sigsetjmp")return Intrinsic::sigsetjmp; +if (getName() == "llvm.siglongjmp") return Intrinsic::siglongjmp; +if (getName() == "llvm.stackrestore") return Intrinsic::stackrestore; +if (getName() == "llvm.stacksave")return Intrinsic::stacksave; +if (getName() == "llvm.sqrt") return Intrinsic::sqrt; break; case 'v': if (getName() == "llvm.va_copy") return Intrinsic::vacopy; Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.138 llvm/lib/VMCore/Verifier.cpp:1.139 --- llvm/lib/VMCore/Verifier.cpp:1.138 Thu Jan 12 00:17:59 2006 +++ llvm/lib/VMCore/Verifier.cppThu Jan 12 20:15:39 2006 @@ -796,6 +796,18 @@ case Intrinsic::memmove: NumArgs = 4; break; case Intrinsic::memset: NumArgs = 4; break; + case Intrinsic::stacksave: +NumArgs = 0; +Assert1(CI.getType() == PointerType::get(Type::SByteTy), +"llvm.stacksave must return an sbyte*", &CI); +break; + case Intrinsic::stackrestore: +NumArgs = 1; +Assert1(CI.getOperand(1)->getType() == PointerType::get(Type::SByteTy), +"llvm.stackrestore must take an sbyte*", &CI); +Assert1(CI.getType() == Type::VoidTy, +"llvm.stackrestore return void", &CI); +break; case Intrinsic::prefetch:NumArgs = 3; break; case Intrinsic::pcmarker: NumArgs = 1; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp Verifier.cpp
Changes in directory llvm/lib/VMCore: Function.cpp updated: 1.95 -> 1.96 Verifier.cpp updated: 1.134 -> 1.135 --- Log message: continued readcyclecounter support --- Diffs of the changes: (+12 -3) Function.cpp |7 --- Verifier.cpp |8 2 files changed, 12 insertions(+), 3 deletions(-) Index: llvm/lib/VMCore/Function.cpp diff -u llvm/lib/VMCore/Function.cpp:1.95 llvm/lib/VMCore/Function.cpp:1.96 --- llvm/lib/VMCore/Function.cpp:1.95 Fri May 6 15:26:43 2005 +++ llvm/lib/VMCore/Function.cppFri Nov 11 10:46:18 2005 @@ -243,9 +243,10 @@ if (getName() == "llvm.pcmarker") return Intrinsic::pcmarker; break; case 'r': -if (getName() == "llvm.returnaddress") return Intrinsic::returnaddress; -if (getName() == "llvm.readport") return Intrinsic::readport; -if (getName() == "llvm.readio") return Intrinsic::readio; +if (getName() == "llvm.returnaddress")return Intrinsic::returnaddress; +if (getName() == "llvm.readport") return Intrinsic::readport; +if (getName() == "llvm.readio") return Intrinsic::readio; +if (getName() == "llvm.readcyclecounter") return Intrinsic::readcyclecounter; break; case 's': if (getName() == "llvm.setjmp") return Intrinsic::setjmp; Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.134 llvm/lib/VMCore/Verifier.cpp:1.135 --- llvm/lib/VMCore/Verifier.cpp:1.134 Sat Jun 18 13:34:52 2005 +++ llvm/lib/VMCore/Verifier.cppFri Nov 11 10:46:18 2005 @@ -726,6 +726,14 @@ NumArgs = 2; break; + case Intrinsic::readcyclecounter: +Assert1(FT->getNumParams() == 0, +"Illegal # arguments for intrinsic function!", IF); +Assert1(FT->getReturnType() == Type::ULongTy, +"Return type is not ulong!", IF); +NumArgs = 0; +break; + case Intrinsic::ctpop: case Intrinsic::ctlz: case Intrinsic::cttz: ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits