de.uka.ipd.sdq.ByCounter.utils.wide
Class WideVsNormal

java.lang.Object
  extended by de.uka.ipd.sdq.ByCounter.utils.wide.WideVsNormalEmptyHelper
      extended by de.uka.ipd.sdq.ByCounter.utils.wide.WideVsNormal

public class WideVsNormal
extends WideVsNormalEmptyHelper

This class generates source code which serves as input for analysis. It works as follows: a) adjust nrOfVars, nrOfIters, arraySize and useArrayExplicitly at the beginning of main - keep in mind that JVM specification limits the maximum bytesize of a method b) run main (with generationInsteadOfRun set to true) c) copy cmd output to this class (thus adding a new method to it) d) run ASMifier on the new method (or the entire class) e) create a new Java class in the workspace which contains the ASM bytecode-generating code obtained in step d) f) remove and modify the Dump class created in step e) - note that if the dump() method is too large, it can be (i) split into several methods or (ii) be reduced to generate the code for the considered method only g) Ensure that the dump method of Dump class writes the bytecode into a file h) Create a class that calls the method in the dumped file, in a way similar to what the measurement code in this class' main method is doing i) compare the results - enjoy and publish! adjust TODO -server, -Xint etc. testen

Author:
Michael Kuperberg

Constructor Summary
WideVsNormal()
           
 
Method Summary
static void main(java.lang.String[] args)
          This method generates source code (by printing it to standard out aka System.out), or executes a method (name starts with test).
 void printSourceCodeToCmd(int numberOfVariables, int nrOfIterations, WideOperandType type, boolean useArrayExplicitly, int precomputedArraySize, java.lang.String methodName)
          TODO modify: use StringBuffer
 void randomVariablesIterationGeneration(int numberOfVariables, int nrOfIterations, WideOperandType type, WideInstructionType instr, boolean useArrayExplicitly, int arraySize)
          TODO still unparameterised...
 
Methods inherited from class de.uka.ipd.sdq.ByCounter.utils.wide.WideVsNormalEmptyHelper
testWide_ILOAD_128Vars_1024Iters_trueArrayExplicit_128ArraySize, testWide_ISTORE_128Vars_1024Iters_trueArrayExplicit_128ArraySize
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WideVsNormal

public WideVsNormal()
Method Detail

main

public static void main(java.lang.String[] args)
This method generates source code (by printing it to standard out aka System.out), or executes a method (name starts with test).

Parameters:
args -

printSourceCodeToCmd

public void printSourceCodeToCmd(int numberOfVariables,
                                 int nrOfIterations,
                                 WideOperandType type,
                                 boolean useArrayExplicitly,
                                 int precomputedArraySize,
                                 java.lang.String methodName)
TODO modify: use StringBuffer

Parameters:
numberOfVariables -
nrOfIterations -
type -
useArrayExplicitly -
precomputedArraySize -
methodName -

randomVariablesIterationGeneration

public void randomVariablesIterationGeneration(int numberOfVariables,
                                               int nrOfIterations,
                                               WideOperandType type,
                                               WideInstructionType instr,
                                               boolean useArrayExplicitly,
                                               int arraySize)
TODO still unparameterised...

Parameters:
numberOfVariables -
nrOfIterations -
type -
instr -
useArrayExplicitly -
arraySize -