org.jruby.compiler.ir.compiler_pass.AddBindingInstructions Maven / Gradle / Ivy
package org.jruby.compiler.ir.compiler_pass;
import org.jruby.compiler.ir.IRMethod;
import org.jruby.compiler.ir.IRScope;
import org.jruby.compiler.ir.dataflow.analyses.BindingStorePlacementProblem;
import org.jruby.compiler.ir.dataflow.analyses.BindingLoadPlacementProblem;
import org.jruby.compiler.ir.representations.CFG;
public class AddBindingInstructions implements CompilerPass {
public boolean isPreOrder() {
return false;
}
public void run(IRScope s) {
if (!(s instanceof IRMethod)) return;
IRMethod m = (IRMethod) s;
// if (m.requiresBinding()) {
CFG c = m.getCFG();
BindingStorePlacementProblem fsp = new BindingStorePlacementProblem();
fsp.setup(c);
fsp.compute_MOP_Solution();
fsp.addStoreAndBindingAllocInstructions();
BindingLoadPlacementProblem frp = new BindingLoadPlacementProblem();
frp.setup(c);
frp.compute_MOP_Solution();
frp.addLoads();
// }
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy