2016-05-06 8 views
0

Was ist die LLVM-IR-Builder Anweisung eine Anweisung ähnlich wie diese zu erstellen:Erstellen Sie sleep(); Anruf mit llvm IRbuilder

%call4 = call i32 (i32, ...)* bitcast (i32 (...)* @sleep to i32 (i32, ...)*)(i32 3) 

Gibt es eine Möglichkeit rufen direkt die @sleep oder muss ich eine neue Funktion für sie erstellen müssen ?

Antwort

0

ConstantInt * sleepArg = ConstantInt :: get (GanzzahlTyp :: get (getGlobalContext(), sizeof (unsigned) * 8), 2, true);

std::vector<Value*> args2; 
    args2.push_back(sleepArg);  

    Constant *D = M.getOrInsertFunction("sleep", 
    IntegerType::get(getGlobalContext(), sizeof(unsigned) * 8), 
    IntegerType::get(getGlobalContext(), sizeof(unsigned) * 8), NULL);