Lines Matching refs:outputs

286 /// constructFunction - make a function based on inputs and outputs, as follows:
290 const ValueSet &outputs,
297 DEBUG(dbgs() << "outputs: " << outputs.size() << "\n");
299 // This function returns unsigned, outputs will go back by reference.
318 for (ValueSet::const_iterator I = outputs.begin(), E = outputs.end();
333 if (AggregateArgs && (inputs.size() + outputs.size() > 0)) {
384 for (unsigned i = 0, e = outputs.size(); i != e; ++i, ++AI)
385 AI->setName(outputs[i]->getName()+".out");
422 ValueSet &inputs, ValueSet &outputs) {
424 // aggregating parameters), or plan inputs and allocated memory for outputs
436 // Create allocas for the outputs
437 for (ValueSet::iterator i = outputs.begin(), e = outputs.end(); i != e; ++i) {
450 if (AggregateArgs && (inputs.size() + outputs.size() > 0)) {
486 // Reload the outputs passed in by reference
487 for (unsigned i = 0, e = outputs.size(); i != e; ++i) {
495 "gep_reload_" + outputs[i]->getName());
501 LoadInst *load = new LoadInst(Output, outputs[i]->getName()+".reload");
504 std::vector<User*> Users(outputs[i]->use_begin(), outputs[i]->use_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();
569 if (InvokeInst *Invoke = dyn_cast<InvokeInst>(outputs[out])) {
610 "gep_" + outputs[out]->getName(),
612 new StoreInst(outputs[out], GEP, NTRet);
614 new StoreInst(outputs[out], OAI, NTRet);
692 ValueSet inputs, outputs;
718 // Find inputs to, outputs from the code region.
719 findInputsOutputs(inputs, outputs);
729 // Construct new function based on inputs/outputs & add allocas for all defs.
730 Function *newFunction = constructFunction(inputs, outputs, header,
735 emitCallAndSwitchStatement(newFunction, codeReplacer, inputs, outputs);