Lines Matching refs:outputs

289 /// constructFunction - make a function based on inputs and outputs, as follows:
293 const ValueSet &outputs,
300 DEBUG(dbgs() << "outputs: " << outputs.size() << "\n");
302 // This function returns unsigned, outputs will go back by reference.
321 for (ValueSet::const_iterator I = outputs.begin(), E = outputs.end();
337 if (AggregateArgs && (inputs.size() + outputs.size() > 0)) {
387 for (unsigned i = 0, e = outputs.size(); i != e; ++i, ++AI)
388 AI->setName(outputs[i]->getName()+".out");
424 ValueSet &inputs, ValueSet &outputs) {
426 // aggregating parameters), or plan inputs and allocated memory for outputs
438 // Create allocas for the outputs
439 for (ValueSet::iterator i = outputs.begin(), e = outputs.end(); i != e; ++i) {
453 if (AggregateArgs && (inputs.size() + outputs.size() > 0)) {
487 // Reload the outputs passed in by reference
488 for (unsigned i = 0, e = outputs.size(); i != e; ++i) {
495 StructArgTy, Struct, Idx, "gep_reload_" + outputs[i]->getName());
501 LoadInst *load = new LoadInst(Output, outputs[i]->getName()+".reload");
504 std::vector<User*> Users(outputs[i]->user_begin(), outputs[i]->user_end());
508 inst->replaceUsesOfWith(outputs[i], load);
562 for (unsigned out = 0, e = outputs.size(); out != e; ++out) {
565 BasicBlock *DefBlock = cast<Instruction>(outputs[out])->getParent();
570 if (auto *Invoke = dyn_cast<InvokeInst>(outputs[out]))
613 StructArgTy, &*OAI, Idx, "gep_" + outputs[out]->getName(),
615 new StoreInst(outputs[out], GEP, NTRet);
617 new StoreInst(outputs[out], &*OAI, NTRet);
694 ValueSet inputs, outputs;
720 // Find inputs to, outputs from the code region.
721 findInputsOutputs(inputs, outputs);
731 // Construct new function based on inputs/outputs & add allocas for all defs.
732 Function *newFunction = constructFunction(inputs, outputs, header,
737 emitCallAndSwitchStatement(newFunction, codeReplacer, inputs, outputs);