diff options
Diffstat (limited to 'lib/ExecutionEngine/Interpreter')
-rw-r--r-- | lib/ExecutionEngine/Interpreter/Execution.cpp | 85 | ||||
-rw-r--r-- | lib/ExecutionEngine/Interpreter/ExecutionAnnotations.h | 2 | ||||
-rw-r--r-- | lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp | 25 | ||||
-rw-r--r-- | lib/ExecutionEngine/Interpreter/Interpreter.h | 31 | ||||
-rw-r--r-- | lib/ExecutionEngine/Interpreter/Support.cpp | 22 | ||||
-rw-r--r-- | lib/ExecutionEngine/Interpreter/UserInput.cpp | 27 |
6 files changed, 102 insertions, 90 deletions
diff --git a/lib/ExecutionEngine/Interpreter/Execution.cpp b/lib/ExecutionEngine/Interpreter/Execution.cpp index c48ec92b3e..d92764e49a 100644 --- a/lib/ExecutionEngine/Interpreter/Execution.cpp +++ b/lib/ExecutionEngine/Interpreter/Execution.cpp @@ -19,6 +19,10 @@ #include <math.h> // For fmod #include <signal.h> #include <setjmp.h> +#include <iostream> +using std::vector; +using std::cout; +using std::cerr; cl::Flag QuietMode ("quiet" , "Do not emit any non-program output"); cl::Alias QuietModeA("q" , "Alias for -quiet", cl::NoFlags, QuietMode); @@ -35,7 +39,7 @@ CachedWriter CW; // Object to accelerate printing of LLVM static cl::Flag ProfileStructureFields("profilestructfields", "Profile Structure Field Accesses"); #include <map> -static map<const StructType *, vector<unsigned> > FieldAccessCounts; +static std::map<const StructType *, vector<unsigned> > FieldAccessCounts; #endif sigjmp_buf SignalRecoverBuffer; @@ -91,14 +95,14 @@ static GenericValue getOperandValue(Value *V, ExecutionContext &SF) { case Type::PointerTyID: if (isa<ConstantPointerNull>(CPV)) { Result.PointerVal = 0; - } else if (ConstantPointerRef *CPR =dyn_cast<ConstantPointerRef>(CPV)) { + } else if (isa<ConstantPointerRef>(CPV)) { assert(0 && "Not implemented!"); } else { assert(0 && "Unknown constant pointer type!"); } break; default: - cout << "ERROR: Constant unimp for type: " << CPV->getType() << endl; + cout << "ERROR: Constant unimp for type: " << CPV->getType() << "\n"; } return Result; } else if (GlobalValue *GV = dyn_cast<GlobalValue>(V)) { @@ -134,7 +138,7 @@ static void printOperandInfo(Value *V, ExecutionContext &SF) { cout << ( Cur >= 160? char((Cur>>4)+'A'-10) : char((Cur>>4) + '0')) << ((Cur&15) >= 10? char((Cur&15)+'A'-10) : char((Cur&15) + '0')); } - cout << endl; + cout << "\n"; } } @@ -143,7 +147,7 @@ static void printOperandInfo(Value *V, ExecutionContext &SF) { static void SetValue(Value *V, GenericValue Val, ExecutionContext &SF) { unsigned TyP = V->getType()->getUniqueID(); // TypePlane for value - //cout << "Setting value: " << &SF.Values[TyP][getOperandSlot(V)] << endl; + //cout << "Setting value: " << &SF.Values[TyP][getOperandSlot(V)] << "\n"; SF.Values[TyP][getOperandSlot(V)] = Val; } @@ -217,7 +221,7 @@ static void InitializeMemory(Constant *Init, char *Addr) { return; default: - CW << "Bad Type: " << Init->getType() << endl; + CW << "Bad Type: " << Init->getType() << "\n"; assert(0 && "Unknown constant type to initialize memory with!"); } } @@ -277,7 +281,7 @@ static GenericValue executeAddInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_BINARY_OPERATOR(+, Double); IMPLEMENT_BINARY_OPERATOR(+, Pointer); default: - cout << "Unhandled type for Add instruction: " << Ty << endl; + cout << "Unhandled type for Add instruction: " << Ty << "\n"; } return Dest; } @@ -298,7 +302,7 @@ static GenericValue executeSubInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_BINARY_OPERATOR(-, Double); IMPLEMENT_BINARY_OPERATOR(-, Pointer); default: - cout << "Unhandled type for Sub instruction: " << Ty << endl; + cout << "Unhandled type for Sub instruction: " << Ty << "\n"; } return Dest; } @@ -319,7 +323,7 @@ static GenericValue executeMulInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_BINARY_OPERATOR(*, Double); IMPLEMENT_BINARY_OPERATOR(*, Pointer); default: - cout << "Unhandled type for Mul instruction: " << Ty << endl; + cout << "Unhandled type for Mul instruction: " << Ty << "\n"; } return Dest; } @@ -340,7 +344,7 @@ static GenericValue executeDivInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_BINARY_OPERATOR(/, Double); IMPLEMENT_BINARY_OPERATOR(/, Pointer); default: - cout << "Unhandled type for Div instruction: " << Ty << endl; + cout << "Unhandled type for Div instruction: " << Ty << "\n"; } return Dest; } @@ -365,7 +369,7 @@ static GenericValue executeRemInst(GenericValue Src1, GenericValue Src2, Dest.DoubleVal = fmod(Src1.DoubleVal, Src2.DoubleVal); break; default: - cout << "Unhandled type for Rem instruction: " << Ty << endl; + cout << "Unhandled type for Rem instruction: " << Ty << "\n"; } return Dest; } @@ -384,7 +388,7 @@ static GenericValue executeAndInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_BINARY_OPERATOR(&, Long); IMPLEMENT_BINARY_OPERATOR(&, Pointer); default: - cout << "Unhandled type for And instruction: " << Ty << endl; + cout << "Unhandled type for And instruction: " << Ty << "\n"; } return Dest; } @@ -404,7 +408,7 @@ static GenericValue executeOrInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_BINARY_OPERATOR(|, Long); IMPLEMENT_BINARY_OPERATOR(|, Pointer); default: - cout << "Unhandled type for Or instruction: " << Ty << endl; + cout << "Unhandled type for Or instruction: " << Ty << "\n"; } return Dest; } @@ -424,7 +428,7 @@ static GenericValue executeXorInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_BINARY_OPERATOR(^, Long); IMPLEMENT_BINARY_OPERATOR(^, Pointer); default: - cout << "Unhandled type for Xor instruction: " << Ty << endl; + cout << "Unhandled type for Xor instruction: " << Ty << "\n"; } return Dest; } @@ -449,7 +453,7 @@ static GenericValue executeSetEQInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_SETCC(==, Double); IMPLEMENT_SETCC(==, Pointer); default: - cout << "Unhandled type for SetEQ instruction: " << Ty << endl; + cout << "Unhandled type for SetEQ instruction: " << Ty << "\n"; } return Dest; } @@ -471,7 +475,7 @@ static GenericValue executeSetNEInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_SETCC(!=, Pointer); default: - cout << "Unhandled type for SetNE instruction: " << Ty << endl; + cout << "Unhandled type for SetNE instruction: " << Ty << "\n"; } return Dest; } @@ -492,7 +496,7 @@ static GenericValue executeSetLEInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_SETCC(<=, Double); IMPLEMENT_SETCC(<=, Pointer); default: - cout << "Unhandled type for SetLE instruction: " << Ty << endl; + cout << "Unhandled type for SetLE instruction: " << Ty << "\n"; } return Dest; } @@ -513,7 +517,7 @@ static GenericValue executeSetGEInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_SETCC(>=, Double); IMPLEMENT_SETCC(>=, Pointer); default: - cout << "Unhandled type for SetGE instruction: " << Ty << endl; + cout << "Unhandled type for SetGE instruction: " << Ty << "\n"; } return Dest; } @@ -534,7 +538,7 @@ static GenericValue executeSetLTInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_SETCC(<, Double); IMPLEMENT_SETCC(<, Pointer); default: - cout << "Unhandled type for SetLT instruction: " << Ty << endl; + cout << "Unhandled type for SetLT instruction: " << Ty << "\n"; } return Dest; } @@ -555,7 +559,7 @@ static GenericValue executeSetGTInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_SETCC(>, Double); IMPLEMENT_SETCC(>, Pointer); default: - cout << "Unhandled type for SetGT instruction: " << Ty << endl; + cout << "Unhandled type for SetGT instruction: " << Ty << "\n"; } return Dest; } @@ -598,7 +602,7 @@ static void PerformExitStuff() { // Print out structure field accounting information... if (!FieldAccessCounts.empty()) { CW << "Profile Field Access Counts:\n"; - map<const StructType *, vector<unsigned> >::iterator + std::map<const StructType *, vector<unsigned> >::iterator I = FieldAccessCounts.begin(), E = FieldAccessCounts.end(); for (; I != E; ++I) { vector<unsigned> &OfC = I->second; @@ -613,9 +617,9 @@ static void PerformExitStuff() { if (i) CW << ", "; CW << OfC[i]; } - CW << endl; + CW << "\n"; } - CW << endl; + CW << "\n"; CW << "Profile Field Access Percentages:\n"; cout.precision(3); @@ -630,9 +634,9 @@ static void PerformExitStuff() { if (i) CW << ", "; CW << double(OfC[i])/Sum; } - CW << endl; + CW << "\n"; } - CW << endl; + CW << "\n"; FieldAccessCounts.clear(); } @@ -673,7 +677,7 @@ void Interpreter::executeRetInst(ReturnInst *I, ExecutionContext &SF) { CW << "Method " << M->getType() << " \"" << M->getName() << "\" returned "; print(RetTy, Result); - cout << endl; + cout << "\n"; } if (RetTy->isIntegral()) @@ -701,7 +705,7 @@ void Interpreter::executeRetInst(ReturnInst *I, ExecutionContext &SF) { CW << "Method " << M->getType() << " \"" << M->getName() << "\" returned "; print(RetTy, Result); - cout << endl; + cout << "\n"; } } @@ -930,7 +934,7 @@ static void executeShlInst(ShiftInst *I, ExecutionContext &SF) { IMPLEMENT_SHIFT(<<, ULong); IMPLEMENT_SHIFT(<<, Long); default: - cout << "Unhandled type for Shl instruction: " << Ty << endl; + cout << "Unhandled type for Shl instruction: " << Ty << "\n"; } SetValue(I, Dest, SF); } @@ -951,7 +955,7 @@ static void executeShrInst(ShiftInst *I, ExecutionContext &SF) { IMPLEMENT_SHIFT(>>, ULong); IMPLEMENT_SHIFT(>>, Long); default: - cout << "Unhandled type for Shr instruction: " << Ty << endl; + cout << "Unhandled type for Shr instruction: " << Ty << "\n"; } SetValue(I, Dest, SF); } @@ -977,7 +981,7 @@ static void executeShrInst(ShiftInst *I, ExecutionContext &SF) { IMPLEMENT_CAST(DESTTY, DESTCTY, Double) #define IMPLEMENT_CAST_CASE_END() \ - default: cout << "Unhandled cast: " << SrcTy << " to " << Ty << endl; \ + default: cout << "Unhandled cast: " << SrcTy << " to " << Ty << "\n"; \ break; \ } \ break @@ -1006,7 +1010,7 @@ static void executeCastInst(CastInst *I, ExecutionContext &SF) { IMPLEMENT_CAST_CASE(Float , (float)); IMPLEMENT_CAST_CASE(Double , (double)); default: - cout << "Unhandled dest type for cast instruction: " << Ty << endl; + cout << "Unhandled dest type for cast instruction: " << Ty << "\n"; } SetValue(I, Dest, SF); } @@ -1060,7 +1064,6 @@ void Interpreter::callMethod(Method *M, const vector<GenericValue> &ArgVals) { if (RetTy != Type::VoidTy) { if (!ECStack.empty() && ECStack.back().Caller) { ExecutionContext &SF = ECStack.back(); - CallInst *Caller = SF.Caller; SetValue(SF.Caller, Result, SF); SF.Caller = 0; // We returned from the call... @@ -1069,7 +1072,7 @@ void Interpreter::callMethod(Method *M, const vector<GenericValue> &ArgVals) { CW << "Method " << M->getType() << " \"" << M->getName() << "\" returned "; print(RetTy, Result); - cout << endl; + cout << "\n"; if (RetTy->isIntegral()) ExitCode = Result.SByteVal; // Capture the exit code of the program @@ -1290,8 +1293,8 @@ void Interpreter::printValue(const Type *Ty, GenericValue V) { case Type::UShortTyID: cout << V.UShortVal; break; case Type::IntTyID: cout << V.IntVal; break; case Type::UIntTyID: cout << V.UIntVal; break; - case Type::LongTyID: cout << V.LongVal; break; - case Type::ULongTyID: cout << V.ULongVal; break; + case Type::LongTyID: cout << (long)V.LongVal; break; + case Type::ULongTyID: cout << (unsigned long)V.ULongVal; break; case Type::FloatTyID: cout << V.FloatVal; break; case Type::DoubleTyID: cout << V.DoubleVal; break; case Type::PointerTyID:cout << (void*)V.PointerVal; break; @@ -1306,31 +1309,31 @@ void Interpreter::print(const Type *Ty, GenericValue V) { printValue(Ty, V); } -void Interpreter::print(const string &Name) { +void Interpreter::print(const std::string &Name) { Value *PickedVal = ChooseOneOption(Name, LookupMatchingNames(Name)); if (!PickedVal) return; if (const Method *M = dyn_cast<const Method>(PickedVal)) { CW << M; // Print the method } else if (const Type *Ty = dyn_cast<const Type>(PickedVal)) { - CW << "type %" << Name << " = " << Ty->getDescription() << endl; + CW << "type %" << Name << " = " << Ty->getDescription() << "\n"; } else if (const BasicBlock *BB = dyn_cast<const BasicBlock>(PickedVal)) { CW << BB; // Print the basic block } else { // Otherwise there should be an annotation for the slot# print(PickedVal->getType(), getOperandValue(PickedVal, ECStack[CurFrame])); - cout << endl; + cout << "\n"; } } -void Interpreter::infoValue(const string &Name) { +void Interpreter::infoValue(const std::string &Name) { Value *PickedVal = ChooseOneOption(Name, LookupMatchingNames(Name)); if (!PickedVal) return; cout << "Value: "; print(PickedVal->getType(), getOperandValue(PickedVal, ECStack[CurFrame])); - cout << endl; + cout << "\n"; printOperandInfo(PickedVal, ECStack[CurFrame]); } @@ -1353,7 +1356,7 @@ void Interpreter::printStackFrame(int FrameNo = -1) { printValue(Args[i]->getType(), getOperandValue(Args[i], ECStack[FrameNo])); } - cout << ")" << endl; + cout << ")\n"; CW << *(ECStack[FrameNo].CurInst-(FrameNo != int(ECStack.size()-1))); } diff --git a/lib/ExecutionEngine/Interpreter/ExecutionAnnotations.h b/lib/ExecutionEngine/Interpreter/ExecutionAnnotations.h index f6a27265f0..12717ec48e 100644 --- a/lib/ExecutionEngine/Interpreter/ExecutionAnnotations.h +++ b/lib/ExecutionEngine/Interpreter/ExecutionAnnotations.h @@ -23,7 +23,7 @@ static AnnotationID MethodInfoAID( struct MethodInfo : public Annotation { MethodInfo(Method *M); - vector<unsigned> NumPlaneElements; + std::vector<unsigned> NumPlaneElements; // Create - Factory function to allow MethodInfo annotations to be diff --git a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp index a54a6f1ced..bcff5e5795 100644 --- a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp +++ b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp @@ -13,26 +13,29 @@ #include "llvm/DerivedTypes.h" #include <map> #include <dlfcn.h> +#include <iostream> #include <link.h> #include <math.h> #include <stdio.h> +using std::vector; +using std::cout; typedef GenericValue (*ExFunc)(MethodType *, const vector<GenericValue> &); -static map<const Method *, ExFunc> Functions; -static map<string, ExFunc> FuncNames; +static std::map<const Method *, ExFunc> Functions; +static std::map<std::string, ExFunc> FuncNames; static Interpreter *TheInterpreter; // getCurrentExecutablePath() - Return the directory that the lli executable // lives in. // -string Interpreter::getCurrentExecutablePath() const { +std::string Interpreter::getCurrentExecutablePath() const { Dl_info Info; if (dladdr(&TheInterpreter, &Info) == 0) return ""; - string LinkAddr(Info.dli_fname); + std::string LinkAddr(Info.dli_fname); unsigned SlashPos = LinkAddr.rfind('/'); - if (SlashPos != string::npos) + if (SlashPos != std::string::npos) LinkAddr.resize(SlashPos); // Trim the executable name off... return LinkAddr; @@ -65,7 +68,7 @@ static char getTypeID(const Type *Ty) { static ExFunc lookupMethod(const Method *M) { // Function not found, look it up... start by figuring out what the // composite function name should be. - string ExtName = "lle_"; + std::string ExtName = "lle_"; const MethodType *MT = M->getMethodType(); for (unsigned i = 0; const Type *Ty = MT->getContainedType(i); ++i) ExtName += getTypeID(Ty); @@ -80,7 +83,7 @@ static ExFunc lookupMethod(const Method *M) { if (FnPtr == 0) // Try calling a generic function... if it exists... FnPtr = (ExFunc)dlsym(RTLD_DEFAULT, ("lle_X_"+M->getName()).c_str()); if (FnPtr != 0) - Functions.insert(make_pair(M, FnPtr)); // Cache for later + Functions.insert(std::make_pair(M, FnPtr)); // Cache for later return FnPtr; } @@ -90,11 +93,11 @@ GenericValue Interpreter::callExternalMethod(Method *M, // Do a lookup to see if the method is in our cache... this should just be a // defered annotation! - map<const Method *, ExFunc>::iterator FI = Functions.find(M); + std::map<const Method *, ExFunc>::iterator FI = Functions.find(M); ExFunc Fn = (FI == Functions.end()) ? lookupMethod(M) : FI->second; if (Fn == 0) { cout << "Tried to execute an unknown external method: " - << M->getType()->getDescription() << " " << M->getName() << endl; + << M->getType()->getDescription() << " " << M->getName() << "\n"; return GenericValue(); } @@ -177,13 +180,13 @@ GenericValue lle_Vb_putchar(MethodType *M, const vector<GenericValue> &Args) { // int "putchar"(int) GenericValue lle_ii_putchar(MethodType *M, const vector<GenericValue> &Args) { - cout << ((char)Args[0].IntVal) << flush; + cout << ((char)Args[0].IntVal) << std::flush; return Args[0]; } // void "putchar"(ubyte) GenericValue lle_VB_putchar(MethodType *M, const vector<GenericValue> &Args) { - cout << Args[0].SByteVal << flush; + cout << Args[0].SByteVal << std::flush; return Args[0]; } diff --git a/lib/ExecutionEngine/Interpreter/Interpreter.h b/lib/ExecutionEngine/Interpreter/Interpreter.h index 44b382bd9f..ffe1001597 100644 --- a/lib/ExecutionEngine/Interpreter/Interpreter.h +++ b/lib/ExecutionEngine/Interpreter/Interpreter.h @@ -41,7 +41,7 @@ union GenericValue { PointerTy PointerVal; }; -typedef vector<GenericValue> ValuePlaneTy; +typedef std::vector<GenericValue> ValuePlaneTy; // ExecutionContext struct - This struct represents one stack frame currently // executing. @@ -51,7 +51,7 @@ struct ExecutionContext { BasicBlock *CurBB; // The currently executing BB BasicBlock::iterator CurInst; // The next instruction to execute MethodInfo *MethInfo; // The MethInfo annotation for the method - vector<ValuePlaneTy> Values; // ValuePlanes for each type + std::vector<ValuePlaneTy> Values;// ValuePlanes for each type BasicBlock *PrevBB; // The previous BB or null if in first BB CallInst *Caller; // Holds the call that called subframes. @@ -69,7 +69,7 @@ class Interpreter { // The runtime stack of executing code. The top of the stack is the current // method record. - vector<ExecutionContext> ECStack; + std::vector<ExecutionContext> ECStack; public: Interpreter(); @@ -86,24 +86,24 @@ public: void handleUserInput(); // User Interation Methods... - void loadModule(const string &Filename); + void loadModule(const std::string &Filename); bool flushModule(); - bool callMethod(const string &Name); // return true on failure - void setBreakpoint(const string &Name); - void infoValue(const string &Name); - void print(const string &Name); + bool callMethod(const std::string &Name); // return true on failure + void setBreakpoint(const std::string &Name); + void infoValue(const std::string &Name); + void print(const std::string &Name); static void print(const Type *Ty, GenericValue V); static void printValue(const Type *Ty, GenericValue V); // Hack until we can parse command line args... - bool callMainMethod(const string &MainName, - const vector<string> &InputFilename); + bool callMainMethod(const std::string &MainName, + const std::vector<std::string> &InputFilename); void list(); // Do the 'list' command void printStackTrace(); // Do the 'backtrace' command // Code execution methods... - void callMethod (Method *Meth, const vector<GenericValue> &ArgVals); + void callMethod(Method *Meth, const std::vector<GenericValue> &ArgVals); bool executeInstruction(); // Execute one instruction... void stepInstruction(); // Do the 'step' command @@ -117,7 +117,7 @@ public: void executeBrInst(BranchInst *I, ExecutionContext &SF); void executeAllocInst(AllocationInst *I, ExecutionContext &SF); GenericValue callExternalMethod(Method *Meth, - const vector<GenericValue> &ArgVals); + const std::vector<GenericValue> &ArgVals); void exitCalled(GenericValue GV); // getCurrentMethod - Return the currently executing method @@ -134,7 +134,7 @@ private: // Helper functions // getCurrentExecutablePath() - Return the directory that the lli executable // lives in. // - string getCurrentExecutablePath() const; + std::string getCurrentExecutablePath() const; // printCurrentInstruction - Print out the instruction that the virtual PC is // at, or fail silently if no program is running. @@ -151,13 +151,14 @@ private: // Helper functions // matches to that name. This is obviously slow, and should only be used for // user interaction. // - vector<Value*> LookupMatchingNames(const string &Name); + std::vector<Value*> LookupMatchingNames(const std::string &Name); // ChooseOneOption - Prompt the user to choose among the specified options to // pick one value. If no options are provided, emit an error. If a single // option is provided, just return that option. // - Value *ChooseOneOption(const string &Name, const vector<Value*> &Opts); + Value *ChooseOneOption(const std::string &Name, + const std::vector<Value*> &Opts); void initializeExecutionEngine(); diff --git a/lib/ExecutionEngine/Interpreter/Support.cpp b/lib/ExecutionEngine/Interpreter/Support.cpp index a619304c62..ca89ae3333 100644 --- a/lib/ExecutionEngine/Interpreter/Support.cpp +++ b/lib/ExecutionEngine/Interpreter/Support.cpp @@ -7,13 +7,15 @@ #include "Interpreter.h" #include "llvm/SymbolTable.h" #include "llvm/Assembly/Writer.h" +#include <iostream> +using std::cout; //===----------------------------------------------------------------------===// // // LookupMatchingNames helper - Search a symbol table for values matching Name. // -static inline void LookupMatchingNames(const string &Name, SymTabValue &STV, - vector<Value*> &Results) { +static inline void LookupMatchingNames(const std::string &Name,SymTabValue &STV, + std::vector<Value*> &Results) { SymbolTable *SymTab = STV.getSymbolTable(); if (SymTab == 0) return; // No symbolic values :( @@ -34,8 +36,8 @@ static inline void LookupMatchingNames(const string &Name, SymTabValue &STV, // matches to that name. This is obviously slow, and should only be used for // user interaction. // -vector<Value*> Interpreter::LookupMatchingNames(const string &Name) { - vector<Value*> Results; +std::vector<Value*> Interpreter::LookupMatchingNames(const std::string &Name) { + std::vector<Value*> Results; Method *CurMeth = getCurrentMethod(); if (CurMeth) ::LookupMatchingNames(Name, *CurMeth, Results); @@ -47,8 +49,8 @@ vector<Value*> Interpreter::LookupMatchingNames(const string &Name) { // pick one value. If no options are provided, emit an error. If a single // option is provided, just return that option. // -Value *Interpreter::ChooseOneOption(const string &Name, - const vector<Value*> &Opts) { +Value *Interpreter::ChooseOneOption(const std::string &Name, + const std::vector<Value*> &Opts) { switch (Opts.size()) { case 1: return Opts[0]; case 0: @@ -61,16 +63,16 @@ Value *Interpreter::ChooseOneOption(const string &Name, cout << " 0. Cancel operation\n"; for (unsigned i = 0; i < Opts.size(); ++i) { cout << " " << (i+1) << "."; - WriteAsOperand(cout, Opts[i]) << endl; + WriteAsOperand(cout, Opts[i]) << "\n"; } unsigned Option; do { - cout << "lli> " << flush; - cin >> Option; + cout << "lli> " << std::flush; + std::cin >> Option; if (Option > Opts.size()) cout << "Invalid selection: Please choose from 0 to " << Opts.size() - << endl; + << "\n"; } while (Option > Opts.size()); if (Option == 0) return 0; diff --git a/lib/ExecutionEngine/Interpreter/UserInput.cpp b/lib/ExecutionEngine/Interpreter/UserInput.cpp index 179b97d277..1cd8b08c1f 100644 --- a/lib/ExecutionEngine/Interpreter/UserInput.cpp +++ b/lib/ExecutionEngine/Interpreter/UserInput.cpp @@ -10,6 +10,9 @@ #include "llvm/DerivedTypes.h" #include "llvm/Transforms/Linker.h" #include <algorithm> +using std::string; +using std::cout; +using std::cin; enum CommandID { Quit, Help, // Basics @@ -69,14 +72,14 @@ void Interpreter::handleUserInput() { bool UserQuit = false; // Sort the table... - sort(CommandTable, CommandTableEnd); + std::sort(CommandTable, CommandTableEnd); // Print the instruction that we are stopped at... printCurrentInstruction(); do { string Command; - cout << "lli> " << flush; + cout << "lli> " << std::flush; cin >> Command; CommandTableElement *E = find(CommandTable, CommandTableEnd, Command); @@ -164,11 +167,11 @@ void Interpreter::loadModule(const string &Filename) { if (Module *SupportLib = ParseBytecodeFile(RuntimeLib, &ErrorMsg)) { if (LinkModules(CurMod, SupportLib, &ErrorMsg)) - cerr << "Error Linking runtime library into current module: " - << ErrorMsg << endl; + std::cerr << "Error Linking runtime library into current module: " + << ErrorMsg << "\n"; } else { - cerr << "Error loading runtime library '"+RuntimeLib+"': " - << ErrorMsg << "\n"; + std::cerr << "Error loading runtime library '"+RuntimeLib+"': " + << ErrorMsg << "\n"; } } @@ -208,7 +211,7 @@ void Interpreter::setBreakpoint(const string &Name) { // callMethod - Enter the specified method... // bool Interpreter::callMethod(const string &Name) { - vector<Value*> Options = LookupMatchingNames(Name); + std::vector<Value*> Options = LookupMatchingNames(Name); for (unsigned i = 0; i < Options.size(); ++i) { // Remove nonmethod matches... if (!isa<Method>(Options[i])) { @@ -223,7 +226,7 @@ bool Interpreter::callMethod(const string &Name) { Method *M = cast<Method>(PickedMeth); - vector<GenericValue> Args; + std::vector<GenericValue> Args; // TODO, get args from user... callMethod(M, Args); // Start executing it... @@ -234,7 +237,7 @@ bool Interpreter::callMethod(const string &Name) { return false; } -static void *CreateArgv(const vector<string> &InputArgv) { +static void *CreateArgv(const std::vector<string> &InputArgv) { // Pointers are 64 bits... uint64_t *Result = new PointerTy[InputArgv.size()+1]; @@ -255,8 +258,8 @@ static void *CreateArgv(const vector<string> &InputArgv) { // callMethod can parse command line options and stuff for us. // bool Interpreter::callMainMethod(const string &Name, - const vector<string> &InputArgv) { - vector<Value*> Options = LookupMatchingNames(Name); + const std::vector<string> &InputArgv) { + std::vector<Value*> Options = LookupMatchingNames(Name); for (unsigned i = 0; i < Options.size(); ++i) { // Remove nonmethod matches... if (!isa<Method>(Options[i])) { @@ -272,7 +275,7 @@ bool Interpreter::callMainMethod(const string &Name, Method *M = cast<Method>(PickedMeth); const MethodType *MT = M->getMethodType(); - vector<GenericValue> Args; + std::vector<GenericValue> Args; switch (MT->getParamTypes().size()) { default: cout << "Unknown number of arguments to synthesize for '" << Name << "'!\n"; |