Home | History | Annotate | Download | only in Utils

Lines Matching refs:Inputs

158 void CodeExtractor::findInputsOutputs(ValueSet &Inputs,
172 Inputs.insert(*OI);
184 /// severSplitPHINodes - If a PHI node has multiple inputs from outside of the
287 /// constructFunction - make a function based on inputs and outputs, as follows:
290 Function *CodeExtractor::constructFunction(const ValueSet &inputs,
297 DEBUG(dbgs() << "inputs: " << inputs.size() << "\n");
311 for (ValueSet::const_iterator i = inputs.begin(), e = inputs.end();
334 if (AggregateArgs && (inputs.size() + outputs.size() > 0)) {
357 // Rewrite all users of the inputs in the extracted region to use the
359 for (unsigned i = 0, e = inputs.size(); i != e; ++i) {
367 GetElementPtrInst::Create(AI, Idx, "gep_" + inputs[i]->getName(), TI);
368 RewriteVal = new LoadInst(GEP, "loadgep_" + inputs[i]->getName(), TI);
372 std::vector<User*> Users(inputs[i]->use_begin(), inputs[i]->use_end());
377 inst->replaceUsesOfWith(inputs[i], RewriteVal);
383 for (unsigned i = 0, e = inputs.size(); i != e; ++i, ++AI)
384 AI->setName(inputs[i]->getName());
423 ValueSet &inputs, ValueSet &outputs) {
425 // aggregating parameters), or plan inputs and allocated memory for outputs
430 // Add inputs as params, or to be filled into the struct
431 for (ValueSet::iterator i = inputs.begin(), e = inputs.end(); i != e; ++i)
451 if (AggregateArgs && (inputs.size() + outputs.size() > 0)) {
464 for (unsigned i = 0, e = inputs.size(); i != e; ++i) {
483 unsigned FirstOut = inputs.size();
485 std::advance(OutputArgBegin, inputs.size());
693 ValueSet inputs, outputs;
719 // Find inputs to, outputs from the code region.
720 findInputsOutputs(inputs, outputs);
730 // Construct new function based on inputs/outputs & add allocas for all defs.
731 Function *newFunction = constructFunction(inputs, outputs, header,
736 emitCallAndSwitchStatement(newFunction, codeReplacer, inputs, outputs);